paperless-agent-toolkit
MCP server for Paperless-ngx document management, enabling search, OCR content access, metadata updates, tag/correspondent/type management, and duplicate detection via natural language.
README
Paperless Agent Toolkit
MCP server for Paperless-ngx document management, plus reusable
agent skills built on top of it (e.g. auto-filing documents tagged TODO).
This repo has two parts:
src/paperless_mcp/— an MCP server exposing Paperless-ngx as tools: list/search documents, read full OCR content, update metadata, manage tags/correspondents/ document types, find duplicates. Works with any MCP-compatible client, not just Claude..claude/skills/— Claude Code skills that use those tools to carry out a workflow end-to-end (currently:paperless-todo-cleanup, which files everyTODO-tagged document — title, correspondent, document type, tags — then clears the tag).
Setup
Requires Python >=3.10.
pip install -e .
Set two environment variables (Paperless UI → Settings → API Tokens for the token):
export PAPERLESS_URL="http://<paperless-host>:8000"
export PAPERLESS_TOKEN="<your-api-token>"
Run the server directly (stdio transport):
python -m paperless_mcp.server
Registering with an MCP client
For Claude Code, add it as a project-scoped MCP server (values from a .env or your shell, not
hardcoded) — e.g. via claude mcp add, or directly in .mcp.json:
{
"mcpServers": {
"paperless-ngx": {
"type": "stdio",
"command": "python",
"args": ["-m", "paperless_mcp.server"],
"env": {
"PAPERLESS_URL": "http://<paperless-host>:8000",
"PAPERLESS_TOKEN": "<your-api-token>"
}
}
}
}
PAPERLESS_TOKEN is a credential — keep it in a gitignored config (e.g. Claude Code's
.claude/settings.local.json or your own .env), never in a tracked file.
Tools
| Tool | Purpose |
|---|---|
list_documents |
Search/filter documents (tag, correspondent, type, full-text query, tag count); paginates internally |
get_document |
Full document detail, including OCR content and checksum |
update_document |
Set title/correspondent/document_type/tags/created/content; unknown names auto-create |
add_tags / remove_tags |
Adjust a document's tags without touching the rest |
delete_document |
Delete a document (requires confirm=True) |
find_duplicate_documents |
Group documents by identical file checksum |
list_tags / list_correspondents / list_document_types |
Enumerate existing values, for reuse before creating new ones |
create_tag / create_correspondent / create_document_type |
Create explicitly (usually unnecessary — update_document auto-creates) |
rename_tag / rename_correspondent / rename_document_type |
Rename by current name or id |
delete_tag / delete_correspondent / delete_document_type |
Delete by name or id (requires confirm=True) |
get_instance_url |
Return the configured Paperless base URL, e.g. for building web UI links |
Skills
paperless-todo-cleanup— processes everyTODO-tagged document: picks a descriptive title, sets correspondent/document type where determinable, applies 3–4 tags (reusing existing ones over creating new), then drops theTODOtag. Invoke with/paperless-todo-cleanupin Claude Code.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.