MCP服务器工具包

一个可重用的Swift包,用于在macOS/iOS应用中嵌入MCP(模型上下文协议)服务器。

  • by crunchybananas
  • Swift
  • 本地部署
  • 更新于
在 GitHub 查看 crunchybananas/MCPServerKit

使用说明

MCPServerKit 工具包

一个可重用的Swift包,用于在macOS/iOS应用程序中嵌入MCP(模型上下文协议)服务器。

特性

  • JSON-RPC 2.0 HTTP服务器 连接管理
  • 工具注册表 用于注册和分发工具定义
  • 配置抽象 用于灵活的设置存储
  • 工具处理程序协议 配备便利助手
  • 局域网模式 支持网络访问控制

安装

将MCPServerKit添加为Swift包依赖项:

dependencies: [
  .package(url: "https://github.com/crunchybananas/MCPServerKit.git", from: "1.0.0")
]

然后添加 MCPServerKit 目标的依赖关系:

.target(name: "YourApp", dependencies: ["MCPServerKit"])

MCPServerKit会自动引入MCPCore作为传递依赖。

快速开始

import MCPServerKit

// Create server with registry
let registry = MCPToolRegistry()
let server = MCPServer(port: 8765, registry: registry)

// Register tool definitions
registry.register(MCPToolDefinition(
  name: "my.tool",
  description: "Does something useful",
  inputSchema: ["type": "object", "properties": [:]],
  category: .state,
  isMutating: false
))

// Register tool handler
registry.register(handler: MyToolHandler())

// Start server
server.start()

建筑

MCP服务器

主服务器类处理:

  • 可配置端口上的TCP侦听器
  • HTTP请求解析
  • JSON-RPC 2.0协议
  • 连接生命周期
  • 局域网模式实施

MCPToolRegistry

管理工具定义和处理程序:

  • 注册/查找工具定义
  • 注册工具处理程序
  • 权限检查
  • 工具/列表响应构建

MCP工具处理

实现工具处理程序的协议:

@MainActor
public protocol MCPToolHandling: AnyObject {
  var supportedTools: Set<String> { get }
  func handle(name: String, id: Any?, arguments: [String: Any]) async -> (Int, Data)
}

MCPServer配置提供

配置存储协议:

@MainActor
public protocol MCPServerConfigProviding {
  func bool(forKey: String, default: Bool) -> Bool
  func integer(forKey: String, default: Int) -> Int
  func string(forKey: String, default: String) -> String
  // ... setters
}

默认实现 MCPUserDefaultsConfig 使用UserDefaults。

自定义请求处理

对于特定于应用程序的方法,请使用 onRequest 回拨:

server.onRequest = { method, id, params in
  switch method {
  case "myapp.customMethod":
    return (200, JSONRPCResponseBuilder.makeResult(id: id, result: ["ok": true]))
  default:
    return nil // Fall through to built-in handling
  }
}

平台要求

  • macOS 15.0+
  • iOS 18.0+
  • Swift 6.0+

依赖项

  • MCPCore(类型和JSON-RPC实用程序)