PaperOffice MCP Server

MCP serverSearch

Document AI and headless DMS: OCR, IDP, search, workflows, signatures. EU-hosted, OAuth 2.1.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use PaperOffice MCP Server

Install PaperOffice MCP Server

The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user paperoffice-mcp-server 'https://mcp.paperoffice.ai/dms'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.paperoffice.ai/dms

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=paperoffice-mcp-server&config=eyJ1cmwiOiJodHRwczovL21jcC5wYXBlcm9mZmljZS5haS9kbXMifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.paperoffice.ai/dms

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add paperoffice-mcp-server --url 'https://mcp.paperoffice.ai/dms'

    Run it once, then sign in with codex mcp login paperoffice-mcp-server if the server asks for an account.

From the project's README

As published by paperoffice-ai/paperoffice-mcp-setup in README.md.

Give your AI assistant access to your documents — in plain language, in under 60 seconds.

Search, read, OCR, classify, extract, sign and analyse documents straight from Claude, Claude Cowork, Cursor, ChatGPT, Grok or Windsurf. No SDK, no boilerplate, no local install.

Get started free → · Documentation · Live Postman


Why this matters

Your documents live in a DMS. Your AI assistant lives in your IDE or chat window. PaperOffice connects the two through the Model Context Protocol — so you can just ask, and the model does the work across every authorized workspace.

"List all unpaid invoices across my workspaces, with totals and overdue flags."
"OCR this scanned contract and extract the signing date and parties."
"Classify these 50 documents and file them by type."

No prompt engineering, no API code — the model picks the right PaperOffice tool and runs it.


See it in action

Claude Fable 5 + PaperOffice MCP DMS — agentic document work. Watch the full guide →

Four real workflows with Claude — under 30 seconds each. Click a card for the deep-dive with prompts and tool lists:

Use caseWatch & read
📊Month-end invoices — open items across every workspace, with totals and overdue flags
📥Overnight inbox — capture, classify, flag duplicates and expiring contracts before you wake up
📱Mobile contract lookup — signed date, terms, page reference from your phone in seconds
📈Spend dashboard — from 300 invoices to a board-ready dashboard in one prompt

60-second setup

1 · Auth

You need a PaperOffice account — the free plan is enough to try everything here. No account yet? Create one at app.paperoffice.ai/en/register/ (no credit card).

Claude, ChatGPT and Grok start with OAuth 2.1: the client opens the PaperOffice sign-in, you approve, no token in any file. For Cursor, DMS, or as an alternative: sign in at app.paperoffice.ai, open Account → API and create a User token (po_ut_) or a Group token (po_gt_, limited to the workspaces of one group). po_sk_ and po_pk_ are blocked for MCP.

Questions or something not working: Help & FAQ · Support · Issues.

2 · Paste one URL into your client

Claude Desktop / Anthropic Directory (OAuth 2.1, no key in file) — configs/claude_desktop_config.json

{
  "mcpServers": {
    "paperoffice": {
      "url": "https://mcp.paperoffice.ai/claude"
    }
  }
}

/dms, /cursor and /grok share the Documents Operations catalog (including TTS). /claude is Directory without TTS. /chatgpt (alias /openai) is the ChatGPT connector (Directory without TTS, OTP/unlock).

Full headless DMS (po_ut_ / po_gt_) — configs/dms_mcp.json → /dms. Same catalog as /cursor and /grok.

ChatGPT / Grok (OAuth 2.1, no key in file) — /chatgpt (alias /openai) or /grok (configs/openai_mcp.json, configs/grok_mcp.json). po_ut_ / po_gt_ remains an alternative for /chatgpt.

Everything (300+ MCP tools across every module) — configs/mcp_full.json → /mcp-full.

3 · Ask away

That's it — your AI now works with your documents.


Choose your scope — you decide, not your client

Any client can use any URL. The paths below are convenience profiles, not limits: go full from day one, or pick Directory / ChatGPT policy surfaces when a catalog requires it.

I want…URLSurfaceGood for
Everythinghttps://mcp.paperoffice.ai/mcp-full300+Power users, agents, migration
Documents Operationshttps://mcp.paperoffice.ai/dms300+Canonical DMS URL
Cursor / Windsurfhttps://mcp.paperoffice.ai/cursorsame as /dmsIDE — full Documents Operations including TTS
Grokhttps://mcp.paperoffice.ai/groksame as /dmsGrok custom connector
Claude Directory URLhttps://mcp.paperoffice.ai/claudeDirectory without TTSClaude Desktop / Anthropic Directory
ChatGPThttps://mcp.paperoffice.ai/chatgptDirectory without TTS, OTP/unlockChatGPT Apps SDK
ChatGPT aliashttps://mcp.paperoffice.ai/openaisame as /chatgptLegacy ChatGPT URL
Slim IDE subsethttps://mcp.paperoffice.ai/mcpsubset of 300+Read-safe default for tool-limited IDEs

Client shortcuts: https://mcp.paperoffice.ai/cursor = same Documents Operations catalog as /dms · https://mcp.paperoffice.ai/grok = same Documents Operations catalog as /dms · https://mcp.paperoffice.ai/claude = Directory without TTS · https://mcp.paperoffice.ai/chatgpt = ChatGPT connector (alias https://mcp.paperoffice.ai/openai) · https://mcp.paperoffice.ai/mcp = slim IDE subset.

Why scopes at all? Fewer tools = faster, more accurate tool-selection by the model, and some clients enforce a tool-count cap. /mcp is the slim IDE subset. None of this limits what PaperOffice can do — switch to /mcp-full anytime for media, CRM and telephony.

Ready-made config files for every profile are in configs/.


Per-client quick reference

ClientSuggested startWant more?
Claude Desktop/claude (OAuth, Directory without TTS)/mcp-full for media/CRM
Claude Cowork / Claude Code/dms (Documents Operations, po_ut_ / po_gt_)/mcp-full for all modules
Cursor / Windsurf/cursor (same catalog as /dms)/mcp-full for media/CRM
ChatGPT/chatgpt (OAuth, alias /openai)/mcp-full for all 300+
Grok/grok (OAuth, same catalog as /dms)/mcp-full for all 300+

These are starting points — change the URL whenever your task needs a different scope.

Marketplace plugins

Prefer a one-click install? The same server is packaged as a plugin for two marketplaces:

MarketplaceRepositoryEndpoint
Cursor Marketplacepaperoffice-ai/paperoffice-cursor-plugin/cursor — token set as a plugin variable, never in the repo
xAI Plugin Marketplace (Grok Build)paperoffice-ai/paperoffice-grok-plugin/grok — OAuth 2.1 on first connection

ChatGPT and Claude do not need a repository: connect the /chatgpt or /claude URL directly, or install PaperOffice from their app directories once listed.

Official MCP Registry

PaperOffice is published in the official MCP Registry as io.github.paperoffice-ai/paperoffice-mcp — the manifest is server.json in this repository. Clients and directories that read the registry (VS Code, Glama, PulseMCP and others) find the six lanes there without any manual entry.

# Claude Code
claude mcp add --transport http paperoffice https://mcp.paperoffice.ai/dms

Agent Skills

The MCP server supplies the tools; paperoffice-ai/paperoffice-skills supplies the procedures — five SKILL.md files (API integration, invoice extraction, OCR, documents, tool discovery) that load as a Claude Code plugin, a claude.ai skill upload, or inside the Cursor plugin.


What you can do

AreaExamples
Document AI / IDPZero-shot extraction, classification, document chat, PII redaction
OCR120+ languages, layout-aware, searchable PDF & Markdown output
Headless DMSSearch, read, upload, move, version, tag, sign
Workflow AITasks, human-in-the-loop approvals, process automation
IntelligenceKnowledge graph, entities, analytics, BI dashboards

Why PaperOffice

  • EU-sovereign — own Tier III data centres in Spain & Germany. GDPR-aligned, no mandatory US cloud.
  • Zero-shot IDP — extraction without template training, powered by specialized LLMs.
  • Pay-per-use — transparent credits, no per-seat lock-in.
  • API-first — 300+ API/MCP-Tools via REST or MCP. MCP uses OAuth 2.1 or a User token (po_ut_ / po_gt_) — see Postman.
  • 24+ years — document management since 2002.

Prefer plain REST?

Paste this into any AI assistant for the full API — it reads the docs and writes the code:

https://api.paperoffice.ai/latest/docs/postman

Machine-readable context: paperoffice.ai/llms.txt · api.paperoffice.ai/latest/docs/llms.txt


Technical notes

  • Transport: Streamable HTTP (remote MCP) — no stdio, no local process
  • Base host: mcp.paperoffice.ai
  • Auth: OAuth 2.1 first for Claude / ChatGPT / Grok (no token in the file). Bearer (po_ut_ / po_gt_) for Cursor, DMS, and as an alternative. po_sk_ and po_pk_ are blocked for MCP.
  • Public claim: 300+ API/MCP-Tools (unified REST + MCP). Do not cite 250/260/350/357/500 or drifting profile integers.
  • Claude.ai network allowlist: mcp.paperoffice.ai and api.paperoffice.ai (two fs — never paperofice)

Resources


License

Config files in this repository are MIT. The PaperOffice AI platform and API are proprietary — see paperoffice.ai for terms.

Advanced
Delivery
paperoffice-mcp MCP server → your ahel connector (mcp.ahel.ai) → your AI.
Catalog kind
mcp-server
Key
io-github-paperoffice-ai-paperoffice-mcp
Source
github.com/paperoffice-ai/paperoffice-mcp-setup
Hosted endpoint
https://mcp.paperoffice.ai/dms