Doconda
Create, review and edit editable Word, PowerPoint, Excel and PDF files from any AI agent. Remote (Streamable HTTP, OAuth sign-in) or local (npx).
Hosted MCP Server
npx add-mcp 'https://api.eu.doconda.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
MCP server
Doconda for any MCP client, on your computer or remote.
The Doconda MCP server gives your agent the tools to create, review and edit documents. There are two ways to use it:
| Local | Remote | |
|---|---|---|
| What it is | npx -y @doconda/mcp, on your computer (stdio) | https://api.eu.doconda.com/mcp (Streamable HTTP) |
| Authentication | DOCONDA_API_KEY variable | Sign in with your Doconda account (OAuth), or an Authorization: Bearer ak_… header |
| Can read files from your disk | Yes (upload_file with path) | No: they are uploaded by URL or as base64 |
| For | Claude Desktop, Claude Code, Cursor, Codex, scripts | Claude connectors, Claude Code, Cursor, n8n, Le Chat, cloud-hosted agents |
Local
Any client that launches servers over stdio. The typical configuration:
{
"mcpServers": {
"doconda": {
"command": "npx",
"args": ["-y", "@doconda/mcp"],
"env": { "DOCONDA_API_KEY": "ak_eu_…" }
}
}
}
Remote
Any client with Streamable HTTP transport, at https://api.eu.doconda.com/mcp. There are two ways to authenticate:
- Sign in (OAuth): add the URL and nothing else. The client opens Doconda in your browser; you sign in, choose the organization and project it will work in (and whether it may only read) and approve. Clients that support MCP authorization do this on their own: Claude, Claude Code, Cursor, VS Code, MCP Inspector.
- API key: send
Authorization: Bearer ak_eu_…on every request, for clients without OAuth and for your own backend.
URL: https://api.eu.doconda.com/mcp
Header: Authorization: Bearer ak_eu_… (only with an API key)
What a connected app can do
| Permission | Tools |
|---|---|
documents:read | list_documents, get_document, get_report, read_artifact_data |
documents:write | All of them, also create_document, upload_file, review_document and edit_document |
An app with read-only access gets 403 insufficient_scope on a tool that writes, and the client can ask you to approve
more. A connected app uses its project's documents and balance. You can see and disconnect apps in the dashboard, under
Connected apps; a connection also ends when the person who approved it leaves the organization, or after 30 days
without use.
For MCP client developers
- Without a token, every request (
initializeandtools/listincluded) gets401withWWW-Authenticate: Bearer resource_metadata="https://api.eu.doconda.com/.well-known/oauth-protected-resource/mcp". - The authorization server is
https://api.eu.doconda.com(metadata at/.well-known/oauth-authorization-server): authorization code with PKCES256; theresourceparameter is required and must be the server URL; Client ID Metadata Documents or dynamic registration (/oauth/register); redirects over HTTPS or to localhost (any port);issin the authorization response; access tokens last 1 hour and refresh tokens rotate on every use. - A used refresh token disconnects the app, except for a retry: for 30 seconds, the same client can redeem its last refresh token again and gets a new pair (parallel requests, or a response that never arrived).
- Tokens issued for the MCP server only work there: the REST API (
/v1) refuses them and takes API keys. - The tool list without signing in:
https://api.eu.doconda.com/.well-known/mcp/server-card.json.
Specific clients
Cursor
In .cursor/mcp.json (this project) or ~/.cursor/mcp.json (all projects):
{
"mcpServers": {
"doconda": {
"command": "npx",
"args": ["-y", "@doconda/mcp"],
"env": { "DOCONDA_API_KEY": "${env:DOCONDA_API_KEY}" }
}
}
}
Or the remote one, signing in with your Doconda account: "doconda": { "url": "https://api.eu.doconda.com/mcp" }. With
an API key instead: "doconda": { "url": "https://api.eu.doconda.com/mcp", "headers": { "Authorization": "Bearer ${env:DOCONDA_API_KEY}" } }.
OpenAI Codex
In ~/.codex/config.toml (used by the CLI and the editor extension):
[mcp_servers.doconda]
command = "npx"
args = ["-y", "@doconda/mcp"]
env = { DOCONDA_API_KEY = "ak_eu_…" }
Your own server
If you already have an MCP server, add Doconda's tools: they are JSON Schema, so they work as they are.
import { Doconda } from "@doconda/sdk"
import { createServer } from "@doconda/mcp"
const server = createServer(new Doconda()) // a Server from the official MCP SDK, ready to connect to your transport
This documentation is built and hosted on Mintlify, a developer documentation platform.