MCP Kotlin SDK 使用说明

项目简介

MCP Kotlin SDK 是 Model Context Protocol (MCP) 的 Kotlin 实现,旨在帮助开发者构建能够为大型语言模型 (LLM) 提供标准化上下文的应用后端(MCP 服务器)以及与之交互的客户端。该 SDK 支持资源管理、工具注册与执行、Prompt 模板定义等 MCP 核心功能,并支持 Stdio、SSE 和 WebSocket 等多种传输协议。

主要功能点

  • 资源管理: MCP 服务器可以托管和管理各种类型的资源,例如文件、数据库记录等,并允许客户端通过 URI 访问这些资源。示例代码展示了如何添加和提供文本资源。
  • 工具执行: MCP 服务器可以注册和执行外部工具,允许 LLM 客户端调用这些工具来扩展其功能。示例代码展示了工具的注册和调用,以及如何代理到 JetBrains IDE 的工具。
  • Prompt 模板: 虽然示例代码中没有直接展示 Prompt 模板功能,但 MCP SDK 本身支持定义和渲染 Prompt 模板,以实现可定制的 LLM 交互模式。
  • 多种传输协议: SDK 支持 Stdio、SSE 和 WebSocket 等传输协议,方便在不同场景下部署和使用 MCP 服务器。示例代码展示了 Stdio 和 SSE 传输协议的使用。

安装步骤

  1. 添加 JitPack 仓库: 在你的 Kotlin 项目的 'build.gradle.kts' 文件中,添加 JitPack 仓库:

    repositories {
        maven { url = uri("https://jitpack.io") }
    }
  2. 添加依赖: 在 'dependencies' 块中添加 MCP Kotlin SDK 的依赖:

    dependencies {
        implementation("com.github.e5l:mcp-kotlin-sdk:main-SNAPSHOT")
    }

服务器配置

以下是基于仓库 'samples/node-server/src/server.ts' 示例生成的 MCP 服务器客户端配置信息(JSON 格式)。请注意,此配置是针对 Node.js 示例服务器,需要 Node.js 环境才能运行。实际使用 Kotlin SDK 构建的服务器配置可能有所不同。

{
  "serverName": "jetbrains/proxy",
  "command": "node",
  "args": ["samples/node-server/src/server.ts"],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,示例中设置为 "jetbrains/proxy",可以自定义。
  • 'command': 启动服务器的命令,对于 Node.js 示例,使用 'node' 命令。
  • 'args': 启动命令的参数,对于 Node.js 示例,指向 'samples/node-server/src/server.ts' 脚本文件。
  • 'transport': 传输协议,示例中使用 'stdio'。

基本使用方法

  1. 运行 MCP 服务器:

    • 如果使用 Node.js 示例服务器 ('samples/node-server/src/server.ts' 或 'samples/node-server/src/tmp.ts'),请先确保安装了 Node.js 环境和 '@modelcontextprotocol/sdk' 包(根据 'samples/node-server' 目录下的 'package.json' 安装依赖)。
    • 然后,在项目根目录下,使用命令行执行 'node samples/node-server/src/server.ts' 或 'node samples/node-server/src/tmp.ts' 启动服务器。
  2. 配置 MCP 客户端:

    • 在 MCP 客户端中,根据上述 “服务器配置” 部分提供的 JSON 配置信息,配置连接到 MCP 服务器。
    • 客户端需要根据 MCP 协议规范,发送 JSON-RPC 请求与服务器进行通信,例如列出资源、读取资源、调用工具等。
    • 可以参考 README.md 中的 "Creating a Client" 部分的 Kotlin 代码示例来构建 MCP 客户端。

注意: 'samples/node-server' 目录下的示例代码使用了 '@modelcontextprotocol/sdk' 这个 npm 包,但仓库 'mcp-kotlin-sdk' 本身是 Kotlin SDK。 'samples/node-server' 可能是为了演示 MCP 协议或者提供一个代理服务器的示例。 实际使用 Kotlin SDK 构建 MCP 服务器,请参考 README.md 中的 "Creating a Server" 部分的 Kotlin 代码示例。

信息

分类

开发者工具