🎄 AI降临挑战——第11天:连接到MCP
此任务实现Kotlin客户端连接到 模型上下文协议(MCP) 标准I/O(STDIO)服务器。
参考服务器用作测试服务器 文件系统服务器 (@modelcontextprotocol/server-filesystem)通过 npx.
📋 任务
- 为Kotlin安装MCP SDK。
- 提升MCP服务器(本地版本通过STDIO)。
- 编写创建连接并获取可用工具列表的代码。
🛠 技术
- 语言: Kotlin 2.0+
- 构建系统: Gradle(Kotlin DSL)
- 图书馆:
- io.modelcontextprotocol:kotlin-sdk (官方SDK) - io.ktor:ktor-client-cio (HTTP客户端引擎) - kotlinx-coroutines
- 外部工具: Node.js&npx(用于运行基于JS的MCP服务器)
🚀 如何启动
先决条件
- JDK 17+ 已安装。
- Node.js 安装(检查命令)
node -v和npx -v).
- *对于Windows很重要:* 安装Node.js时,请确保选中“添加到路径”选项。
推出IntelliJ IDEA
- 打开文件
src/main/kotlin/ru/skokova/aiadventchallenge/Day11McpTest.kt. - 单击绿色图标 跑 (▶) 功能旁边
main.
通过Gradle启动
./gradlew运行
文本
🧩 销售
代码执行以下操作:
- 启动子进程: 自动启动命令
npx -y @modelcontextprotocol/server-filesystem .过ProcessBuilder. - 运输: 初始化
StdioClientTransport,将进程的I/O线程与客户端关联。
- *修复:* 使用 asSource().buffered() 和 asSink().buffered() 从 kotlinx-io 正确处理线程。
- 握手: 方法
client.connect()自动执行协议初始化(发送)initialize等待initialized). - 请求: 方法
client.listTools()请求服务器提供可用的工具。
✅ 预期成果
必须在控制台中显示文件系统工具列表:
🎄 AI降临挑战赛-第11天 🚀 正在启动MCP服务器进程。.. 🔄 连接。.. ✅ 有联系的!
🎉 === 可用的MCP工具===🎉 🛠 read_file 📝 从文件系统读取文件的完整内容。 🛠 读取多个文件 📝 从文件系统读取多个文件。 🛠 write_file 📝 创建新文件或完全覆盖现有文件。 ...
