mcpField
M
MCP Server

MCP Server

本地服务
github.com/semo94搜索与检索079 周前更新

关于 MCP Server

这是一个基于 Node.js 和 TypeScript 的文档存档 MCP 服务,面向需要让 LLM 检索和问答文档的应用。它提供跨文档搜索、元数据资源和文档问答提示词,并支持 stdio 与 SSE。

主要功能

  1. 01跨文档搜索
  2. 02文档元数据列表与查询
  3. 03文档问答提示词
  4. 04stdio 和 SSE 传输
  5. 05环境变量配置与日志

适用场景

  1. 01从多个文档中查找相关内容
  2. 02查看文档档案及其元数据
  3. 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
安装
  1. 克隆代码库
  2. 安装依赖:
npm install
  1. 构建项目:
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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。