使用说明
项目简介
MCPServerKit 是一个基于 Swift 语言的高级框架,旨在简化 Model Context Protocol (MCP) 服务器的开发。它构建于官方 MCP Swift SDK 之上,提供了更易用、更高效的 API,使开发者能够专注于构建工具和服务,而无需深入了解 MCP 协议的底层细节。该框架支持创建和管理各种类型的工具,并提供标准化的错误处理和简化的服务器配置流程。
主要功能点
- 简化工具创建和注册: 提供 'MCPTool' 和 'JSONBasedMCPTool' 等抽象,简化了工具的定义和实现,开发者只需关注工具的核心逻辑。
- 标准化错误处理: 内置 'MCPServerError' 类型,为 MCP 服务器提供统一的错误处理机制,方便调试和维护。
- 流线型的服务器设置和通信: 'MCPServer' 和 'JSONBasedMCPServer' 负责处理服务器的生命周期和 MCP 通信细节,开发者可以快速搭建和启动 MCP 服务器。
- 类型安全的 API: 'MCPToolProtocol' 和泛型 'MCPTool' 提供了类型安全的工具接口,减少了类型转换和错误处理的复杂性。
- 支持异构工具: 'JSONBasedMCPServer' 允许在同一个服务器中注册和管理具有不同输入输出类型的工具,提高了服务器的灵活性和可扩展性。
- 提供示例工具: 包含天气查询工具和计算器工具的示例,展示了如何使用 MCPServerKit 构建实际的 MCP 服务器应用。
安装步骤
-
克隆仓库:
git clone https://github.com/sebsto/mcpserverkit cd mcpserverkit -
构建项目:
swift build
服务器配置
要让 MCP 客户端(如 Amazon Q 或 Claude)连接到使用 MCPServerKit 构建的服务器,需要在客户端的配置文件中添加服务器信息。以下是针对 'MCPWeatherServer' 示例的配置,您可以根据实际情况修改:
{ "mcpServers": { "weather": { // 服务器名称,客户端使用此名称引用 "command": ".build/debug/MCPWeatherServer", // MCP 服务器的可执行文件路径,根据实际构建路径调整 "args": [] // 启动参数,示例中无需参数 } } }
基本使用方法
- 创建工具: 使用 'MCPTool' 或 'JSONBasedMCPTool' 定义您的工具,包括工具名称、描述、输入模式 (inputSchema)、参数转换器 (converter) 和执行体 (body)。
- 创建服务器: 根据工具的类型选择 'MCPServer' (同构工具) 或 'JSONBasedMCPServer' (异构工具),并将创建的工具注册到服务器。
- 启动服务器: 调用 'server.startStdioServer()' 等方法启动服务器,服务器将监听标准输入输出 (stdio) 或其他配置的传输协议。
- 客户端调用: 在 MCP 客户端中配置服务器信息后,即可通过客户端向服务器发送 MCP 请求,调用已注册的工具。例如,可以使用 'call_tool.json' 文件配合 'swift run MCPWeatherServer' 命令来测试天气查询工具。
运行示例
仓库中包含 'MCPWeatherServer' 示例项目,展示了如何使用 MCPServerKit 创建一个包含天气查询工具和计算器工具的 MCP 服务器。您可以按照以下步骤运行示例:
-
确保已完成安装步骤并成功构建项目。
-
导航到 'MCPWeatherServer' 目录(如果需要)。
-
运行以下命令启动服务器 (假设当前目录为仓库根目录):
cat MCPWeatherServer/call_tool.json | swift run MCPWeatherServer或直接运行编译后的可执行文件:
.build/debug/MCPWeatherServer然后手动向其标准输入发送符合 MCP 协议的 JSON 请求,例如 'MCPWeatherServer/call_tool.json' 的内容。
与其他 MCP 客户端集成
使用 MCPServerKit 构建的服务器可以与任何兼容 MCP 协议的客户端集成,例如 Amazon Q Developer CLI 和 Claude 桌面应用。只需按照客户端的文档配置 MCP 服务器信息即可。
信息
分类
开发者工具