Skip to main content

Claude, ChatGPT and other apps (MCP)

The OpenDocs MCP server lets Claude, ChatGPT and other AI apps publish, export, share and send documents for you. You add one URL to the app, sign in with your OpenDocs account and choose what the app may do. It works on every plan, including Free.

https://mcp.opendocs.cc/mcp

opendocs.cc/mcp has one-click buttons for Claude, Cursor and VS Code.

Ask your app

"Publish this as a doc in our Legal project."

"Make a PDF of the Acme NDA."

"Send the employment contract to Jón for signature."

MCP or the skill?

Chat apps such as Claude and ChatGPT use MCP. Coding tools such as Claude Code, Codex and Cursor can use either. With a terminal, the skill and CLI are better for local files, folders and images: they publish straight from disk and save PDFs next to the source. MCP needs nothing installed.

Add OpenDocs to your app​

Works in Claude on the web, the desktop app and the mobile app. Add it once on claude.ai and it's there in all of them.

  1. Open the Add custom connector dialog (the Add to Claude button on opendocs.cc/mcp opens the same link). The name OpenDocs.cc and the URL are filled in. Click Add.
  2. Click Connect next to OpenDocs.cc, sign in to OpenDocs and click Allow. See Signing in for what you'll see.
  3. Ask in any chat.

To add it by hand, open Claude's connector settings, choose Add custom connector, name it OpenDocs.cc and paste https://mcp.opendocs.cc/mcp.

  • Team and Enterprise: an owner adds OpenDocs once in Organization settings → Connectors (prefilled link). Then each person clicks Connect and signs in with their own OpenDocs account.
  • Claude Free allows one custom connector.
  • Connectors you add on claude.ai also show up in Claude Code when you're signed in with the same account.

With the OpenDocs CLI​

If you have the CLI, it can do the setup for you:

opendocs mcp add # adds the server to every coding tool it finds
opendocs mcp connect claude # opens Claude's add dialog and copies the URL
opendocs mcp connect chatgpt # opens ChatGPT's plugin settings and copies the URL

opendocs mcp add uses each tool's own command where there is one (claude mcp add, codex mcp add, code --add-mcp) and otherwise adds only the opendocs entry to the tool's config, leaving your other servers alone. Each tool then asks you to sign in the first time it uses OpenDocs.

Signing in​

The first time the app uses OpenDocs, it opens an OpenDocs page in your browser:

  1. Sign in with an emailed code, Google or GitHub. New to OpenDocs? The same page creates your account, a workspace and a Default project.
  2. Check who's asking. The page names the app ("Claude wants to use your OpenDocs account") and the account you're signed in as, with a link to use another account.
  3. Pick a workspace if you have more than one. Pending invitations to a workspace show up here too.
  4. Choose permissions (below) and click Allow.

You're sent back to the app, which shows OpenDocs as connected. OpenDocs remembers your answer for that app and set of permissions, so reconnecting doesn't ask again.

Permissions​

PermissionWhat it allowsDefault
Read documentsRead your documents and projectsAlways on
Create, update, share and exportPublish and change documents, share them, export PDF and Word filesOn
Google Drive and e-signatureSave documents to Google Drive and send them for e-signatureOn when your workspace has Drive or DocuSeal connected
Team and workspace adminManage team members, workspaces and export brandingOff; only offered to owners and admins

The app only sees the tools your permissions allow. To allow more later, reconnect OpenDocs from the app (or disconnect it in Connected apps and add it again) and tick the permission on the consent screen. The full list is in MCP tools.

Your plan's usual limits apply, the same as with the CLI. Google Drive and e-signatures need a workspace on Pro or Team with them connected; see Google Drive and E-signatures with DocuSeal.

What the AI asks you first​

OpenDocs tells the AI to ask you in plain words, and get a clear yes, before it:

  • makes a document public,
  • deletes a document or project,
  • invites people or removes them from the team,
  • changes the export theme, which affects every export,
  • sends anything for signature.

For e-signatures it always creates a draft first and reads back the document, version, every signer, the order, the message and the expiry. If your workspace requires approval in the browser, you get an approval link instead. Your app may also ask you to approve tool calls on its own.

Every answer ends with the document's link on its own line and who can open it.

What works differently from the CLI​

With the CLIOver MCP
Publishes a .md file from diskThe AI sends the Markdown itself. Word files you upload to the chat are converted to Markdown first.
Uploads local imagesImage links in the Markdown are copied to OpenDocs when you publish. Pasted images go through an upload tool.
Saves the PDF or Word file next to the sourceYou get a download link that works for 60 minutes.
Remembers which file is which documentThe AI refers to documents by link, slug or title, and updates check the version so nobody's edits are overwritten.
Publishes whole foldersUp to 25 documents per request. Whole folders and vaults stay a CLI job.

Disconnect​

Open Dashboard → Connected apps and click Revoke next to the app. Its access ends within a minute. You can also remove the connector in the app itself; revoking in OpenDocs makes sure it can't be used again.

Troubleshooting​

The app says it needs to sign in again. This happens after you revoke the app, or when you ask for something your permissions don't cover. Reconnect and allow the permission:

  • Claude: open the connector settings, disconnect OpenDocs.cc and click Connect again.
  • Claude Code: run /mcp, choose opendocs and sign in again.
  • Codex: run codex mcp login opendocs.
  • Cursor and VS Code: sign in again from the MCP settings.

The sign-in page says "Unverified app". Some apps, mostly coding tools, register themselves when they first connect. OpenDocs then shows the name the app gave itself, the address it returns to after sign-in and an "Unverified app" note. Claude, ChatGPT and VS Code identify themselves and get a verified badge. If the name or address doesn't match the app you're using, click Cancel.

Claude says you can't add another connector. Claude Free allows one custom connector. Remove the other one first, or use a Claude plan that allows more.

ChatGPT doesn't offer Add custom MCP server. Your ChatGPT plan or workspace doesn't support custom MCP servers, or an admin hasn't allowed them.

The AI doesn't use OpenDocs. Check that the connector is turned on for this chat, then mention OpenDocs in your request: "Publish this with OpenDocs."

It doesn't connect from a work computer. Claude and ChatGPT connect to OpenDocs from their own servers, so only the sign-in page has to load on your computer. Coding tools connect from your computer: they need HTTPS access to mcp.opendocs.cc and opendocs.cc. Proxies that strip the Authorization header or buffer streamed responses break MCP; ask IT to allow both hosts.

Privacy​

OpenDocs only receives what the AI sends to its tools: the text of a document you publish, the email of someone you share with, the folder you save to. It never sees your chats, your other files or your other connectors. What it keeps is the same as when you publish from the CLI: your documents, their versions and who has access. Version history shows which app published each version, such as "Published from Claude". See the Privacy Policy.

For developers​

WhatWhere
Server URLhttps://mcp.opendocs.cc/mcp (Streamable HTTP)
OAuth issuerhttps://opendocs.cc/api/auth
Authorization server metadatahttps://opendocs.cc/.well-known/oauth-authorization-server/api/auth
Protected resource metadatahttps://mcp.opendocs.cc/.well-known/oauth-protected-resource/mcp

Clients discover the authorization server from the protected resource metadata, so the URL is all an MCP client needs. Access tokens are issued for the MCP server; to call the REST API directly, use an API key (see Authentication).