Cairn MCP 服务端
使用说明内容(Markdown格式)
- 项目简介
- Cairn MCP 服务器实现了基于 Model Context Protocol(MCP)的后端框架,核心职责是以标准化的 JSON-RPC 风格向大语言模型客户端提供上下文资源、可执行工具、以及可定制的提示模板渲染能力,便于构建“记忆驱动”的 LLM 应用。
- 主要功能点
- MCP 服务层:实现 MCP 协议的服务器端入口,定义一组 MCP 工具(store、search、recall、modify、rules、trail、messages、synthesize、consolidate 等)对外暴露
- 资源与存储整合:与 PostgreSQL + pgvector、Neo4j 等后端协同,托管 memories、cairns、projects 等资源,以及知识图谱
- Tool 调用与扩展:通过 MCP 工具注册工具,LLM 可调用外部功能,例如存储、搜索、任务、规则、图谱相关操作
- Prompt 模板渲染:提供用于 enrichment、cluster、synthesis、event digest 等的提示模板
- 多传输协议支持:支持 STDIO、HTTP(REST 接口用于管理、状态等),以及基于 MCP 的流式交互,若需要可通过 SSE/WebSocket 提供交互能力
- 会话与状态管理:包含会话生命周期、系统健康检查、任务/工作流等后台组件
- 安全部署与可扩展性:内置接入控制、配置覆盖、权限扩展点,便于生产化部署与横向扩展
- 安装步骤
- 快速启动(推荐本地开发/测试环境)
- 使用 Docker Compose 直接启动:参考仓库中的 docker-compose.yml,运行 docker compose up -d 即可同时启动 MCP 服务、REST API、数据库与图谱后端
- 本地开发环境启动
- 安装依赖(如 Python 版本、所需依赖库)
- 配置环境变量,如 CAIRN_TRANSPORT、CAIRN_DB_HOST、CAIRN_LLM_BACKEND、CAIRN_LLM_API_KEY 等
- 启动服务器:使用 Python 启动入口 python -m cairn.server(在 http 传输时会挂载 REST API + MCP 服务)
- 快速启动(推荐本地开发/测试环境)
- 服务器配置(客户端需要的最小信息)
- MCP 客户端需要的 JSON 配置,包含服务器名称、启动命令以及参数等,用于连接 MCP 服务器
- 配置示例(注释性说明,非代码块形式呈现,便于理解)
- server_name: cairn
- command: "python"
- args: ["-m", "cairn.server"]
- transport: "http"(可选值: "stdio"、"http";默认 http)
- url: "http://localhost:8000/mcp"(MCP 服务暴露路径,HTTP 传输时可使用该路径)
- description: "Cairn MCP 服务端,HTTP 传输,提供存储、搜索、工具调用、以及提示模板渲染等能力"
- 注意事项
- MCP 客户端仅需上述 command/args,及 MCP 服务的网络地址/端点即可建立连接
- 若使用 stdio 传输,需要将容器/进程中的标准输入输出通过管道连接,HTTP 传输更易于多客户端并发
- 基本使用方法
- 启动后,客户端通过 MCP 协议向 Cairn 发送请求(如读取资源、执行工具、获取 Prompt 等),服务器返回 JSON-RPC 异步响应或通知
- 可通过 REST API 进行系统状态与设置查询、事件 ingestion、以及管理后台操作
- 将 MCP 工具与 LLM/代理工作流结合使用,实现记忆、推理、推断和对话管理