使用说明
项目简介
本项目 'mcp-kotlin-minimal-client-server-sample' 是一个基于 Kotlin 语言实现的 MCP (Model Context Protocol) 服务器的最小化示例。它提供了一个简单的天气查询工具 ('get_weather'),用于演示 MCP 服务器如何向客户端暴露工具,并处理客户端的工具调用请求。该示例旨在帮助开发者快速理解 MCP 协议的工作原理以及服务器端的实现方式。
主要功能点
- 工具注册与发现: 服务器启动时注册一个名为 'get_weather' 的天气查询工具,客户端可以通过 'tools/list' 方法获取工具列表及其描述信息。
- 工具调用: 客户端可以调用已注册的 'get_weather' 工具,并传递城市名称作为参数。
- JSON-RPC 通信: 服务器和客户端之间通过 JSON-RPC 协议进行通信,交换 MCP 格式的请求和响应。
- 最小化实现: 代码简洁易懂,专注于 MCP 核心流程的演示,去除了复杂的业务逻辑和错误处理。
安装步骤
- 克隆仓库: 将 GitHub 仓库 'https://github.com/takahirom/mcp-kotlin-minimal-client-server-sample' 克隆到本地。
git clone https://github.com/takahirom/mcp-kotlin-minimal-client-server-sample cd mcp-kotlin-minimal-client-server-sample - 安装 Kotlin 运行环境: 确保你的机器上安装了 Kotlin 运行环境。如果尚未安装,请参考 Kotlin 官网 进行安装。
- 运行服务器: 在项目根目录下,使用 Kotlin 脚本运行器执行 'server.main.kts' 文件。
服务器默认监听标准输入/输出 (stdio),并等待客户端连接和请求。kotlin server.main.kts
服务器配置
MCP 客户端需要配置服务器的启动命令和参数才能连接到 MCP 服务器。对于本示例,服务器通过 Kotlin 脚本直接运行,无需额外的配置。以下是一个 MCP 客户端可能的服务器配置示例 (JSON 格式),用于连接到本示例服务器:
{ "serverName": "minimal-mcp-weather-server", "command": "kotlin", "args": ["server.main.kts"] }
配置参数说明:
- 'serverName': 服务器的名称,可以自定义,用于在客户端标识不同的 MCP 服务器连接。
- 'command': 启动服务器进程的命令。对于本示例,由于 'server.main.kts' 是 Kotlin 脚本,因此使用 'kotlin' 命令来运行。
- 'args': 传递给启动命令的参数列表。这里指定了要运行的 Kotlin 脚本文件 'server.main.kts'。
注意: 实际的 MCP 客户端可能需要更详细的配置,例如传输协议 (stdio, sse, websocket) 的选择、连接地址等。本示例为了简化,仅使用 stdio 作为传输协议,无需额外配置。
基本使用方法
- 启动服务器: 按照 "安装步骤" 中的说明启动 'server.main.kts' 服务器脚本。服务器启动后,会输出日志信息,表明服务器已准备就绪。
- 启动 MCP 客户端: 你需要一个 MCP 客户端来与该服务器进行交互。仓库中 'src/main/kotlin/Client.kt' 提供了一个简单的 Kotlin 客户端示例。你可以参考该客户端代码,或者使用任何兼容 MCP 协议的客户端。
- 客户端与服务器交互: 客户端启动后,会连接到服务器,并按照 MCP 协议进行通信。例如,客户端可以发送 'tools/list' 请求来获取服务器提供的工具列表,然后调用 'tools/call' 请求来执行 'get_weather' 工具,查询指定城市的天气。
- 查看交互结果: 服务器会将工具执行结果通过 JSON-RPC 响应返回给客户端。客户端可以解析响应并展示天气查询结果。
示例交互流程 (基于 README.md 中的描述):
- 客户端初始化连接: 客户端启动并连接到服务器,进行初始化握手,交换协议版本和能力信息。
- 客户端获取工具列表: 客户端发送 'tools/list' 请求,服务器返回 'get_weather' 工具的描述信息。
- 客户端调用工具: 客户端发送 'tools/call' 请求,指定工具名为 'get_weather',参数为 '{"location": "Tokyo"}'。
- 服务器执行工具并返回结果: 服务器执行 'get_weather' 工具,模拟查询天气信息,并返回包含天气结果的 JSON-RPC 响应。
- 客户端接收并处理结果: 客户端接收到服务器的响应,解析出天气结果 "Sunny"。
请注意,这只是一个最小化的示例,仅用于演示 MCP 服务器的基本功能。在实际应用中,你需要根据具体需求扩展服务器的功能,例如添加更多工具、处理更复杂的业务逻辑、实现更完善的错误处理和安全性机制等。
信息
分类
开发者工具