项目简介

MCP文档智能服务器是一个强大的后端服务,旨在为LLM(大型语言模型)客户端提供结构化的文档上下文和智能功能。它允许您存储、管理和搜索本地文档,利用语义嵌入进行高效检索,并可选地集成Google Gemini AI以实现更深层次的文档理解和高级分析。

主要功能点

  • 智能文档分析:通过Google Gemini AI实现对文档内容的上下文理解、关系识别和概念分析。
  • 语义搜索与检索:支持传统的基于嵌入的语义搜索和内存中的关键词索引,能够从文档中检索最相关的分块内容。
  • 文档管理:提供完整的文档生命周期管理,包括添加、列出、获取、更新和删除文档,以及自动将上传文件夹中的文件转换为可搜索的文档。
  • 性能优化:通过O(1)文档查找、LRU嵌入缓存、并行分块处理和流式文件读取,确保大型文档处理和查询的高效性。
  • 本地存储:所有数据都安全地存储在本地文件系统,无需外部数据库,提供隐私和控制。
  • 上下文窗口检索:在搜索结果周围获取额外的文档分块,为LLM提供更丰富的上下文信息。

安装步骤

本服务器作为NPM包发布,可以直接通过'npx'运行,无需额外安装。 如果您需要进行开发或自定义,可以通过以下步骤克隆仓库并构建:

  1. 克隆仓库
    git clone https://github.com/andrea9293/mcp-documentation-server.git
    cd mcp-documentation-server
  2. 安装依赖
    npm install
  3. 构建项目
    npm run build

完成后即可使用NPM命令启动服务器。

服务器配置

MCP服务器通常由MCP客户端(如Claude Desktop等)配置和启动。以下是MCP客户端配置此服务器的示例信息(JSON格式),您只需在客户端界面或配置文件中填写相应字段即可。

{
  "mcpServers": {
    "documentation": {
      "command": "npx",
      "args": [
        "-y",
        "@andrea9293/mcp-documentation-server"
      ],
      "env": {
            "GEMINI_API_KEY": "your-google-gemini-api-key-here",  // (可选) 启用AI搜索,请替换为您的Google Gemini API Key
            "MCP_EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2",     // (可选) 配置嵌入模型,默认使用Xenova/all-MiniLM-L6-v2
            "MCP_INDEXING_ENABLED": "true",                      // (可选) 启用文档索引,默认启用
            "MCP_CACHE_SIZE": "1000",                            // (可选) 配置LRU嵌入缓存大小,默认1000
            "MCP_PARALLEL_ENABLED": "true",                      // (可选) 启用并行处理,默认启用
            "MCP_STREAMING_ENABLED": "true"                      // (可选) 启用文件流式读取,默认启用
      }
    }
  }
}

配置说明

  • 'command': 'npx' (用于执行npm包)
  • 'args': '["-y", "@andrea9293/mcp-documentation-server"]' (执行本MCP服务器的命令)
  • 'env': 环境变量配置
    • 'GEMINI_API_KEY': 如果您希望使用基于Google Gemini AI的智能搜索功能,请在此处填写您的Google Gemini API Key。没有此键,AI搜索功能将无法使用。您可以从Google AI Studio获取。
    • 'MCP_EMBEDDING_MODEL': 配置用于生成文档嵌入的模型。默认是'Xenova/all-MiniLM-L6-v2',推荐使用'Xenova/paraphrase-multilingual-mpnet-base-v2'以获得更好的多语言质量。注意:更改模型需要重新添加所有文档,因为嵌入不兼容。
    • 其他'MCP_*'环境变量用于微调服务器的性能和行为,如索引、缓存、并行处理和流式读取,可根据需求进行调整。

基本使用方法

一旦MCP客户端配置并启动了MCP文档智能服务器,您就可以通过客户端调用服务器暴露的工具。

1. 添加文档 使用'add_document'工具向知识库添加新文档。

*   **参数**: 'title' (文档标题), 'content' (文档内容), 'metadata' (可选,文档元数据)
*   **示例**:
    'add_document({"title": "Python基础", "content": "Python是一种高级编程语言...", "metadata": {"category": "编程", "tags": ["python", "教程"]}})'

2. 自动处理上传文件 您可以将'.txt', '.md', 或 '.pdf' 文件直接放入服务器的上传文件夹,然后调用'process_uploads'工具进行批量处理。

*   **工具**: 'get_uploads_path' (获取上传文件夹路径)
*   **工具**: 'list_uploads_files' (列出上传文件夹中的文件)
*   **工具**: 'process_uploads' (处理上传文件,自动创建文档和嵌入)
*   **步骤**:
    1.  调用 'get_uploads_path()' 获取上传文件夹的绝对路径。
    2.  将您的'.txt', '.md', 或 '.pdf' 文件复制到该路径。
    3.  调用 'process_uploads()' 来处理这些文件。服务器会将它们转换为文档,生成嵌入,并复制到数据目录中。

3. 搜索文档 使用'search_documents'工具进行语义搜索,或使用'search_documents_with_ai'工具进行高级AI搜索。

*   **工具**: 'search_documents' (语义搜索)
*   **参数**: 'document_id' (文档ID), 'query' (搜索查询), 'limit' (可选,返回结果数量,默认10)
*   **示例**:
    'search_documents({"document_id": "doc-123", "query": "变量赋值的概念", "limit": 5})'

*   **工具**: 'search_documents_with_ai' (AI驱动的高级搜索,需要'GEMINI_API_KEY')
*   **参数**: 'document_id' (文档ID), 'query' (AI分析查询)
*   **示例**:
    'search_documents_with_ai({"document_id": "doc-123", "query": "解释主要概念及其相互关系"})'

4. 获取上下文窗口 在语义搜索后,可以使用'get_context_window'工具获取特定分块前后的内容,以提供更丰富的LLM上下文。

*   **工具**: 'get_context_window'
*   **参数**: 'document_id' (文档ID), 'chunk_index' (中心分块索引), 'before' (前置分块数量,默认1), 'after' (后置分块数量,默认1)
*   **示例**:
    'get_context_window({"document_id": "doc-123", "chunk_index": 5, "before": 2, "after": 2})'

5. 列出和获取文档

  • 工具: 'list_documents' (列出所有文档的元数据和预览)
  • 工具: 'get_document' (根据ID获取完整文档内容)

6. 删除文档

  • 工具: 'delete_document' (根据ID删除文档及其相关文件)

通过这些工具,LLM客户端可以与服务器进行高效交互,实现强大的文档智能应用。

信息

分类

AI与计算