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)在现有实现中未必全部暴露。
- MCP 服务核心
-
安装与运行步骤
- 构建
- 在项目根或对应工作区中,编译 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 的类型系统、诊断机制紧密集成,旨在为编辑器/代理等客户端提供稳定的上下文服务能力。