knowledge-server
使用说明(简要/可直接执行的步骤):
-
项目简介 knowledge-server 是一个完整的 MCP 服务器实现,能够托管知识资源、注册并执行工具、定义和渲染 Prompt 模板,并通过 MCP 端点与客户端进行通信,支持本地 STDIO 代理与 HTTP 端点两种传输方式,便于本地开发和托管部署。
-
主要功能点
- MCP 服务:提供 activate 工具,允许 LLM 客户端主动检索和召回相关知识。
- 资源与工具管理:统一管理知识条目与相关工具入口,便于在对话中注入背景知识和外部能力。
- Prompt 与模板渲染:定义并渲染提示、结果注解,用于后续 LLM 交互。
- HTTP API + MCP 端点:提供标准 HTTP 接口用于知识激活、状态、条目管理等;同时暴露 MCP 端点供本地插件和代理使用。
- 插件与钩子:支持 OpenCode/Claude Code 等工具的知识注入和触发点,提升对话上下文的丰富性与可控性。
- 安全与治理:包含管理员令牌、会话管理、数据归档/清理、以及对 /status /config 等信息的访问控制。
-
安装步骤
- 下载并安装知识服务器二进制,或从源码运行 Bun 进行开发。
- 配置环境变量(见下方“服务器配置”)以启用知識源、LLM、嵌入模型等。
- 启动服务器后,客户端可通过以下两种方式连接 MCP:
- stdio 代理模式(本地): knowledge-server mcp,内部通过 HTTP_GET /activate 转发请求。
- streamable-http 模式(本地/托管): 通过 http://127.0.0.1:3179/mcp 进行连接,若启用管理员令牌则需要 Bearer Token 认证。
- 若需要集成到 OpenCode、Claude Code、Cursor、Codex、VSCode 等工具,运行相应的 setup-tool 以在各工具中注册 MCP 服务。
-
服务器配置 下面给出 MCP 客户端可使用的配置示例(JSON,描述服务器信息与启动参数):
{ "serverName": "knowledge-server", "command": "knowledge-server", "args": ["mcp"], "endpoint": "http://127.0.0.1:3179/mcp", "transport": "streamable-http", "adminTokenRequired": false, "environment": { "KNOWLEDGE_HOST": "127.0.0.1", "KNOWLEDGE_PORT": "3179" } // 说明:以本地运行的二进制为准;source 安装可替换为 ["bun", "run", "<项目路径>/src/index.ts", "mcp"] }
-
基本使用方法
- 启动服务后,使用 MCP 客户端连接 knowledge-server 的 MCP 端点进行请求。
- 通过 activate 工具进行上下文召回,向 LLM 提供提示并获取相应的知识条目集合。
- 如需在本地工具链中注入背景知识,请将 OpenCode/Claude Code 等工具的插件或钩子配置指向 knowledge-server 的 MCP 端点,以实现背景上下文注入。
- 维护与安全:若在托管环境中部署,请启用 KNOWLEDGE_ADMIN_TOKEN,确保 /mcp 端点仅对授权客户端开放;本地开发可使用随机令牌以提高安全性。
-
备注
- MCP 端点支持两种连接方式(stdio 代理与 streamable-http),可根据部署环境灵活选型。
- 该实现包含完整的服务器端逻辑、对话记忆管理、知识抽取/对比、以及冲突/合并等复杂场景的处理逻辑,属于可运行的 MCP 服务器实现。