使用说明

项目简介

kotlin-sdk 仓库是 Model Context Protocol (MCP) 的 Kotlin 语言版本 SDK,旨在帮助开发者使用 Kotlin 快速构建兼容 MCP 协议的应用程序。该 SDK 同时支持创建 MCP 客户端和服务器,简化了 LLM 应用与上下文服务集成的过程。

主要功能点

  • MCP 协议完整实现: 全面实现了 Model Context Protocol 规范,确保与其他 MCP 兼容。
  • 客户端与服务器端 SDK: 同时提供客户端和服务端组件,方便开发者构建完整的 MCP 应用。
  • 资源 (Resources) 管理: 支持在 MCP 服务器中托管和管理各种类型的资源,并提供数据访问能力。
  • 工具 (Tools) 注册与执行: 允许 MCP 服务器注册和执行工具,使 LLM 客户端能够调用外部功能。
  • Prompt 模板 (Prompts) 渲染: 支持定义和渲染 Prompt 模板,实现灵活的 LLM 交互定制。
  • 多种传输协议支持: 内置 Stdio, SSE, WebSocket 等多种传输协议的实现,方便部署和集成。
  • 会话管理与能力声明: 服务器端负责会话管理和能力声明,符合 MCP 协议规范。
  • Ktor 集成: 提供 Ktor 扩展,方便在 Ktor 应用中快速搭建 MCP 服务器。

安装步骤

  1. 添加 Maven Central 仓库: 在你的 'build.gradle.kts' 或 'build.gradle' 文件中,确保 'repositories' 部分包含 'mavenCentral()':

    repositories {
        mavenCentral()
    }
  2. 添加依赖: 在 'dependencies' 部分添加 kotlin-sdk 的依赖:

    dependencies {
        implementation("io.modelcontextprotocol:kotlin-sdk:0.3.0")
    }

服务器配置 (MCP客户端启动命令配置示例)

kotlin-sdk 仓库本身是一个 SDK 库,用于构建 MCP 服务器,并非开箱即用的 MCP 服务器程序。要使用 kotlin-sdk 构建 MCP 服务器,您需要编写 Kotlin 代码,并使用 SDK 提供的 Server 类和相关 API 来定义资源、工具和 Prompt 模板。

MCP 客户端需要连接到实际运行的 MCP 服务器才能工作。以下是一个 MCP 客户端启动命令配置示例 (JSON 格式),展示了如何配置客户端以连接到使用 kotlin-sdk 构建的 MCP 服务器 (假设服务器通过 Stdio 传输协议运行):

{
  "serverName": "kotlin-mcp-server",
  "transport": "stdio",
  "command": "java",
  "args": [
    "-jar",
    "path/to/your/kotlin-mcp-server.jar"
  ],
  "capabilities": {
    "resources": {
      "list": true,
      "read": true
    },
    "tools": {
      "list": true,
      "invoke": true
    },
    "prompts": {
      "list": true,
      "render": true
    }
  }
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'transport': 传输协议类型,这里示例为 'stdio' (标准输入输出流)。kotlin-sdk 还支持 'sse' 和 'websocket' 等协议。
  • 'command': 启动 MCP 服务器的命令,例如 'java' (假设您的服务器打包为 JAR 文件)。
  • 'args': 启动命令的参数,例如 '["-jar", "path/to/your/kotlin-mcp-server.jar"]',需要根据您实际的服务器打包方式和 JAR 文件路径进行调整。
  • 'capabilities': 声明客户端期望使用的 MCP 服务器功能,例如 'resources'、'tools' 和 'prompts' 的 'list' 和 'read'/'invoke'/'render' 能力。

注意: MCP 客户端的配置主要是指定如何连接到 MCP 服务器,而不是直接配置服务器的启动命令和参数。上述 'command' 和 'args' 仅为示例,实际使用时,您需要根据您自己构建和部署的 MCP 服务器的运行方式来配置客户端的连接信息 (例如,如果使用 SSE 或 WebSocket 协议,则需要配置服务器的 URL 地址)。

基本使用方法

  1. 创建 MCP 服务器: 使用 kotlin-sdk 提供的 'Server' 类,配置服务器信息、能力,并添加资源、工具和 Prompt 模板。参考 README.md 中的 "Creating a Server" 代码示例。

  2. 运行 MCP 服务器: 将 Kotlin MCP 服务器代码编译打包成可执行程序 (例如 JAR 文件),然后在终端或命令行中运行该程序。

  3. 创建 MCP 客户端: 使用 kotlin-sdk 提供的 'Client' 类,配置客户端信息和传输协议 (例如 'StdioClientTransport', 'SSEClientTransport', 'WebSocketClientTransport')。参考 README.md 中的 "Creating a Client" 代码示例。

  4. 连接客户端与服务器: 在客户端代码中使用 'client.connect(transport)' 方法,根据选择的传输协议连接到正在运行的 MCP 服务器。

  5. 使用 MCP 功能: 客户端连接成功后,可以使用 'client.listResources()', 'client.readResource()', 'client.listTools()', 'client.invokeTool()', 'client.listPrompts()', 'client.renderPrompt()' 等方法,与 MCP 服务器进行交互,获取资源、调用工具、渲染 Prompt 等。

示例代码: README.md 中提供了详细的客户端和服务器端代码示例,包括如何使用 Stdio 和 SSE 传输协议。您可以参考这些示例代码快速上手。

信息

分类

开发者工具