使用说明
项目简介
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服务器。
安装步骤
-
添加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") } -
添加依赖: 在 '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',表示标准输入输出流。
基本使用方法
-
创建服务器: 使用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 ) ) ) ) -
注册资源: 使用 '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" ) ) ) } -
选择和配置传输方式: 根据需要选择合适的传输协议(如 Stdio, SSE, WebSocket),并配置相应的 'ServerTransport'。以下示例为 Stdio 传输配置:
import org.jetbrains.kotlinx.mcp.server.StdioServerTransport val transport = StdioServerTransport() server.connect(transport) -
运行服务器: 启动Kotlin MCP服务器应用。对于 Stdio 传输,服务器将通过标准输入输出与客户端进行通信。对于 SSE 或 WebSocket,则需要配置和启动相应的网络服务器。
注意: 更详细的服务器功能配置(如工具注册、Prompt模板定义)和不同传输协议的使用方法,请参考仓库中的 'samples/kotlin-mcp-server' 示例代码和 MCP 协议官方文档。
信息
分类
开发者工具