使用说明
项目简介
'mcp-swift-sdk' 是一个使用 Swift 语言开发的 SDK,旨在帮助开发者快速构建基于 Model Context Protocol (MCP) 的应用程序。它提供了客户端和服务端两方面的支持,使得 Swift 开发者能够轻松地创建 MCP 服务器来管理资源、工具和 Prompt 模板,并与支持 MCP 协议的 LLM 客户端进行交互。
主要功能点
- MCP 客户端与服务端: SDK 同时支持 MCP 客户端和服务端功能的开发,方便构建完整的 MCP 应用生态。
- 标准传输协议: 支持 stdio 和 SSE 等 MCP 标准传输协议,确保与其他 MCP 组件的互操作性。
- 工具调用: 服务端可以注册和执行工具,允许 LLM 客户端通过 MCP 协议调用外部功能。
- 资源管理: 服务端可以托管和管理各种类型的资源,并向客户端提供数据访问能力。
- Prompt 模板: 虽然文档中没有明确提及 Prompt 模板,但作为 MCP 服务器的核心功能,推测该 SDK 具备支持 Prompt 模板定义和渲染的能力 (具体实现需参考代码)。
- Swift 语言支持: 专为 Swift 开发者设计,利用 Swift 语言的特性提供简洁易用的 API。
安装步骤
-
使用 Xcode:
- 打开你的 Xcode 项目。
- 选择 'File' -> 'Add Package Dependencies...'
- 在搜索框中输入或粘贴仓库 URL:'https://github.com/gsabran/mcp-swift-sdk'
- 选择你需要的版本,然后点击 'Add Package'。
-
使用 Swift Package Manager (SPM):
- 打开你的 'Package.swift' 文件。
- 在 'dependencies' 数组中添加以下内容:
dependencies: [ .package(url: "https://github.com/gsabran/mcp-swift-sdk", from: "0.2.0") ] - 在你的 target 的 'dependencies' 数组中添加需要的产品,例如 'MCPServer' 或 'MCPClient':
.target( name: "YourTarget", dependencies: [ .product(name: "MCPServer", package: "mcp-swift-sdk"), // 如果需要服务端功能 .product(name: "MCPClient", package: "mcp-swift-sdk"), // 如果需要客户端功能 ] )
服务器配置
对于 MCP 客户端,需要配置连接的 MCP 服务器信息。以下是一个基于 'stdio' 传输的服务器配置示例 (JSON 格式):
{ "server name": "my-swift-mcp-server", "command": "/path/to/my-mcp-server-executable", // 请替换为你的 MCP 服务器可执行文件的实际路径 "args": [] // 启动服务器时传递的命令行参数,如有需要请配置 }
配置参数说明:
- 'server name': 服务器的名称,可以自定义,用于在客户端标识服务器。
- 'command': 重要参数。MCP 服务器可执行文件的绝对路径。你需要先使用 'mcp-swift-sdk' 构建你的 MCP 服务器代码,生成可执行文件后,将此路径填入。
- 'args': 启动服务器可执行文件时需要传递的命令行参数,以数组形式配置。如果服务器启动不需要额外的参数,可以留空数组 '[]'。
获取服务器可执行文件路径:
- 使用 'mcp-swift-sdk' 提供的 'MCPServer' 相关 API 开发你的 MCP 服务器应用。
- 使用 Xcode 或 Swift CLI 工具 (如 'swift build') 构建你的 Swift 服务器项目。
- 构建成功后,在 Xcode 的 'Products' 目录或 SPM 的 '.build/debug' (或 '.build/release') 目录下可以找到生成的可执行文件。
- 将该可执行文件的 绝对路径 复制到上述 JSON 配置的 'command' 字段中。
基本使用方法
创建 MCP 服务器 (示例代码,更多功能请参考 SDK 文档):
import MCPServer let server = try await MCPServer( info: Implementation(name: "my-test-server", version: "1.0.0"), // 服务器实现信息 capabilities: .init(...), // 配置服务器提供的能力,例如工具、资源处理器等 transport: .stdio() // 使用 stdio 传输协议 ) // 服务器启动后,可以等待客户端连接和断开 try await server.waitForDisconnection()
创建 MCP 客户端 (示例代码,更多功能请参考 SDK 文档):
import MCPClient // 假设 serverInfo 包含了服务器的 command 和 args 等信息 (从配置文件或外部获取) let transport = try Transport.stdioProcess( serverInfo.executable, args: serverInfo.args, env: serverInfo.env // 可选:环境变量 ) let client = try await MCPClient( info: .init(name: "my-example-client", version: "1.0.0"), // 客户端自身信息 transport: transport, capabilities: .init( roots: .init(info: .init(listChanged: true), handler: listRoots) // 客户端能力配置 ) ) // 客户端创建后,可以与服务器进行交互,例如读取资源、调用工具等 let resources = await client.resources.value // ...
请务必参考 MCP Swift SDK 文档 和 Model Context Protocol 官方文档 获取更详细的使用方法和高级功能。
信息
分类
开发者工具