kemdicode-mcp
使用说明内容(Markdown格式)
-
项目简介
- kemdicode-mcp 是一个基于 MCP 的后端服务器,旨在向大语言模型(LLM)客户端提供统一、标准化的上下文服务。核心功能包括:资源管理(数据访问)、工具注册与执行、以及 prompts(提示模板)的定义与渲染,且通过 JSON-RPC 风格的通信进行请求/响应交互。
- 服务器支持跨集群的分布式协作、会话管理、能力声明,并提供多种传输协议(如 Stdio、SSE、WebSocket 等),以适配不同的客户端实现与运行环境。
-
主要功能点
- MCP 核心协议实现:通过 JSON-RPC 风格式与 MCP 客户端交互,支持资源、工具、Prompts 的读取、执行与渲染。
- 资源与数据管理:持久化上下文、记忆、工作流等资源,基于 Redis 做跨会话的状态共享。
- 工具与插件系统:注册、发现、执行工具,支持多模型、多任务的协同执行。
- Prompt 模板与对话渲染:定义可定制的 Prompt 模板,渲染后向 LLM 发送执行请求。
- 集群总线与 Magistrale:Cluster Bus、Global Event Bus、 Magistrale 分布式提示执行与模型协同。
- 会话与权限管理:会话生命周期、权限控制、工具访问策略等。
- 传输协议:支持 StdIO 子进程模式、HTTP 端口模式、SSE/WebSocket 等传输方式,便于不同客户端接入。
-
安装步骤
- 安装依赖并编译:使用 Bun 作为运行时,执行安装、构建与启动命令。
- 运行方式包括本地 HTTP 服务和 StdIO 子进程模式两种:
- StdIO 模式:用于 MCP 客户端作为子进程对接的场景
- HTTP 模式:对外提供 HTTP 接口,便于浏览器/其他服务接入
- 流程大致为:
- 安装依赖
- 构建
- 以适合的模式启动 注:仓库提供了完整的启动与使用示例,具体命令请参考仓库文档中的 Installation 与 Build 指引。
-
服务器配置(MCP 客户端配置示例,供客户端对接 MCP 服务器时参考)
- 说明:MCP 客户端需要知道如何连接到 MCP 服务器,通常通过一个 JSON 配置描述服务器名称、执行命令以及参数等信息。以下示例仅供理解服务器部署后的对接配置结构,实际客户端无需在本仓库内改动。
- 配置示例(JSON 结构,包含 server name、command、args 等): { "mcpServers": { "kemdicode-mcp": { "command": "kemdicode-mcp", "args": ["--stdio"] // 如需通过 StdIO 连接 } // 也可使用 HTTP 传输模式,例如: // "kemdicode-mcp-http": { "command": "kemdicode-mcp", "args": ["--port","3100"] } } } 说明:
- server name:示例中为 kemdicode-mcp,标识一个 MCP 服务器实例。
- command:运行 MCP 服务器的可执行命令,示例为 "kemdicode-mcp"。
- args:传给 MCP 服务器的命令行参数,如 ["--stdio"] 表示使用 StdIO 传输、也可使用 ["--port","3100"] 指定 HTTP 服务端口。
- 注解:MCP 客户端并不需要本地包含服务器实现的代码,只需要按照上述结构知道要连接的服务器名称与启动参数即可。实际部署时,请按你的环境配置对应的服务器启动方式。
-
基本使用方法
- 启动方式
- 通过 StdIO 传输启动:以子进程方式将 MCP 服务器接入客户端(常用于 IDE/编辑器插件集成)。
- 通过 HTTP 传输启动:暴露一个 HTTP 服务端口,客户端通过网络请求进行交互。
- 客户端接入要点
- 客户端需要知道 MCP 服务器的名称、启动命令及参数。
- MCP 服务器提供资源、工具、Prompt 等管理能力,客户端可通过 MCP 协议调用资源读取、工具执行、Prompt 获取等操作。
- 基本交互流程
- 客户端向 MCP 服务器发起 JSON-RPC 请求(如读取资源、执行工具、获取 Prompt),服务器返回标准的 JSON-RPC 响应。
- 如需持续会话/上下文,客户端可在请求中携带会话信息,MCP 服务器负责会话管理与上下文传递。
- 启动方式
-
温馨提示
- 如需持久化上下文,请确保 Redis 服务可用,未启用 Redis 时部分功能将降级。
- MCP 客户端与服务器之间的版本需兼容,推荐使用同一 MCP 规范版本的实现。