
SwiftMCP

2025.04.07
16
SwiftJSON-RPC工具集成远程过程调用开发效率
SwiftMCP 是一个基于 Swift 语言实现的 MCP(Model Context Protocol)框架,支持通过多种传输方式(如标准 I/O 和 HTTP+SSE)进行 JSON-RPC 通信。该框架具有跨平台兼容性,支持异步响应处理和内置授权功能,适用于需要远程过程调用和工具集成的开发场景。
View on GitHub
Overview
基本能力
产品定位
SwiftMCP 是一个用于实现 JSON-RPC 通信的 Swift 框架,支持多种传输方式,适用于开发需要远程过程调用和工具集成的应用程序。
核心功能
- 多种传输选项:
- 标准 I/O(stdio)用于命令行使用
- HTTP+SSE(Server-Sent Events)用于 Web 应用程序
- JSON-RPC 2.0 兼容:支持标准的 JSON-RPC 2.0 协议
- 异步响应处理:通过 SSE 实现异步响应
- 内置授权支持:支持通过令牌进行授权验证
- 跨平台兼容性:可在不同平台上运行
- OpenAPI 支持:提供 OpenAPI 规范,便于与 AI 插件集成
适用场景
- 需要远程过程调用的开发项目
- 工具集成和自动化任务
- 与 AI 模型或其他支持 OpenAPI 的工具集成
工具列表
- @MCPServer:用于定义 MCP 服务器类或角色,自动生成元数据和文档
- @MCPTool:用于定义服务器中的工具函数,支持远程调用
常见问题解答
- 如何实现自定义服务器?:通过
@MCPServer
宏定义服务器类,并使用@MCPTool
宏定义工具函数。 - 如何启用 OpenAPI 支持?:在启动时添加
--openapi
选项。 - 如何设置授权?:通过
--token
选项设置令牌,并在请求中包含 Authorization 头。
使用教程
使用依赖
在 Package.swift
中添加 SwiftMCP 依赖:
dependencies: [
.package(url: "https://github.com/Cocoanetics/SwiftMCP.git", branch: "main")
]
安装教程
- 克隆仓库并构建项目:
git clone https://github.com/Cocoanetics/SwiftMCP.git
cd SwiftMCP
swift build
- 运行演示应用程序:
# 使用 stdio 传输
SwiftMCPDemo stdio
# 使用 HTTP+SSE 传输
SwiftMCPDemo httpsse --port 8080
# 使用 HTTP+SSE 传输并启用授权
SwiftMCPDemo httpsse --port 8080 --token your-secret-token
# 使用 HTTP+SSE 传输并启用 OpenAPI 支持
SwiftMCPDemo httpsse --port 8080 --openapi
调试方式
- 检查服务器是否正常运行:
curl http://localhost:8080/ping
- 验证 OpenAPI 文档:
curl http://localhost:8080/openapi.json
- 验证 AI 插件清单:
curl http://localhost:8080/.well-known/ai-plugin.json