Skip to content

Claude Code

Register paperless-mcp with claude mcp add. Pick the auth method per connection.

OAuth

Register the URL with no header. The client opens the login page on first use:

claude mcp add paperless --scope user --transport http \
  https://paperless-mcp.example.com/mcp

In Claude Code, run /mcp and pick the server to authenticate. Enter your Paperless username and password (and the two-factor code, if your account has one).

API token

The API token is the credential: pass it in the Authorization header. Point the URL at wherever paperless-mcp is reachable.

claude mcp add paperless --scope user --transport http \
  https://paperless-mcp.example.com/mcp \
  --header "Authorization: YOUR_PAPERLESS_API_TOKEN"
claude mcp add paperless --scope user --transport http \
  http://192.168.1.50:8081/mcp \
  --header "Authorization: YOUR_PAPERLESS_API_TOKEN"

Commit a project-level config instead, filling in your host and token (a copy is in the repo as .mcp.json):

{
  "mcpServers": {
    "paperless": {
      "type": "http",
      "url": "https://paperless-mcp.example.com/mcp",
      "headers": {
        "Authorization": "YOUR_PAPERLESS_API_TOKEN"
      }
    }
  }
}

The header may hold the bare token, Bearer YOUR_TOKEN, or Paperless's own form Token YOUR_TOKEN; all three are forwarded to Paperless as Token YOUR_TOKEN.

User or project scope

--scope user registers the server across all your projects, which is usually what you want for a personal archive. Drop it to fall back to the default local scope, available only to you in the current project. This works the same with either auth method.