使用说明

项目简介

本项目是一个基于Model Context Protocol (MCP) 的服务器实现示例,旨在演示如何构建MCP服务器,为AI Agent提供外部数据和功能。本示例包含两个MCP服务器:

  1. 区块链数据服务器 (mcp_server.py): 提供Metis区块链的区块数据,例如最新的区块号和前一个区块号。
  2. GitHub组织数据服务器 (github_org_server.py): 提供GitHub组织和仓库的信息,例如列出组织仓库和获取仓库统计数据(星数、Fork数、关注者数)。

通过这两个服务器,展示了MCP服务器如何作为AI Agent的上下文信息提供者,扩展Agent的能力边界。

主要功能点

  • 提供区块链数据: 通过 'get_latest_block' 和 'get_previous_block' 工具,Agent可以查询Metis区块链的最新区块号和前一个区块号。
  • 提供GitHub数据: 通过 'list_org_repos' 和 'get_repo_stats' 工具,Agent可以查询GitHub组织仓库列表以及特定仓库的统计信息。
  • 工具注册机制: 使用 '@mcp.tool()' 装饰器轻松注册工具函数,使其可以通过MCP协议被Agent调用。
  • 快速启动: 基于 'FastMCP' 框架,服务器代码简洁易懂,易于快速启动和运行。

安装步骤

  1. 安装 UV: 根据仓库 'README.md' 的指引安装 UV 包管理器。UV 用于管理Python环境和依赖。
    • macOS/Linux: 'curl -LsSf https://astral.sh/uv/install.sh | sh'
    • Windows: 参考 UV 官网安装指南。
  2. 创建项目目录并初始化:
    mkdir my_mcp_project
    cd my_mcp_project
    uv init
  3. 创建并激活虚拟环境:
    uv venv
    source .venv/bin/activate   # macOS/Linux
    .venv\Scripts\activate      # Windows
  4. 安装依赖包:
    uv pip install alith web3 requests
    uv add "mcp[cli]"
  5. 配置 OpenAI API Key: 如果需要运行 'main.py' 中的 AI Agent,需要配置 OpenAI API Key 环境变量。
    • Unix/Linux: 'export OPENAI_API_KEY=<your API key>'
    • Windows: '$env:OPENAI_API_KEY = "<your API key>"'

服务器配置

MCP客户端(例如 'main.py' 中的 Alith Agent)需要通过 'server_config.json' 文件配置要连接的MCP服务器。以下是 'server_config.json' 文件的内容,它定义了两个MCP服务器的启动配置:

{
    "mcpServers": {
        "blockchain": {
            "command": "python",
            "args": [
                "mcp_server.py"
            ],
            "description": "区块链数据服务器"
        },
        "github": {
            "command": "python",
            "args": [
                "github_org_server.py"
            ],
            "description": "GitHub组织数据服务器"
        }
    }
}

配置参数说明

  • 'mcpServers': 定义所有MCP服务器的字典。
  • '"blockchain"' 和 '"github"': 服务器的名称,客户端通过这些名称引用服务器。可以自定义,需要与客户端代码中的server name保持一致。
  • 'command': 启动服务器的命令,通常是 Python 解释器。
  • 'args': 传递给启动命令的参数,这里指定了服务器脚本的文件名。
  • 'description': (可选) 服务器的描述信息,用于提高配置文件的可读性。

基本使用方法

  1. 启动 MCP 服务器: 分别在两个终端窗口中运行以下命令,启动区块链数据服务器和 GitHub 组织数据服务器。

    python3 mcp_server.py
    python3 github_org_server.py

    启动成功后,服务器会打印 "MetisBlockServer running..." 或 "GitHubOrgServer running..." 等信息。

  2. 运行 AI Agent: 在另一个终端窗口中,运行 'main.py' 启动 AI Agent。

    python3 main.py

    Agent 启动后,会提示 "Ask me anything about Metis blocks or GitHub repos!".

  3. 与 Agent 交互: 根据提示,可以向 Agent 提问关于 Metis 区块链或 GitHub 仓库的问题。例如:

    • "What is the latest Metis block number?"
    • "What was the previous block number?"
    • "List repos of organization tensorflow"
    • "Stats for repo pytorch/pytorch"

    Agent 将调用相应的 MCP 服务器工具获取数据并返回结果。输入 'exit', 'quit', 或 'bye' 可以退出 Agent。

注意: 确保先启动 MCP 服务器,再启动 AI Agent,以便 Agent 可以成功连接到服务器。

信息

分类

网页与API