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 请求、资源/工具/提示模板的注册和渲染)由服务器实现方负责。
- MCP 客户端需要的配置信息通常通过一个 JSON 配置描述与服务器建立连接,字段含义如下:
-
基本使用方法
- 启动服务器
- 使用仓库提供的入口脚本或 CLI 工具启动 MCP 服务器,确保服务器可通过客户端进行 JSON-RPC 请求。
- 客户端接入
- MCP 客户端通过服务器的 JSON-RPC 接口发送读取资源、执行工具、获取 Prompts 等请求,服务器返回标准化的 JSON-RPC 响应。
- 运行时管理
- 服务器负责会话管理、能力声明及扩展适配,确保在多客户端并发下的安全、可扩展性。
- 启动服务器
-
备注
- 本仓库中存在对 MCP 服务器行为的测试用例(如 tests/test_mcp_server.py),并提供核心的服务器端函数接口(如 _handle_request、build_mcp_registry),用于实现与 MCP 客户端的互操作。
- 实际运行请参考仓库中的脚本入口和文档说明,以确保与 MCP 客户端的对接参数和传输协议配置一致。