使用说明
MCP1
一个包含多个模块的Kotlin项目,实现了简单的模型上下文协议(MCP)服务器和客户端。
项目概述
这个仓库包含两个主要模块:
kotlin_server— 基于Ktor的MCP服务器实现,提供提示、工具和资源(例如:天气提示/工具、网页搜索资源)kotlin_client— 一个CLI(命令行界面)客户端,能够连接到MCP(可能是指某种服务器或云平台的缩写,具体需根据上下文确定)服务器并运行一个交互式聊天循环。该客户端包含一个Gradle包装器,以便轻松构建和运行
关键来源位置
- 服务器源:
kotlin_server/app/src/main/kotlin/org/dkedu - 客户来源:
kotlin_client/app/src/main/kotlin/org/dkedu
简短描述
- 服务器(主类:
org.dkedu.AppServerKt使用Ktor和MCP Kotlin SDK来暴露SSE(Server-Sent Events)端点,并注册示例提示、工具和资源 - 客户端(主类:
org.dkedu.AppClientKt它提供了一个交互式聊天循环,并会尝试连接到MCP服务器;如果无法连接,则将以基本聊天模式运行
先决条件
- Java 21(项目配置为使用 Java 工具链 21)
- Gradle(或使用客户端模块提供的Gradle包装器)
构建与运行说明
客户
-
打开终端并进入客户端模块:
cd kotlin_client -
使用随附的 Gradle 包装器来运行客户端:
./gradlew :app:run -
或者,构建一个胖JAR(shadow)并运行它:
./gradlew :app:shadowJar # then run the produced JAR (check the actual filename under kotlin_client/app/build/libs) java -jar kotlin_client/app/build/libs/<client-shadow-jar>.jar
服务器
该 kotlin_server 模块未在仓库根目录中包含 Gradle 包装器;您可以选择在集成开发环境(IntelliJ IDEA)中打开该模块,或者使用本地安装的 Gradle。
在模块根目录下(需安装Gradle):
cd kotlin_server
gradle :app:run
或者构建一个影子 JAR 并运行它:
gradle :app:shadowJar
java -jar kotlin_server/app/build/libs/<server-shadow-jar>.jar
备注与提示
- 如果你计划在本地服务器上运行客户端,首先需要在某个端口(默认为8080)启动服务器。然后运行客户端,它将尝试连接
- 如果你使用客户端包装器
./gradlew在kotlin_client它会自动下载Gradle包装器并使用其运行 - 如果你更喜欢使用IDE的工作流程,请在IntelliJ中打开项目/模块并运行
org.dkedu.AppServerKt或者org.dkedu.AppClientKt来自 Gradle 运行配置或直接作为 Kotlin 应用程序运行
项目结构
关键文件以供探索:
- 服务器:
kotlin_server/app/src/main/kotlin/org/dkedu/AppServer.kt— 服务器配置和处理程序 - 客户:
kotlin_client/app/src/main/kotlin/org/dkedu/AppClient.kt— 客户端入口点和聊天循环