Document Organizer MCP Server
使用说明(Markdown 要点)
-
项目简介
- 该仓库实现了一个 MCP 服务器,围绕文档集合的上下文服务构建,整合了文档提取、向量检索、BM25 全文检索、嵌入/OCR/LLM 增强等组件,面向与 LLM 客户端(如 Claude Code、OpenClaw、Windsurf 等)无缝对接的后端服务。
-
主要功能点(简明清晰版)
- MCP 服务器实现:提供 17 种工具(如 file_search、file_get_chunk、file_list_documents、file_status、file_facets、file_folders、file_taxonomy_* 等),支持以标准的 MCP 请求/响应格式对外提供服务。
- 数据存储与检索:使用 LanceDB 封装的向量检索、全文检索(BM25/FTS)、元数据过滤等能力,支持动态元数据字段和自定义前提信息。
- 文档提取与处理:从 Markdown、PDF、图片中提取文本,支持前端元数据(frontmatter)解析,PDF/图像采用 OCR/A OCR 方案。
- LLM 增强(可选):通过配置的 LLM 提供者进行文档元数据(摘要、主题、实体等)的 enrichment,结果可用于查询和筛选。
- 触发与部署模式:支持以 STDIO(stdio)模式与 MCP 客户端交互,也可通过 HTTP/REST 方式对外暴露接口并与 MCP 客户端协同工作;VPS 部署还提供独立的 server.py 入口,便于 HTTP 服务部署。
- 支持的工作流:索引更新、增量同步、FTS 索引重建、错误/健康诊断输出,兼容测试用例与健康检查。
-
安装与运行步骤
- 克隆仓库并进入目录
- 创建虚拟环境并激活
- 安装依赖:pip install -r requirements.txt
- 配置环境变量与配置文件:
- 复制 config.yaml.example/config.local.yaml.example 按需修改文档根目录、索引根目录、API 密钥等设置
- 运行 MCP 服务器(两种模式可选):
- STDIO 模式(与 MCP 客户端通过标准输入输出交互):
- python mcp_server.py
- HTTP 模式(通过 VPS 部署提供 REST/HTTP 访问):
- 直接使用服务入口 server.py,按 config.yaml 配置端口等,或在云端容器中以 renders 配置部署
- STDIO 模式(与 MCP 客户端通过标准输入输出交互):
- 客户端接入(MCP 配置示例,请放在客户端的 MCP 配置中):
- 服务器名称
- 启动命令(command)与参数(args),以及工作目录(cwd),确保指向运行 MCP 服务器的脚本
- 客户端示例配置(JSON)请放在客户端配置中,不放在服务器端代码中
- 需要的外部依赖与密钥(如 Embeddings、OCR、LLM 提供商等)请按 config.yaml/.env 配置,确保密钥可用
-
服务器配置(给 MCP 客户端的 JSON 配置示例) 说明:该配置用于 MCP 客户端通过系统命令启动服务器并连接。以下字段解释见备注。 { "server_name": "doc-organizer", "command": "/path/to/venv/bin/python", "args": ["mcp_server.py"], "cwd": "/path/to/dans_lazy_file_dump", "transport": "stdio" // 该字段用于区分 stdio 模式,若使用 HTTP,请在客户端配置中指向 HTTP 服务地址 } 注释:
- server_name:在 MCP 客户端侧用于标识该服务器的唯一名称,例如 “doc-organizer”。
- command:用于启动服务器的 Python 解释器路径,建议使用运行该仓库的虚拟环境中的 Python。
- args:运行的主脚本名称,此处为 mcp_server.py,表示通过该脚本启动 MCP 服务。
- cwd:服务器脚本所在的工作目录,通常设置为仓库根目录。
- transport:客户端与 MCP 服务的传输方式,stdio 表示标准输入/输出模式;若使用 HTTP 远程访问,请使用服务器暴露的 HTTP 接口(通过 server.py 启动的 HTTP 服务)。
-
基本使用方法
- 启动 MCP 服务器后,客户端即可通过 MCP RPC 调用所暴露的工具(如 file_search、file_get_chunk、file_status 等),获得 JSON-RPC 风格的响应。
- 如需启用 HTTP 服务,在部署时使用 server.py 提供的 HTTP 入口,以便远程客户端访问。
- 配置中的密钥、 embedders、OCR、LLM 提供商(OpenRouter、Baseten、Ollama、Gemini 等)要在 config.yaml 和相关环境变量中正确配置,确保能力对外可用。
- MCP 工具支持文本检索、向量检索、分段检索、分面查询、文档前处理与 enrichment 结果的返回,便于 LLM 客户端进行上下文拼接与对话管理。
-
需要的关键词
- 向量检索、BM25、LanceDB、NLP 增强、文档提取
-
分类
- 6(AI 与计算)