使用说明
swiftMCP
Swift的全面实现 模型上下文协议(MCP),演示了客户端-服务器通信的多种传输机制。
概述
swiftMCP提供了Swift中MCP客户端和服务器的完整工作示例,展示了三种不同的传输实现:
- 标准 -基于过程的通信的标准输入/输出传输
- httpPOST -基于HTTP POST的Hummingbird web框架传输
- httpGET -带有服务器发送事件(SSE)的HTTP GET用于流式响应
每个示例都包括客户端和服务器实现,从而很容易理解MCP如何在不同的传输层上工作。
这些例子旨在逐步相互借鉴。从...开始 第一阶段(_S) 使用最简单的传输机制学习MCP的核心概念。一旦你了解了基本原理,就转到 2_httpPOST 查看同一协议如何在HTTP上使用请求-响应模式工作。最后,探索 3_httpGET 了解服务器发送事件的实时流响应。此学习路径将您从基本的流程通信带到更复杂的web服务架构。
什么是MCP?
模型上下文协议是用于AI助手和外部工具/服务之间通信的标准化协议。它能够:
- 工具发现 -动态列出可用功能
- 工具调用 -使用结构化参数执行工具
- 资源访问 -读取和操作外部资源
- 提示 -常见任务的模板化交互
项目结构
swiftMCP/
├── 1_stdio/ # Standard I/O transport example
│ ├── client/ # Swift client using subprocess pipes
│ └── server/ # Swift server using stdin/stdout
├── 2_httpPOST/ # HTTP POST transport example
│ ├── client/ # Swift HTTP client
│ ├── server/ # Hummingbird-based HTTP server
│ └── web-client.html # Browser-based client
├── 3_httpGET/ # HTTP GET + SSE transport example
│ ├── client/ # Swift HTTP client with streaming
│ ├── server/ # Hummingbird server with SSE support
│ └── web-client.html # Browser client with event streaming
└── common/ # Shared code
├── tools/ # Reusable tool implementations
└── util/ # Common utilities (JSON-RPC, debug, etc.)
需求
- macOS 14.0或更高版本
- Swift 6.1或更高版本
- Xcode 16.0或更高版本(用于开发)
入门指南
1.stdio传输示例
使用标准输入/输出的最简单示例:
cd 1_stdio/client
swift run
这将:
- 将服务器作为子进程启动
- 通过stdin/stdout管道连接到它
- 列出可用工具
- 调用工具
- 显示结果
2.httpPOST传输示例
基于HTTP的通信:
# Terminal 1 - Start the server
cd 2_httpPOST/server
swift run
# Terminal 2 - Run the client
cd 2_httpPOST/client
swift run
或打开 2_httpPOST/web-client.html 在浏览器中使用web界面。
3.httpGET传输示例
使用服务器发送的事件流式传输HTTP:
# Terminal 1 - Start the server
cd 3_httpGET/server
swift run
# Terminal 2 - Run the client
cd 3_httpGET/client
swift run
或打开 3_httpGET/web-client.html 在用于流式网络界面的浏览器中。
特性
运输实施
- 标准运输 -高效的流程间沟通
- HTTP传输 -与JSON-RPC的RESTful API通信
- SSE运输 -实时流媒体更新
基础功能类库
- JSON-RPC 2.0 -全面实施请求/响应处理
- 工具框架 -可扩展的工具注册和调用
- 健康检查 -服务器健康监控
- 调试实用程序 -综合测井系统
- 通知 -事件通知支持
示例工具
- 工具_1 -系统LINUX命令(Swift版本检查)
- 工具_2 -自定义方法处理程序演示
- 工具_3 -流数据演示
建筑
每个示例都遵循相同的模式:
-
服务器安装程序
- 用功能初始化MCP服务器
- 注册工具处理程序
- 启动传输侦听器
-
客户端连接
- 创建MCP客户端
- 通过所选传输连接
- 初始化握手
-
工具操作
- 列出可用工具
- 使用参数调用工具
- 处理响应
依赖项
该项目使用官方 MCP Swift SDK:
.package(url: "https://github.com/modelcontextprotocol/swift-sdk.git", from: "0.10.2")
HTTP示例还使用:
.package(url: "https://github.com/hummingbird-project/hummingbird.git", from: "2.0.0")
发展
建筑
# Build a specific example
cd 1_stdio/client
swift build
# Build in release mode
swift build -c release
用例
- AI助手集成 -将AI模型连接到外部工具
- 开发工具 -构建IDE插件和开发助手
- 自动化 -使用工具编排创建自动化工作流
- 学习 -了解Swift中MCP协议的实现
贡献
欢迎投稿!请随时提交问题或拉取请求。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
资源
致谢
使用Model Context Protocol组织的官方Model Context Protocol Swift SDK构建。