使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器示例,旨在演示如何构建一个能够响应 LLM 客户端请求,提供外部数据访问能力的 MCP 服务器。该服务器实现了一个简单的工具,可以查询 CoinGecko API 获取指定加密货币的实时价格。

主要功能点

  • 注册和执行工具 (Tools): 服务器注册了一个名为 'get_crypto_price' 的工具,允许客户端请求查询加密货币的当前价格。
  • 数据访问能力: 工具通过调用 CoinGecko API 获取实时的加密货币价格数据。
  • MCP 协议兼容: 服务器使用 'fastmcp' 库构建,能够处理符合 MCP 协议的 JSON-RPC 请求。

安装步骤

  1. 克隆仓库: 首先,你需要克隆 'GenAI_Agents' 仓库到本地:

    git clone https://github.com/NirDiamant/GenAI_Agents.git
    cd GenAI_Agents
  2. 安装依赖: 进入仓库目录后,建议创建一个虚拟环境并安装项目依赖。虽然仓库根目录下没有明确的 'requirements.txt' 文件,但根据代码内容,你需要安装以下Python包:

    pip install python-dotenv fastmcp httpx

服务器配置

MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。请将以下 JSON 配置添加到你的 MCP 客户端配置中。

{
  "server_name": "crypto_price_tracker",  // MCP 服务器名称,与 mcp_server.py 中 FastMCP 初始化时定义的名称一致
  "command": "python",                   // 启动服务器的命令,这里使用 python 解释器
  "args": ["all_agents_tutorials/scripts/mcp_server.py"] // 启动服务器的脚本路径,指向 mcp_server.py 文件
}

配置参数说明:

  • 'server_name': 服务器的唯一标识名称,必须与 'mcp_server.py' 脚本中 'FastMCP("crypto_price_tracker")' 定义的名称 '"crypto_price_tracker"' 完全一致。
  • 'command': 启动服务器进程的命令。由于 'mcp_server.py' 是 Python 脚本,这里设置为 'python'。
  • 'args': 启动命令的参数列表。这里指定了 'mcp_server.py' 脚本的相对路径,确保客户端能够找到并执行服务器脚本。

基本使用方法

  1. 启动 MCP 服务器: 在终端中,导航到仓库根目录 'GenAI_Agents',然后运行 'mcp_server.py' 脚本以启动 MCP 服务器:

    python all_agents_tutorials/scripts/mcp_server.py

    服务器成功启动后,会开始监听来自 MCP 客户端的请求。

  2. 配置并启动 MCP 客户端: 在你的 MCP 客户端应用中,根据上述 服务器配置 JSON 信息配置连接到 'crypto_price_tracker' 服务器。启动你的 MCP 客户端。

  3. 调用 'get_crypto_price' 工具: 在 MCP 客户端中,你可以发送 JSON-RPC 请求来调用 'get_crypto_price' 工具。例如,要查询比特币 (bitcoin) 的美元价格,你可以构造如下的 JSON-RPC 请求:

    {
      "jsonrpc": "2.0",
      "method": "call",
      "params": {
        "tool_name": "get_crypto_price",
        "tool_args": {
          "crypto_id": "bitcoin",
          "currency": "usd"
        }
      },
      "id": 1
    }

    服务器会处理这个请求,调用 'get_crypto_price' 工具,从 CoinGecko API 获取比特币的美元价格,并将结果以 JSON-RPC 响应的形式返回给客户端。

    你可以尝试修改 'tool_args' 中的 'crypto_id' 和 'currency' 参数来查询其他加密货币的价格。

注意:

  • 确保你的网络连接正常,以便服务器能够访问 CoinGecko API。
  • 本示例仅为演示 MCP 服务器的基本功能,实际应用中可能需要更完善的错误处理、安全机制和功能扩展。

信息

分类

网页与API