项目简介

本项目是 Discord-AI-Agent 仓库中包含的一个示例性 MCP 服务器实现。它基于 FastMCP 库构建,提供了一些基础工具(如数学计算、模拟任务等),用于演示和测试符合 Model Context Protocol (MCP) 标准的服务器功能。

主要功能点

  • 工具托管: 注册并提供 'add'、'magic_8_ball'、'long_task' 和 'error_tool' 等示例工具。
  • MCP协议支持: 通过 JSON-RPC over SSE 实现与 MCP 客户端的通信,支持工具发现 ('list_tools') 和工具调用 ('invoke_tool') 等标准操作。
  • 轻量级: 作为示例服务器,代码简洁明了,易于理解和扩展。

安装步骤

  1. 确保您已安装 Python 3.8 或更高版本。
  2. 安装依赖库。进入仓库的 'demo_server' 目录。
  3. 使用 'uv' 或 'pip' 安装项目依赖:
    # 使用 uv (推荐)
    uv pip install -Ur requirements.txt --constraint=constraints.txt
    
    # 或者使用 pip
    # pip install -Ur requirements.txt -c constraints.txt

服务器配置 (供 MCP 客户端使用)

MCP 客户端(如 Discord-AI-Agent 机器人)需要知道如何连接到此服务器。 typically, 客户端会通过配置文件来定义 MCP 服务器连接信息。对于此示例服务器,客户端通常需要在其配置中包含类似以下结构的配置项(JSON RPC 格式,客户端无需直接与 JSON 交互):

{
  "name": "toys",  // 服务器的唯一名称,客户端用来引用它
  "url": "http://127.0.0.1:8902" // 服务器的访问地址和端口
}
  • 'name': 用于在客户端配置和日志中识别此服务器的名称,例如 'toys'。
  • 'url': MCP 服务器的 HTTP/S 地址,通常是 'http://<hostname>:<port>' 或 'https://<hostname>:<port>'。示例服务器默认运行在 'http://127.0.0.1:8902'。

客户端会读取这些配置,然后连接到指定的 URL,通过 MCP 协议进行工具发现和交互。

基本使用方法

  1. 启动服务器: 在安装依赖后,从仓库的根目录或 'demo_server' 目录运行以下命令来启动示例服务器:

    # 从仓库根目录运行
    uvicorn demo_server.toy_mcp_server:create_app --factory --host 127.0.0.1 --port 8902 --reload
    
    # 或者从 demo_server 目录运行
    # uvicorn toy_mcp_server:create_app --factory --host 127.0.0.1 --port 8902 --reload

    服务器将在指定的地址和端口上启动并监听连接。'--reload' 标志用于开发过程中自动重载代码。

  2. 连接客户端: 启动任何兼容 MCP 协议的客户端,并按照客户端的说明配置连接到服务器的 URL ('http://127.0.0.1:8902')。例如,可以启动 Discord-AI-Agent 机器人,并确保其 'config/main.toml' 或相关的 '.b4a.toml' 文件中包含了指向此服务器的配置。

  3. 使用工具: 通过连接的客户端,您可以尝试调用服务器提供的工具。例如,如果客户端是聊天机器人,您可能会通过自然语言请求调用 'magic_8_ball' 工具,或者通过特定命令调用 'add' 工具。

此示例服务器作为 MCP 协议的一个基本实现,可以帮助开发者理解 MCP 的工作方式,或者作为开发 MCP 客户端时的测试后端。

信息

分类

开发者工具