AFS MCP 服务器实现

使用说明内容(Markdown格式)

  • 项目简介

    • AFS MCP 服务器是用于为大型语言模型(LLM)客户端提供上下文和功能的后端服务。它按照 MCP 标准注册、管理并渲染资源(Resources)、工具(Tools)以及提示模板(Prompts),并通过 JSON-RPC 与客户端通信,支持会话管理与能力声明。
    • 服务器侧职责包括资源的托管与数据访问、工具的注册与执行、以及提示模板的定义与渲染,确保 LLM 客户端可以通过统一接口访问所需的能力与上下文。
  • 主要功能点

    • 资源管理:托管可被客户端读取的数据资源,提供统一的读取接口与权限控制。
    • 工具注册与调用:注册可由 LLM 调用的外部功能/工具,支持安全沙箱执行。
    • 提示模板管理:定义和渲染可复用的 Prompt 模板,便于 LLM 的交互模式定制。
    • JSON-RPC 通信:服务器通过 JSON-RPC 处理请求与返回响应,具备请求/通知等波形。
    • 会话与能力声明:在会话中声明服务能力、上下文可用性及当前资源状态。
    • 多传输协议支持:如标准输入输出(Stdio)、SSE、WebSocket 等,满足多场景接入需求。
    • 服务器与扩展集成:通过扩展机制加载外部适配器/工具,提升可扩展性。
  • 安装步骤

    • 在本地开发环境创建虚拟环境并安装:
      • 使用虚拟环境,并在激活后执行安装命令将仓库当前版本安装到环境中,以便客户端可以通过 MCP 服务器进行交互。
    • 如需快速体验,可直接在已搭建的环境中执行提供的入口命令来启动 MCP 服务器。
  • 服务器配置(给 MCP 客户端的配置说明)

    • MCP 客户端需要的配置信息通常通过一个 JSON 配置描述与服务器建立连接,字段含义如下:
      • server_name: 服务器的名称标识,例如 "afs-mcp-server"。
      • command: 启动服务器的命令路径,示例为执行仓库提供的入口脚本,如 afs 的入口命令 "afs mcp serve"(通过已有 CLI 实现启动)。
      • args: 启动命令的参数数组,用于指定传输协议、日志等级等,例如 [ "mcp","serve","--transport","stdio","--log-level","info" ]。
    • 说明:MCP 客户端只需要了解启动命令与参数来启动并连接服务器,具体的实现细节(如服务器内部如何处理 MCP 请求、资源/工具/提示模板的注册和渲染)由服务器实现方负责。
  • 基本使用方法

    • 启动服务器
      • 使用仓库提供的入口脚本或 CLI 工具启动 MCP 服务器,确保服务器可通过客户端进行 JSON-RPC 请求。
    • 客户端接入
      • MCP 客户端通过服务器的 JSON-RPC 接口发送读取资源、执行工具、获取 Prompts 等请求,服务器返回标准化的 JSON-RPC 响应。
    • 运行时管理
      • 服务器负责会话管理、能力声明及扩展适配,确保在多客户端并发下的安全、可扩展性。
  • 备注

    • 本仓库中存在对 MCP 服务器行为的测试用例(如 tests/test_mcp_server.py),并提供核心的服务器端函数接口(如 _handle_request、build_mcp_registry),用于实现与 MCP 客户端的互操作。
    • 实际运行请参考仓库中的脚本入口和文档说明,以确保与 MCP 客户端的对接参数和传输协议配置一致。

服务器信息