使用说明
项目简介
SwiftMCP 是一个 Swift 库,用于简化 Model Context Protocol (MCP) 服务器的创建。它利用 Swift 宏来自动化将 Swift 函数暴露为 MCP 兼容工具的过程,处理 JSON-RPC 通信,并管理服务器配置。
主要功能点
- 宏驱动的 API: 使用 '@MCPServer' 和 '@MCPTool' 宏,轻松定义 MCP 服务器和工具。
- 自动文档提取: 从 Swift 代码注释中提取工具的元数据(参数名、类型、描述)。
- JSON-RPC 接口: 完全兼容 MCP 规范的 JSON-RPC 接口,支持 'initialize', 'tools/list', 'tools/call' 等方法。
- Stdio 传输模式: 支持通过标准输入/输出进行 MCP 通信,适用于本地开发和测试。
安装步骤
由于 SwiftMCP 是一个 Swift 库,通常通过 Swift Package Manager (SPM) 进行集成。
-
添加依赖: 在你的 'Package.swift' 文件中,将 SwiftMCP 添加到 dependencies 数组中:
dependencies: [ .package(url: "https://github.com/Cocoanetics/SwiftMCP", from: "最新版本号") // 请替换为实际的版本号 ]请访问仓库 https://github.com/Cocoanetics/SwiftMCP 查看最新的版本号并替换 'from: "最新版本号"'。
-
在你的目标中引入: 在你的 target 中引入 SwiftMCP:
targets: [ .executableTarget( name: "YourExecutableName", // 你的可执行文件名 dependencies: ["SwiftMCP"]), ]
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令才能连接。对于使用 SwiftMCP 构建的服务器,配置信息通常如下:
{ "server_name": "你的服务器名称", // 在 @MCPServer 宏中定义的服务器名称,例如 "MyCalculator" "command": "./你的可执行文件名", // 编译后的 Swift 可执行文件的路径,例如 "./YourExecutableName" "args": [] // 启动参数,通常为空数组 }
- 'server_name': 在你的 Swift 服务器类定义中,使用 '@MCPServer(name: "...")' 指定的名称。
- 'command': 这是编译 Swift 项目后生成的可执行文件的路径。你需要先使用 SwiftPM 构建你的项目,然后在 ' .build/debug/' 或 ' .build/release/' 目录下找到可执行文件。例如,如果你的 target 名称是 "MyMCPApp",则可执行文件路径可能是 './.build/debug/MyMCPApp'。
- 'args': 启动服务器时需要传递的命令行参数,如果不需要则为空数组。
重要提示: 请根据你的 Swift 项目实际编译生成的可执行文件名和路径,替换上述 'command' 字段。
基本使用方法
- 创建 MCP 服务器类: 使用 '@MCPServer' 宏注解你的 Swift 类,定义服务器名称和版本。
- 定义 MCP 工具函数: 在服务器类中,使用 '@MCPTool' 宏注解你的函数,使其成为 MCP 工具。添加详细的文档注释,SwiftMCP 会自动提取这些信息。
- 实现 stdio 处理循环: 参考 README.md 中的示例代码,实现一个读取标准输入、处理 JSON-RPC 请求、并将响应输出到标准输出的循环。
- 构建和运行: 使用 SwiftPM 构建你的项目 ('swift build'),然后运行生成的可执行文件 ('./.build/debug/你的可执行文件名')。
- MCP 客户端交互: 使用 MCP 客户端向你的服务器发送 JSON-RPC 请求,服务器会通过标准输出返回响应。
信息
分类
开发者工具