kea-mcp

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,用于 Kea 语言的上下文服务,核心功能包括通过 MCP 读取/管理资源、注册与执行工具、以及对 Kea 代码进行类型检查与诊断等能力输出。服务器采用 JSON-RPC 形式与客户端通信,当前实现通过标准输入/输出(stdio)传输,便于与编辑器、代理或 IDE 插件集成。
  • 主要功能点

    • MCP 服务核心
      • 支持通过 MCP 的接口提供能力声明与会话管理,包含对工具的注册、查询以及执行请求的处理。
    • Resource/Tools/Prompts 的表达能力
      • 服务器可以向客户端暴露资源相关数据(类型/诊断信息等)、工具(如 type_check、diagnose、get_type、reset_session)以及用于构建交互的提示模板信息(Prompts 的渲染/定义在实现中体现为对工具输出的支持)。
    • JSON-RPC 交互
      • 客户端通过 JSON-RPC 请求向服务器发送操作(如读取资源、调用工具、获取 Prompts),服务器返回标准的 JSON-RPC 响应。
    • 会话与能力管理
      • 服务器端维护会话状态,允许重置会话、持续性工具输出,以及能力声明(如工具集合)。
    • 传输协议
      • 当前实现以 MCP 的 stdio 传输为主,与客户端在编辑器、代理等环境中的集成紧密;文档中提及的其他传输形态(SSE/WebSocket)在现有实现中未必全部暴露。
  • 安装与运行步骤

    • 构建
      • 在项目根或对应工作区中,编译 Kea MCP 服务器(cargo 构建/包管理器工具链需就绪)。
    • 启动
      • 以可执行文件 kea-mcp 启动服务器,确保标准输入输出被 MCP 客户端正确连接(服务器实现会检测是否为交互式终端,拒绝直接开启 TTY 模式,需通过管道/管道化方式接入)。
    • 连接方式
      • MCP 客户端应通过标准输入输出渠道连接到服务器,使用 MCP 的 JSON-RPC 协议进行请求与响应。
  • 服务器配置示例(JSON,供 MCP 客户端读取配置) 说明:MCP 客户端需要知道服务器启动命令与参数,以便正确建立连接。以下配置仅用于描述性参考,不是代码片段。

{ "serverName": "kea-mcp", "command": "kea-mcp", "args": [] // 说明:serverName 为 MCP 客户端用以标识的名称;command 为实际启动服务器的可执行文件名或路径;args 为启动参数,当前实现对 stdio 传输不需要额外参数。 // 注:MCP 客户端不需要解析该配置的实现细节,但应使用该信息启动进程并通过管道把标准输入输出绑定至 MCP 通信通道。 }

  • 基本使用方法

    • 启动与连接
      • 通过合适的管道机制启动 kea-mcp 可执行文件,并将客户端与服务器的标准输入输出绑定起来,确保 MCP 客户端能够通过 JSON-RPC 与服务端通信。
    • 可用工具
      • type_check: 将给定 Kea 代码进行类型检查,输出诊断信息或推断出的类型。
      • diagnose: 以结构化诊断输出代码中的问题点,与 type_check 不同在于输出诊断信息的结构性。
      • get_type: 推断并返回给定代码片段的类型信息,不修改会话状态。
      • reset_session: 清除当前会话中的所有绑定与状态,重新开始会话。
    • 常见工作流
      • 使用 editor 集成时,打开一个 Kea 文件后,编辑器向 MCP 服务器发送 type_check 请求,获取诊断和类型信息来辅助代码提示与错误高亮。
      • 通过 diagnose/get_type 进行静态分析与快速反馈,必要时调用 reset_session 重置当前会话。
      • MCP 服务器将返回标准的 JSON-RPC 响应,客户端根据响应进行 UI 展示或错误处理。
  • 运行与验证

    • 服务器在单元测试与集成脚本中有可运行的实现路径,确保 MCP 客户端在连接后能获取服务信息、列出工具、执行工具并接收结果。
  • 备注

    • 本实现为 Kea 语言的 MCP 服务端实现,并与 Kea 的类型系统、诊断机制紧密集成,旨在为编辑器/代理等客户端提供稳定的上下文服务能力。

服务器信息