使用说明

项目简介

'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。

安装步骤

  1. 使用 Xcode:

    • 打开你的 Xcode 项目。
    • 选择 'File' -> 'Add Package Dependencies...'
    • 在搜索框中输入或粘贴仓库 URL:'https://github.com/gsabran/mcp-swift-sdk'
    • 选择你需要的版本,然后点击 'Add Package'。
  2. 使用 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': 启动服务器可执行文件时需要传递的命令行参数,以数组形式配置。如果服务器启动不需要额外的参数,可以留空数组 '[]'。

获取服务器可执行文件路径:

  1. 使用 'mcp-swift-sdk' 提供的 'MCPServer' 相关 API 开发你的 MCP 服务器应用。
  2. 使用 Xcode 或 Swift CLI 工具 (如 'swift build') 构建你的 Swift 服务器项目。
  3. 构建成功后,在 Xcode 的 'Products' 目录或 SPM 的 '.build/debug' (或 '.build/release') 目录下可以找到生成的可执行文件。
  4. 将该可执行文件的 绝对路径 复制到上述 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 官方文档 获取更详细的使用方法和高级功能。

信息

分类

开发者工具