Raven Docs MCP Server
使用说明(简明概览)
-
项目简介
- Raven Docs 的 MCP 服务器端实现,暴露一组 MCP 标准 API,允许 LLM 客户端读取资源、注册并执行工具、获取 Prompt 模板等能力;并通过 WebSocket 提供实时事件推送,方便监控与交互。
- 服务基于 NestJS 架构,提供类似 /api/mcp-standard 的 REST 端点,以及 /mcp 的 WebSocket 通道,支持会话管理、能力声明以及多传输协议的扩展接口。
-
主要功能点
- 资源、工具、Prompts 的托管与访问接口,便于将知识库、外部工具及对话提示模板暴露给 LLM 客户端。
- 工具注册与调用能力,LLM 可以通过 MCP 客户端向服务器请求执行外部功能。
- Prompt 模板定义与渲染,用于渲染并渲染后投送给 LLM 的对话上下文。
- 会话与权限管理,服务器端维护会话状态、认证与能力声明。
- 传输协议支持:HTTP REST(MCP 标准端点)和 WebSocket 实时事件(/mcp)。同时提供测试脚本用于 WebSocket 客户端演练。
- 与 Raven Docs 的其它模块整合,具备知识库、内存、任务系统等上下文资源。
-
安装步骤
-
- 准备环境
- 需要 Node.js、PostgreSQL、Redis(若启用缓存/会话相关功能)。仓库中使用 PostgreSQL 做数据库持久化。
-
- 安装依赖并构建
- 安装依赖并准备好数据库连接字符串(DATABASE_URL)。
-
- 运行服务
- 启动后默认监听端口通常为 3000,暴露 API 路径如 http(s)://<你的域名>/api/mcp-standard/...,以及 WebSocket 路径 /mcp。
-
- 迁移与初始化
- 按仓库提供的迁移与种子脚本执行数据库结构初始化与初始数据加载(seed/migrations 文件夹中的脚本)。
-
- 验证
- 使用测试用 MCP 客户端或仓库提供的演示脚本,访问 /api/mcp-standard/initialize、/list_tools、/list_resources、/call_tool 等端点,或通过 /mcp WebSocket 进行事件订阅测试。
-
-
服务器配置(MCP 客户端用的最小配置信息)
- 说明:MCP 客户端需要一个配置来连接 MCP 服务器。以下为示例 JSON,展示服务器名称、启动命令及参数。实际部署时,请以你的运行环境为准(如直接在云服务器、容器或本地开发环境中运行)。
- 配置示例(JSON,仅作示意,具体命令需结合你的部署方式): { "serverName": "raven-docs", "command": "node", "args": ["dist/main.js"] }
- 注释(要点)
- serverName:服务器的唯一标识名称,便于在多服务器环境中区分。
- command / args:启动 MCP 服务器的命令及参数。若使用容器化部署,请用相应的容器入口命令替代。
- 实际连接时,MCP 客户端会使用服务器暴露的 MCP 接口(如 /api/mcp-standard 和 /mcp)进行初始化、获取工具、调用工具等操作。
-
基本使用方法(易上手流程)
-
- 启动服务器并确保数据库连接正常。
-
- 使用 MCP 客户端配置,指向 Raven Docs 的 MCP 端点(例如 /api/mcp-standard)。
-
- 通过 MCP 客户端执行初始化、拉取工具列表、查询资源,以及调用工具执行外部任务。
-
- 如需实时监控,可以通过仓库提供的 WebSocket 测试脚本连接 /mcp,订阅页面事件并接收推送通知。
-
-
备注
- 仓库还提供了客户端示例脚本(如 MCP WebSocket 客户端脚本),用于演示如何通过 WebSocket 接收 MCP 事件;也包含了大量与资源/工具/内存等相关的后端实现。
- 由于 MCP 的核心是 JSON-RPC 风格的请求/响应和事件通知,服务器端资产化的接口都朝这个方向设计,配合前端/代理和 LLM 客户端进行标准化交互。