Paperless-NGX over MCP: search, read, upload and tag documents; manage correspondents and types.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add paperless-pvliesdonk --env PAPERLESS_MCP_API_TOKEN='<PAPERLESS_MCP_API_TOKEN>' -- uvx pvliesdonk-paperless-mcp~/.codex/config.toml
[mcp_servers.paperless-pvliesdonk]
command = "uvx"
args = ["pvliesdonk-paperless-mcp"]
env = { PAPERLESS_MCP_API_TOKEN = "<PAPERLESS_MCP_API_TOKEN>" }
# codex mcp add paperless-pvliesdonk --env PAPERLESS_MCP_API_TOKEN='<PAPERLESS_MCP_API_TOKEN>' -- uvx pvliesdonk-paperless-mcp~/.cursor/mcp.json
{
"mcpServers": {
"paperless-pvliesdonk": {
"command": "uvx",
"args": [
"pvliesdonk-paperless-mcp"
],
"env": {
"PAPERLESS_MCP_API_TOKEN": "<PAPERLESS_MCP_API_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"paperless-pvliesdonk": {
"type": "stdio",
"command": "uvx",
"args": [
"pvliesdonk-paperless-mcp"
],
"env": {
"PAPERLESS_MCP_API_TOKEN": "<PAPERLESS_MCP_API_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"paperless-pvliesdonk": {
"command": "uvx",
"args": [
"pvliesdonk-paperless-mcp"
],
"env": {
"PAPERLESS_MCP_API_TOKEN": "<PAPERLESS_MCP_API_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"paperless-pvliesdonk": {
"command": "uvx",
"args": [
"pvliesdonk-paperless-mcp"
],
"env": {
"PAPERLESS_MCP_API_TOKEN": "<PAPERLESS_MCP_API_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"paperless-pvliesdonk": {
"command": "uvx",
"args": [
"pvliesdonk-paperless-mcp"
],
"env": {
"PAPERLESS_MCP_API_TOKEN": "<PAPERLESS_MCP_API_TOKEN>"
}
}
}
}Environment variables
PAPERLESS_MCP_API_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.