使用说明
MCP服务器
用于构建模型上下文协议(MCP)服务器的Swift库。该库提供核心MCP协议处理、传输层和请求处理基础设施。
特性
- MCP协议实现:完全支持基于JSON-RPC 2.0的MCP协议
- 多个传输:内置对TCP和Stdio传输的支持
- 可扩展设计:用于实现领域特定功能的委托模式
- 类型安全:具有Codable支持的强类型消息处理
组件
核心协议
- MCPMessages.swift:协议定义和类型
MCPRequest:JSON-RPC请求结构MCPResponse:JSON-RPC响应结构MCPParams:各种方法的参数枚举MCPResult:响应的结果枚举- 工具定义和功能
请求处理
- MCP请求处理程序:处理MCP请求的基本参与者
- 处理系统协议方法(初始化、功能、工具/列表)
- 将特定于域的请求委托给处理程序实现
- 管理初始化状态和错误处理
传输层
-
TCPServer.swift:基于TCP套接字的传输
- 使用Content-Length标头实现MCP消息帧
- 处理多个并发客户端连接
- 跨平台插座支撑
-
StdioTransport.swift:标准输入/输出传输
- 在stdin/stdout上实现MCP消息帧
- 适用于工具集成和CLI使用
错误处理
- 错误s.swift:带有JSON-RPC错误代码的MCP错误类型
用法
要构建MCP服务器,请实现 MCPRequestHandlerDelegate 协议:
import MCPServer
struct MyServerDelegate: MCPRequestHandlerDelegate {
func getServerInfo() -> ServerInfo {
return ServerInfo(name: "MyServer", version: "1.0.0")
}
func buildToolDefinitions() -> [Tool] {
// Define your tools here
return []
}
func handleDomainSpecificRequest(_ request: MCPRequest) async throws -> MCPResponse? {
// Handle your domain-specific methods
return nil
}
}
// Create and run the server
let delegate = MyServerDelegate()
let handler = MCPRequestHandler(delegate: delegate)
let transport = StdioTransport(handler: handler)
try await transport.start()
设置和安装
先决条件
- Swift 6.2或更高版本
- macOS 15或更高版本
- Xcode 16或更高版本(用于开发)
建设图书馆
要构建MCPServer库,请执行以下操作:
cd MCPServer
swift build
要构建一个特定的示例(例如DiceServer):
swift build --product DiceServer
与Claude MCP一起跑步
Claude CLI与MCP服务器集成以扩展其功能。以下是如何使用MCPServer claude mcp:
1.构建您的MCP服务器
首先,构建MCP服务器可执行文件:
swift build -c release
可执行文件将位于 .build/release/YourServerName.
2.配置Claude CLI
将您的MCP服务器添加到Claude的配置文件中 ~/.claude/mcp-servers.json:
{
"mcpServers": {
"dice": {
"command": "/path/to/.build/release/DiceServer"
}
}
}
替换 /path/to/.build/release/DiceServer 带有构建的可执行文件的完整路径。
3.使用MCP服务器运行Claude
使用MCP服务器启动Claude CLI:
claude mcp start
这将启动加载了配置的MCP服务器的Claude CLI。然后,您可以与Claude交互,并使用MCP服务器提供的工具。
4.在Claude中使用工具
一旦您的MCP服务器运行,您可以要求Claude使用其工具:
> roll_dice sides:6
Claude将把工具调用路由到您的MCP服务器并返回结果。
需求
- Swift 6.2或更高版本
- macOS 15或更高版本
许可证
[您的许可证在这里]
