项目简介

MCP Swift SDK 是 Model Context Protocol (MCP) 的官方 Swift 开发工具包。它提供了一套完整的API和组件,使开发者能够使用 Swift 语言轻松构建和部署 MCP 服务器应用,同时也支持开发 MCP 客户端。该SDK严格遵循最新的 MCP 协议规范,旨在为基于大语言模型 (LLM) 的应用提供一个标准的上下文服务后端框架。

主要功能点

  • 构建 MCP 服务器: 提供核心的 'Server' 类,允许声明服务器能力(Resources, Tools, Prompts)。
  • 处理 MCP 请求: 支持注册处理各种 MCP 方法请求的Handler,例如列出/调用工具、列出/读取资源、获取Prompt等,开发者只需专注于实现业务逻辑。
  • 多种传输协议: 内置支持 Stdio、HTTP 等多种传输方式,便于服务器与客户端进行通信。
  • 会话管理: 提供初始化钩子等机制,支持基本的客户端连接管理。
  • 优雅关机: 集成 Swift Service Lifecycle,方便实现服务器的平稳启动和停止。
  • 详细日志: 提供日志功能,便于调试和监控。

安装步骤

将以下依赖添加到您的 'Package.swift' 文件中:

dependencies: [
    .package(url: "https://github.com/modelcontextprotocol/swift-sdk.git", from: "0.8.2")
]

然后将依赖添加到您的 Target:

.target(
    name: "YourServerTarget", // 构建 MCP 服务器的 Target 名称
    dependencies: [
        .product(name: "MCP", package: "swift-sdk")
    ]
)

在您的 Swift 项目中构建并生成可执行文件。

服务器配置

MCP 服务器通常由 MCP 客户端(例如 LLM 或其他应用)作为子进程启动,并通过标准输入/输出 (Stdio) 进行通信。客户端需要知道如何启动您的服务器可执行文件。配置信息通常由客户端维护,以 JSON 格式描述,指定启动命令及其参数。

例如,一个 MCP 客户端可能需要以下信息来启动您使用此 SDK 构建的 Swift 服务器:

  • 'name': 一个标识服务器的友好名称(例如:"My Swift AI Backend")
  • 'command': 您编译生成的服务器可执行文件的完整路径(例如:'/usr/local/bin/my-swift-mcp-server')
  • 'args': 启动服务器所需的命令行参数数组(例如:'["--port", "8080", "--config", "/etc/my-server/config.json"]')。这些参数取决于您在服务器代码中如何解析和使用它们。
  • 'transport': 指定使用的传输协议类型,对于子进程启动通常是 '"stdio"'。

请注意: 这些配置信息是客户端为了启动和连接服务器而需要提供的,而不是服务器本身自带的配置格式。您需要根据您的部署环境和服务器可执行文件接受的参数来确定 'command' 和 'args' 的具体值。

基本使用方法 (构建服务器端)

  1. 初始化服务器: 创建 'Server' 实例,声明您的服务器支持哪些 MCP 能力(如 tools, resources, prompts)。
  2. 选择并启动传输: 实例化一个适合的 'Transport'(如 'StdioTransport'),然后调用服务器的 'start' 方法。
  3. 注册方法处理器: 使用 'withMethodHandler' 方法为服务器支持的每个 MCP 方法(如 'ListTools', 'CallTool', 'ReadResource', 'GetPrompt' 等)注册一个异步函数。
  4. 实现业务逻辑: 在您注册的处理器函数中,实现实际的业务逻辑,例如查询数据库、调用外部API、生成数据等,并按照 MCP 协议的要求构建返回结果。

通过以上步骤,您可以使用 MCP Swift SDK 构建一个功能齐全、遵循 MCP 协议的服务器应用,为 LLM 客户端提供上下文和功能。

信息

分类

开发者工具