关于 MCP Server
这是一个基于 Node.js 和 TypeScript 的文档存档 MCP 服务,面向需要让 LLM 检索和问答文档的应用。它提供跨文档搜索、元数据资源和文档问答提示词,并支持 stdio 与 SSE。
主要功能
- 01跨文档搜索
- 02文档元数据列表与查询
- 03文档问答提示词
- 04stdio 和 SSE 传输
- 05环境变量配置与日志
适用场景
- 01从多个文档中查找相关内容
- 02查看文档档案及其元数据
- 03基于选定文档回答问题
MCP 相关
向 MCP 客户端提供文档检索工具、文档元数据资源和问答提示词。支持 stdio 与 SSE 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务
使用 Node.js 和 TypeScript 实现的 Model Context Protocol(MCP)服务。
什么是 MCP?
Model Context Protocol(MCP)是一种开放协议,用于规范应用向大模型(大型语言模型)提供上下文的方式。它支持 AI 应用与各种数据源和工具之间无缝通信。
功能
此服务实现提供:
- 跨文档搜索工具,用于检索相关信息
- 文档管理功能,提供文档列表和元数据资源
- 文档问答提示词模板,用于回答有关文档的问题
- 支持 stdio 和 SSE 两种传输方式
- 完善的日志记录系统
- 通过环境变量进行配置
- 就绪状态管理,确保所有服务初始化完成后再接受请求
- 服务器终止时的优雅关闭处理
系统架构
快速开始
前提条件
- Node.js 22+ 和 npm
安装
- 克隆代码库
- 安装依赖:
npm install
- 构建项目:
npm run build
运行服务
使用 stdio(用于与 MCP 客户端集成)
npm start
使用 SSE(用于 Web 场景)
npm start -- --transport=sse
服务默认在端口 3000 上启动。你可以设置 PORT 环境变量或使用端口参数来更改端口:
npm start -- --transport=sse --port=8080
或者:
PORT=8080 npm start -- --transport=sse
API
工具
-
getDocumentsMetadata:获取可用文档的元数据- 参数:
query(string):用户的原始查询或问题
- 参数:
-
checkQueryRelevance:评估相关文档,并返回用于意图分析的指令- 参数:
query(string):用户的原始查询或问题relevantDocIds(string):以逗号分隔的文档 ID 列表,这些文档与查询相关
- 参数:
-
analyzeIntent:接收意图分类,并返回用于检索上下文的指令- 参数:
query(string):用户的原始查询或问题intentType(string):查询的分类意图类型
- 参数:
-
retrieveContext:从选定文档中检索相关段落- 参数:
query(string):用户的原始查询或问题intentType(string):查询的分类意图类型relevantDocIds(string):以逗号分隔的文档 ID 列表,用于检索上下文
- 参数:
资源
documents://metadata:返回所有文档元数据的列表documents://metadata/{id}:按 ID 返回特定文档的元数据
提示词
document_qa:关于文档内容的问答- 参数:
question(string):用户关于这些文档的问题relevantDocIds(string):以逗号分隔的相关文档 ID 列表(来自档案)intentType(string):问题的意图(从下拉列表中选择)
- 参数:
配置
可通过环境变量配置服务:
SERVER_NAME:服务名称(默认值:"document-archive-mcp-server")SERVER_VERSION:服务版本(默认值:"1.0.0")ENABLE_RESOURCES:启用/禁用资源(默认值:true)ENABLE_TOOLS:启用/禁用工具(默认值:true)ENABLE_PROMPTS:启用/禁用提示词(默认值:true)PORT:SSE 传输的默认端口(默认值:3000)TRANSPORT_TYPE:默认传输类型(默认值:"stdio")LOG_LEVEL:日志级别(默认值:"info")LOG_DIR:日志文件目录(默认值:"logs")LOG_FILE:主日志文件名(默认值:"combined.log")ERROR_LOG_FILE:错误日志文件名(默认值:"error.log")ENABLE_FILE_LOGGING:启用文件日志记录(默认值:生产环境为 true,开发环境为 false)DOCUMENT_DIRECTORIES:以逗号分隔的文档监视目录列表DOCUMENT_CHUNK_SIZE:用于处理的文档分块大小(默认值:1000)DOCUMENT_CHUNK_OVERLAP:文档分块的重叠大小(默认值:200)EMBEDDING_MODEL:要使用的嵌入模型(默认值:'sentence-transformers/all-MiniLM-L6-v2')LANCEDB_PATH:LanceDB 数据库路径(默认值:'./vectordb')
开发
要在开发模式下运行服务并启用自动重新加载:
npm run dev
要在开发模式下使用 SSE 传输:
npm run dev -- --transport=sse
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。