Chak-MCP 服务器实现与示例
使用说明内容(Markdown格式)
一、项目简介
- Chak(chak-ai)在 MCP 领域提供了端到端的能力:既有面向 MCP 服务器的示例与服务端交互框架,也提供用于连接和管理 MCP 服务的客户端工具集合。仓库内含可运行的 MCP 服务器示例(基于 FastMCP 的简单 Calculator 服务)以及用于客户端访问的 MCP 工具封装库,便于开发者快速搭建、连接和测试 MCP 服务。
二、主要功能点
- MCP 服务端示例与接入
- 提供一个可运行的 MCP 服务器示例,用 FastMCP 框架实现工具暴露(如 add、subtract、multiply、divide、power 等计算工具)。
- 演示如何通过命令行启动 MCP 服务,以及如何暴露工具给 MCP 客户端调用。
- MCP 客户端与工具封装
- Chak 提供 MCP 客户端封装,支持通过 stdio、SSE、HTTP 三种传输方式连接到 MCP 服务器。
- 支持多种工具类型:原生函数、对象方法、技能工具、以及 MCP 服务中的工具。
- 支持工具执行并发、重试、以及人机审核等能力,提供完整的工具调用流程。
- 服务网关/服务器端网关
- 项目内含一个用于对接 LLM 提供商的网关服务器实现,具备多传输协议、会话管理和上下文处理能力,便于把 MCP 与 LLM 服务整合起来,作为 MCP 服务器的“上游”处理单元。
- 示例与文档
- 详细示例覆盖:从简单的 MCP 服务器到带技能、带结构化输出的工具,包含多种场景的演示。
- 提供服务器配置示例与使用指南,帮助开发者理解如何在客户端连接到 MCP 服务器并进行调用。
三、安装与运行要点
- MCP 服务器示例与运行
- 运行可执行的 MCP 服务器示例前,请确保你已安装 FastMCP(示例中使用 mcp 的工具)以及 Python 环境。
- 可直接使用示例中的命令或自定义启动方式(如 python 脚本直接启动,或通过 mcp CLI 启动脚本)。
- MCP 客户端与网关
- 安装 Chak 及其 MCP 模块后,可以通过 Server 类来连接 MCP 服务器,支持 stdio、SSE、HTTP 三种传输。
- 客户端需要在配置中指定服务器的启动命令及参数,以建立连接(详见下方“服务器配置(MCP 服务器给 MCP 客户端用的配置)”的 JSON 示例)。
四、服务器配置(MCP 服务器给 MCP 客户端用的配置) 说明:MCP 客户端需要配置 MCP 服务器的启动命令和参数,才能与 MCP 服务器建立连接。以下为符合仓库信息的准确配置示例(以 JSON 形式呈现,非代码块,便于理解和落地使用): { "server_name": "local_calculator_mcp_server", "command": "mcp", "args": ["run", "examples/my_calculator_mcp_server.py"], "transport": "stdio", "description": "本地 MCP 服务器示例,通过 FastMCP 暴露 calculator 工具,供 MCP 客户端调用", "base_url": null } 说明:
- server_name:你在运维或文档中自定义的服务器标识。
- command 与 args:对应你实际启动 MCP 服务器的命令与参数。示例中使用 mcp CLI 启动本地的 Python MCP 服务器脚本(examples/my_calculator_mcp_server.py)。
- transport:服务器对 MCP 客户端暴露的传输方式,此处为 stdio,表示本地进程间通信。
- base_url:若使用 SSE/HTTP 传输,请在配置中提供 base_url;本示例为 STDIO,因此留空。
- 该配置仅用于 MCP 客户端接入,服务器端实现无需客户端代码即可理解;实际部署请按你的环境调整。
五、基本使用方法(简明操作流程)
- 步骤1:准备服务器
- 下载或打开仓库中的 MCP 服务器示例文件(例如 examples/my_calculator_mcp_server.py),确保依赖已安装。
- 按照文档启动 MCP 服务器,例如通过 mcp CLI 或直接运行服务器脚本。
- 步骤2:配置 MCP 客户端
- 按照上面的 JSON 配置示例,生成 MCP 客户端需要的连接参数,确保 server_name、command、args 等信息正确可用。
- 步骤3:连接并测试
- 使用 Chak 提供的 MCP 客户端接口,连接到 MCP 服务器,列出可用工具,调用工具并获取结果。
- 你可以通过简单的对话测试工具的调用,如“Calculate 15 + 27”之类的请求,观察工具返回结果。
- 步骤4:扩展与集成
- 将 MCP 服务器与本地或云端的工具集成,扩展更多工具类型(Web、数据库、文件等),并在 Chak 的工具管理器中逐步暴露、调度和执行。
六、核心优势与注意点
- 优势
- 通过 MCP 实现与外部工具的标准化调用,降低多平台集成成本。
- 与 Chak 的上下文管理、多模态输入、结构化输出等能力结合,便于构建强大、可扩展的上下文服务后端。
- 支持多传输协议(stdio/SSE/HTTP),便于本地开发和云端部署。
- 注意点
- MCP 服务器的实现需要确保工具暴露、参数格式、以及调用过程符合 MCP 规范;示例提供了基本实现与接入路径,生产环境需加强安全性、鉴权、错误处理等。
- 本仓库包含大量示例和客户端实现,核心 MCP 服务器能力以示例和框架为主,若需要大规模生产级 MCP 服务器,请基于示例进一步完善鲁棒性和可扩展性。
七、示例与资源定位
- 示例:examples/my_calculator_mcp_server.py(简单的本地 MCP 服务器,提供五个计算工具)
- 示例:examples/tool_calling_chat_mcp_stdio.py(MCP/stdio 交互演示,展示如何通过 MCP 调用工具)
- 示例:examples/tool_calling_chat_mcp_http.py(MCP/HTTP 传输示例)
- 示例:examples/mcp_chat_stdio.py(MCP 聊天场景的端到端演示)
- 客户端库:chak/tools/mcp(包含 Server、MCPTool 等接口,便于连接 MCP 服务器、加载工具、执行调用)
八、关键词 模型上下文协议, 本地服务器示例, 工具暴露与执行, 多传输协议, 服务端网关
九、分类ID 6