UNITARES Model Context Protocol 服务端
使用说明(简要摘要,便于快速落地)
-
项目简介 UNITARES 提供一个完整的 MCP 服务器实现,用于向大型语言模型客户端提供资源访问、工具调用以及可自定义的提示模板渲染,支持多传输协议和会话管理,便于在生产环境中为各类 LLM 应用提供统一的上下文服务。
-
主要功能点
- 资源与数据访问:托管与管理资源,支持数据访问能力,方便 LLM 客户端查询与使用上下文信息。
- 工具注册与执行:注册外部功能工具,LLM 能通过标准化接口调用并获取结果。
- Prompt 模板:定义并渲染提示模板,支持可定制的 LLM 交互模式。
- JSON-RPC 通信:服务器与客户端通过 JSON-RPC 协议进行请求与响应,形成清晰的 API 边界。
- 会话与能力声明:服务器端管理会话、能力声明,确保多客户端环境中的安全与可扩展性。
- 多传输层支持:兼容性设计允许通过 Stdio、SSE、WebSocket 等传输协议进行通信,提升接入灵活性。
- 与客户端的端点设计:提供用于 MCP 客户端的 /mcp/(流式HTTP)、/v1/tools/call(工具调用)、/dashboard、/health 等端点。
-
安装步骤
- 安装运行环境:建议使用 Python 3.12 及以上版本,满足仓库对环境的要求。
- 安装依赖:
- 使用项目根目录中的核心依赖文件进行安装。
- 启动 MCP 服务器:
- 以并发多客户端模式启动服务器:
- python src/mcp_server.py --port 8767
- 也可使用单客户端 stdio 模式运行:
- python src/mcp_server_std.py
- 以并发多客户端模式启动服务器:
- 服务器运行后,客户端可通过配置指向服务器地址进行交互。
-
服务器配置(供 MCP 客户端使用的配置示例) { "server_name": "unitares", "type": "http", "url": "http://localhost:8767/mcp/", "headers": { "X-Agent-Name": "MyAgent" } } 注释说明:
- server_name:服务器在客户端侧的标识名称。
- type:传输类型,此处为 http,表示通过 HTTP 流式 API 与客户端交互。
- url:MCP 客户端连接的入口 URL。
- headers:连接时附带的请求头信息,例如用于标识当前代理的名称。
-
基本使用方法
- 读取资源:通过 MCP 提供的资源读取接口获取所需上下文数据。
- 注册/调用工具:将外部工具注册到 MCP 服务端,LLM 通过统一接口调用并返回结果。
- 获取 Prompt:从服务器获取并渲染自定义 Prompt 模板,支持不同交互模式。
- 与客户端对话:客户端通过 JSON-RPC 调用服务器端端点,获取资源、执行工具、获取模板等结果。
- 会话与安全:服务器负责会话生命周期、能力声明、以及访问权限控制,确保多客户端环境下的安全性。
-
进阶使用
- 根据实际应用场景(如不同任务类型、不同数据源、不同工具集成等)扩展资源、工具及 Prompts,按 MCP 规范实现自定义能力声明。
- 结合 dashboard、health 等端点实现运维与监控。
-
备注
- 本仓库包含了完整的后端实现、工具与测试用例,适合在实际生产环境中部署 MCP 服务端,并为 LLM 客户端提供一致、可扩展的上下文与能力服务。