使用说明

项目简介

mcp-kotlin-sdk仓库提供了一个使用Kotlin语言开发的Model Context Protocol (MCP) 软件开发工具包 (SDK)。该SDK旨在简化开发者构建基于MCP的应用,特别是MCP服务器的流程。它包含了客户端和服务端两部分,允许开发者使用Kotlin快速搭建能够与大型语言模型 (LLM) 客户端进行标准化通信的后端服务。

主要功能点

  • MCP协议实现: 完整实现了Model Context Protocol 协议,确保服务器能够处理来自MCP客户端的标准化请求和响应。
  • 资源管理: 支持托管和管理资源 (Resources),并提供数据访问能力,允许LLM客户端读取和操作服务器端的数据资源。
  • 工具注册与执行: 允许注册和执行工具 (Tools),使LLM客户端能够通过服务器调用外部功能,扩展LLM的能力边界。
  • Prompt模板渲染: 支持定义和渲染 Prompt 模板 (Prompts),为LLM交互提供可定制化的Prompt管理。
  • 多种传输协议支持: 实现了诸如 Stdio, SSE 和 WebSocket 等多种传输协议,方便在不同场景下部署和使用MCP服务器。
  • 会话管理和能力声明: 服务器端负责会话管理和能力声明,符合MCP服务器的规范。
  • 示例代码: 提供了 'kotlin-mcp-server' 示例,展示了如何使用该SDK搭建一个具备不同工具和功能的Kotlin MCP服务器。

安装步骤

  1. 添加Maven仓库: 在你的Kotlin项目的 'build.gradle.kts' 文件中,添加JetBrains Maven仓库地址,以便Gradle能够找到并下载 'mcp-kotlin-sdk' SDK。

    repositories {
        maven(url = "https://maven.pkg.jetbrains.space/public/p/kotlin-mcp-sdk/sdk")
    }
  2. 添加依赖: 在 'dependencies' 块中,添加 'kotlinx-mcp-sdk' 依赖。

    dependencies {
        implementation("org.jetbrains.kotlinx:kotlinx-mcp-sdk:0.1.0")
    }

服务器配置

MCP服务器的配置主要体现在服务器的启动命令及其参数上。由于 'mcp-kotlin-sdk' 提供了多种服务器示例,以下以 'stdio' 传输协议的服务器为例,展示其配置信息 (JSON 格式)。

{
  "server name": "kotlin-mcp-server",
  "command": "java",
  "args": [
    "-jar",
    "path/to/kotlin-mcp-server.jar"
  ],
  "transport": "stdio"
}
  • server name: 服务器名称,例如 "kotlin-mcp-server"。
  • command: 启动服务器的命令,这里使用 'java' 命令来运行 JAR 文件。
  • args: 启动命令的参数列表。
    • '-jar': Java 命令的参数,用于指定运行 JAR 文件。
    • 'path/to/kotlin-mcp-server.jar': Kotlin MCP服务器 JAR 文件的路径。请替换为实际的 JAR 文件路径
  • transport: 使用的传输协议,这里为 'stdio',表示标准输入输出流。

基本使用方法

  1. 创建服务器: 使用Kotlin代码,通过 'org.jetbrains.kotlinx.mcp.server.Server' 类创建MCP服务器实例,并配置服务器信息和功能 capabilities。

    import org.jetbrains.kotlinx.mcp.server.Server
    import org.jetbrains.kotlinx.mcp.server.ServerOptions
    import org.jetbrains.kotlinx.mcp.server.ServerCapabilities
    import org.jetbrains.kotlinx.mcp.Implementation
    
    val server = Server(
        serverInfo = Implementation(
            name = "example-server",
            version = "1.0.0"
        ),
        options = ServerOptions(
            capabilities = ServerCapabilities(
                resources = ServerCapabilities.Resources(
                    subscribe = true,
                    listChanged = true
                )
            )
        )
    )
  2. 注册资源: 使用 'server.addResource' 方法注册资源,并提供资源读取的handler。

    server.addResource(
        uri = "file:///example.txt",
        name = "Example Resource",
        description = "An example text file",
        mimeType = "text/plain"
    ) { request ->
        ReadResourceResult(
            contents = listOf(
                TextResourceContents(
                    text = "This is the content of the example resource.",
                    uri = request.uri,
                    mimeType = "text/plain"
                )
            )
        )
    }
  3. 选择和配置传输方式: 根据需要选择合适的传输协议(如 Stdio, SSE, WebSocket),并配置相应的 'ServerTransport'。以下示例为 Stdio 传输配置:

    import org.jetbrains.kotlinx.mcp.server.StdioServerTransport
    
    val transport = StdioServerTransport()
    server.connect(transport)
  4. 运行服务器: 启动Kotlin MCP服务器应用。对于 Stdio 传输,服务器将通过标准输入输出与客户端进行通信。对于 SSE 或 WebSocket,则需要配置和启动相应的网络服务器。

注意: 更详细的服务器功能配置(如工具注册、Prompt模板定义)和不同传输协议的使用方法,请参考仓库中的 'samples/kotlin-mcp-server' 示例代码和 MCP 协议官方文档。

信息

分类

开发者工具