SwiftMCP

SwiftMCP

site icon
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")
]

安装教程

  1. 克隆仓库并构建项目:
git clone https://github.com/Cocoanetics/SwiftMCP.git
cd SwiftMCP
swift build
  1. 运行演示应用程序:
# 使用 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

调试方式

  1. 检查服务器是否正常运行:
curl http://localhost:8080/ping
  1. 验证 OpenAPI 文档:
curl http://localhost:8080/openapi.json
  1. 验证 AI 插件清单:
curl http://localhost:8080/.well-known/ai-plugin.json

许可证

该项目遵循 BSD-2-Clause 开源许可条款,请参阅 BSD-2-Clause 了解完整条款。