使用说明

项目简介

mcp4k 是一个基于 Kotlin 的框架,旨在简化 Model Context Protocol (MCP) 客户端和服务器的开发。它通过编译时注解处理,自动生成 JSON-RPC 处理程序和模式元数据,并提供完整的生命周期管理。使用 mcp4k,开发者可以更专注于业务逻辑的实现,而无需过多关注 MCP 协议的底层细节。

主要功能点

  • 资源管理: 提供资源托管和访问能力,支持文件资源提供器,允许客户端读取服务器端提供的文件资源。
  • 工具注册与执行: 允许注册和调用外部工具,通过简单的注解即可将 Kotlin 函数暴露为 MCP 工具,供客户端调用执行。
  • Prompt 模板: 支持定义和使用 Prompt 模板,通过注解定义 Prompt 函数,方便客户端获取预定义的 Prompt 模板。
  • JSON-RPC 通信: 基于 JSON-RPC 协议与客户端通信,处理客户端的请求并返回响应。
  • 传输协议: 目前主要支持 Stdio 传输,未来计划支持 HTTP-SSE 等更多传输协议。
  • 上下文管理: 允许服务器工具和 Prompt 共享上下文状态,方便在多个工具或 Prompt 之间共享数据。
  • 请求取消: 支持客户端取消正在进行中的请求,提高了交互的灵活性。
  • 采样 (客户端): 客户端可以提供 SamplingProvider 来处理服务器发起的采样请求,支持客户端参与 LLM 的采样过程。

安装步骤

  1. 添加插件: 在你的 'build.gradle.kts' 文件中,添加 mcp4k 插件和 Kotlin 序列化插件。确保你的项目已经配置了 Kotlin 环境。
    plugins {
      kotlin("multiplatform") version "2.1.0" // 或 kotlin("jvm")
      kotlin("plugin.serialization") version "2.1.0"
      id("sh.ondr.mcp4k") version "0.3.6"
    }
  2. 同步 Gradle: 同步 Gradle 项目,确保插件和依赖被正确添加到项目中。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令才能连接并与之通信。对于 mcp4k 服务器,由于其是 Kotlin 应用,通常需要将其打包成 JAR 文件后通过 'java -jar' 命令运行。以下是一个典型的 MCP 客户端服务器配置示例,假设您已将 mcp4k 服务器打包为 'mcp4k-server.jar',并且使用 Stdio 传输协议:

{
  "serverName": "mcp4k-server",
  "command": "java",
  "args": ["-jar", "mcp4k-server.jar"]
}

配置参数说明:

  • 'serverName': 服务器名称,用于在客户端标识和管理不同的 MCP 服务器连接。
  • 'command': 启动 MCP 服务器进程的命令。对于 mcp4k 打包的 JAR 文件,通常使用 'java' 命令。
  • 'args': 启动命令的参数列表。这里包含了 '-jar' 参数以及服务器 JAR 文件的名称 'mcp4k-server.jar'。请务必根据您实际打包的 JAR 文件名修改 'mcp4k-server.jar'。 如果服务器启动需要其他 JVM 参数,也可以添加到 'args' 列表中。

注意: 上述配置假设 mcp4k 服务器使用 Stdio 作为传输协议,并且客户端和服务器在同一台机器上或可以通过 Stdio 进行通信。实际部署时,您可能需要根据 mcp4k 未来支持的更多传输协议 (如 HTTP-SSE) 和网络环境进行调整。

基本使用方法

  1. 定义 MCP 组件: 使用 '@McpTool' 和 '@McpPrompt' 注解 Kotlin 函数,定义你的工具和 Prompt。
  2. 构建服务器: 使用 'Server.Builder' 构建 MCP 服务器实例,注册你定义的工具、Prompt 和资源提供器。选择合适的传输协议,例如 'StdioTransport'。
  3. 启动服务器: 调用 'server.start()' 方法启动 MCP 服务器,开始监听客户端请求。
  4. 构建客户端: 在客户端应用中,使用 'Client.Builder' 构建 MCP 客户端实例,配置相同的传输协议,并连接到 MCP 服务器。
  5. 客户端交互: 客户端通过 'client' 对象提供的方法 (如 'listTools', 'callTool', 'getPrompt', 'readResource' 等) 按照 MCP 协议与服务器进行交互,发送请求并处理服务器返回的响应。

通过 mcp4k 框架,开发者可以高效地构建符合 MCP 协议的服务器和客户端应用,实现 LLM 应用的上下文管理和功能扩展。

信息

分类

开发者工具