使用说明

项目简介

Paperless-MCP Server 是一个 MCP (Model Context Protocol) 服务器,它充当大型语言模型 (LLM) 客户端与 Paperless-ngx 文档管理系统之间的桥梁。通过 Paperless-MCP Server,LLM 客户端可以安全、标准地访问和操作 Paperless-ngx 中存储的文档资源,实现文档的检索、内容获取等功能,从而增强 LLM 应用的上下文感知能力。

主要功能点

  • 文档资源访问: 允许 LLM 客户端通过 MCP 协议检索和访问 Paperless-ngx 文档管理系统中存储的文档资源。
  • 文档搜索: 支持基于关键词在 Paperless-ngx 文档库中进行搜索,以便 LLM 客户端快速找到相关文档。
  • 元数据获取: 提供访问文档元数据(如标签、类型、对应方等)的能力,丰富 LLM 应用的上下文信息。
  • 标准 MCP 接口: 遵循 MCP 协议标准,易于集成到任何支持 MCP 协议的 LLM 客户端。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/PDangelmaier/Paperless-MCP-Server.git
    cd Paperless-MCP-Server
  2. 安装 Python 依赖: 确保你的系统已安装 Python 和 pip。建议使用 Python 3.8 或更高版本。

    pip install -r requirements.txt
  3. 配置环境变量: 设置 Paperless-ngx API 的访问信息,你需要配置以下环境变量:

    • 'PAPERLESS_BASE_URL': 你的 Paperless-ngx 实例的 API 基础 URL,例如 'http://your-paperless-ngx-instance/'。
    • 'PAPERLESS_TOKEN': 用于 API 访问的 Paperless-ngx API 令牌。
  4. 运行服务器:

    python server.py

    服务器默认会在 'stdio' 上监听 MCP 请求。你可以通过设置 'LOG_LEVEL' 环境变量来调整日志级别,例如 'export LOG_LEVEL=DEBUG'。

服务器配置 (MCP 客户端)

为了让 MCP 客户端连接到 Paperless-MCP 服务器,你需要提供以下配置信息。请将以下 JSON 配置添加到你的 MCP 客户端的服务器配置中:

{
  "serverName": "paperless-mcp",
  "command": "python",
  "args": ["server.py"],
  "transport": "stdio",
  "config": {
    "base_url": "<请替换为你的Paperless-ngx API URL>",
    "token": "<请替换为你的Paperless-ngx API 令牌>"
    <!-- 可选: -->
    <!-- "timeout": 30.0  --> <!-- 请求 Paperless-ngx API 的超时时间,单位秒,默认为 30 秒 -->
  }
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义,例如 "paperless-mcp"。
  • 'command': 启动服务器的命令,这里是 'python'。
  • 'args': 启动命令的参数,指定运行 'server.py' 文件。
  • 'transport': 指定 MCP 客户端与服务器通信的传输协议,这里使用 'stdio' (标准输入输出)。
  • 'config': 服务器的配置信息,是一个 JSON 对象,包含以下字段:
    • 'base_url': (必填) Paperless-ngx API 的基础 URL。请务必替换 '<请替换为你的Paperless-ngx API URL>' 为你实际的 Paperless-ngx API 地址
    • 'token': (必填) Paperless-ngx API 的访问令牌。请务必替换 '<请替换为你的Paperless-ngx API 令牌>' 为你实际的 API 令牌
    • 'timeout': (可选) 请求 Paperless-ngx API 的超时时间,单位为秒,默认为 30 秒。你可以根据网络状况调整此值。

注意: 请确保在 MCP 客户端配置中正确填写 'base_url' 和 'token',以便 Paperless-MCP 服务器能够成功连接到你的 Paperless-ngx 实例。

基本使用方法

配置完成后,MCP 客户端可以通过发送符合 MCP 协议的 JSON-RPC 请求与 Paperless-MCP 服务器交互。以下是一些基本的操作方法示例 (在 MCP 客户端中调用):

  • 列出文档: 调用 'list_documents' 方法,可以分页列出 Paperless-ngx 中的文档。

    {
      "jsonrpc": "2.0",
      "method": "list_documents",
      "params": {
        "page": 1,
        "page_size": 10
      },
      "id": "list-docs-1"
    }
  • 获取文档详情: 调用 'get_document' 方法,根据文档 ID 获取指定文档的详细信息。

    {
      "jsonrpc": "2.0",
      "method": "get_document",
      "params": {
        "id": "123"  // 替换为实际的文档 ID
      },
      "id": "get-doc-1"
    }
  • 搜索文档: 调用 'search_documents' 方法,根据关键词搜索文档。

    {
      "jsonrpc": "2.0",
      "method": "search_documents",
      "params": {
        "query": "invoice" // 替换为你的搜索关键词
      },
      "id": "search-docs-1"
    }
  • 列出对应方、标签、文档类型: 可以使用 'list_correspondents', 'list_tags', 'list_document_types' 方法分别获取 Paperless-ngx 中的对应方、标签和文档类型列表。

更多详细的 API 方法和参数,请参考 'server.py' 文件中 'PaperlessMCPService' 类的 'handle_request' 方法的实现。

信息

分类

数据库与文件