Candlekeep MCP 服务端
使用说明内容(Markdown格式)
项目简介
- Candlekeep MCP 服务端是一个面向 LLM 客户端的后端服务,遵循 Model Context Protocol (MCP) 规范,实现资源托管、工具注册与执行、以及 Prompt 模板的渲染,提供标准化的上下文服务以支持复杂的问答/推理场景。
主要功能点
- MCP 协议核心:实现对 MCP 请求和响应的处理,提供 JSON-RPC 风格的通信与通知机制。
- 资源与工具管理:提供对“资源/文档”和“工具/插件”的托管、注册、调用及权限控制能力,便于 LLM 访问数据和外部功能。
- Prompt 模板渲染:定义与渲染可定制的提示模板,支持不同的交互模式。
- 会话与能力声明:服务端维护会话状态、能力声明,以及多用户/多代理的并发访问支持。
- 多传输协议支持:内置对 stdio 和 HTTP 等传输的原生支持,便于不同部署场景的集成。
- 身份验证与安全:支持 Bearer Token 认证(在 HTTP 模式下启用),并提供写操作的并发控制与限流机制。
- 服务器扩展性:可配置的插件化工具、并发策略、以及对不同 LLM 提供商和向量数据库的接入能力。
- 应用场景丰富:可作为 LLM 辅助的知识库、工具执行、以及基于模板的对话渲染等后端服务。
安装与运行
- 安装与运行的核心步骤包括:在 Python 3.10+ 环境中安装本仓库、配置环境变量、启动服务。核心命令示例见文档中的快速开始部分。
- 运行模式选择:
- HTTP 模式(推荐):启动后端提供对外 HTTP API 的 MCP 服务,客户端通过 URL 连接并发送请求。
- stdio 模式:客户端进程直接与 MCP 服务通过标准输入输出通信,便于单进程调试或嵌入式执行。
服务器配置(MCP 客户端配置示例) { "serverName": "candlekeep", "command": "/path/to/venv/bin/candlekeep", "args": [], "env": { "CANDLEKEEP_TRANSPORT": "http", "CANDLEKEEP_HTTP_HOST": "127.0.0.1", "CANDLEKEEP_HTTP_PORT": "8111", "CANDLEKEEP_MCP_TOKEN": "" // 如需要鉴权,请设置一个令牌 }, "description": "Candlekeep MCP 服务端的 HTTP 模式启动配置" }
注意:MCP 客户端需要的配置信息以 JSON 格式提供,至少包含 serverName、command、args,以及可选的 env 字段,用于描述如何启动 MCP 服务端进程并与之建立连接(如传输模式、端口、鉴权令牌等)。以上示例基于仓库中的实现与文档说明整理,实际使用时请按环境变量和部署方式调整。
基本使用方法
- 启动方式一(推荐,HTTP 模式):
- 设置传输为 HTTP,并指定端口,通过 candlekeep 二进制启动服务,客户端即可通过 HTTP URL 连接 MCP 服务。
- 启动方式二(stdio 模式):
- 直接以 candlekeep 命令启动,客户端通过标准输入输出与 MCP 服务通信,适合简化的多进程集成场景。
- 客户端接入要点:
- 客户端应指向 MCP 服务器提供的地址(如 http://127.0.0.1:8111/mcp),通过 JSON-RPC 风格的请求访问 MCP 的能力(如读取资源、执行工具、获取 Prompt)。
- 服务端提供的工具/资源接口需按需授权与注册,确保访问控制与日志审计。
备注与注意
- 本实现包含对身份鉴权、写操作序列化、以及多种路由策略的支持,适合在对性能、并发和安全性要求较高的场景中使用。
- 如需在生产环境部署,请结合 TLS/反向代理等安全措施,以及对日志与监控的完善配置。
关键词 LLM上下文服务, 向量检索, JSON-RPC 交互, 资源与工具管理, 多传输协议
分类ID 6