> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doconda.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP server for Word, Excel and PowerPoint

> An MCP server for Word, Excel and PowerPoint: remote at https://api.eu.doconda.com/mcp or local with npx -y @doconda/mcp, for Claude, Cursor or your agent.

Doconda's MCP server for Word, Excel and PowerPoint gives your agent tools to create, review and edit editable `.docx`,
`.xlsx`, `.pptx` and PDF files. Use it remotely at `https://api.eu.doconda.com/mcp` with the `Authorization: Bearer`
header and your API key, or locally with `npx -y @doconda/mcp`.

## Steps

1. Create an API key in the dashboard, under **API keys** (it starts with `ak_eu_`).

2. Choose how to connect:

   | | Local | Remote |
   | - | - | - |
   | What it is | `npx -y @doconda/mcp` (stdio) | `https://api.eu.doconda.com/mcp` (Streamable HTTP) |
   | Authentication | `DOCONDA_API_KEY` variable | `Authorization: Bearer ak_eu_…` header |
   | Reads files from your disk | Yes | No: they are uploaded by URL or as base64 |

3. Add it to your client:

<CodeGroup>
  ```json Claude Desktop theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  {
    "mcpServers": {
      "doconda": {
        "command": "npx",
        "args": ["-y", "@doconda/mcp"],
        "env": { "DOCONDA_API_KEY": "ak_eu_…" }
      }
    }
  }
  ```

  ```bash Claude Code theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  claude mcp add --transport stdio doconda --env DOCONDA_API_KEY=ak_eu_… -- npx -y @doconda/mcp

  # or the remote server
  claude mcp add --transport http doconda https://api.eu.doconda.com/mcp --header "Authorization: Bearer ak_eu_…"
  ```

  ```json Cursor theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  {
    "mcpServers": {
      "doconda": {
        "command": "npx",
        "args": ["-y", "@doconda/mcp"],
        "env": { "DOCONDA_API_KEY": "${env:DOCONDA_API_KEY}" }
      }
    }
  }
  ```

  ```python OpenAI Agents SDK theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  # pip install openai-agents
  import asyncio
  import os

  from agents import Agent, Runner
  from agents.mcp import MCPServerStreamableHttp


  async def main():
      async with MCPServerStreamableHttp(
          name="doconda",
          params={
              "url": "https://api.eu.doconda.com/mcp",
              "headers": {"Authorization": f"Bearer {os.environ['DOCONDA_API_KEY']}"},
          },
          client_session_timeout_seconds=300,
      ) as doconda:
          agent = Agent(name="Documents", model="gpt-5", mcp_servers=[doconda])
          result = await Runner.run(agent, "Make me an Excel file with the event budget")
          print(result.final_output)


  asyncio.run(main())
  ```
</CodeGroup>

In Claude Desktop, the file is under **Settings → Developer → Edit Config**. In Cursor, it's `.cursor/mcp.json` (this
project) or `~/.cursor/mcp.json` (all projects); the remote one in Cursor is
`"doconda": { "url": "https://api.eu.doconda.com/mcp", "headers": { "Authorization": "Bearer ${env:DOCONDA_API_KEY}" } }`.
If your client has a per-call timeout, raise it: a document takes longer than a normal call.

## What you get back

| Tool | What it does |
| - | - |
| `create_document` | Creates a Word, PDF, PowerPoint, Excel file or artifact, from a prompt or from ready-made content. |
| `upload_file` | Uploads a file (with the local server, also from your disk). |
| `review_document` | Reviews a file and fixes the safe problems. |
| `edit_document` | Changes what is asked without touching the rest. |
| `list_documents` · `get_document` · `get_report` | The project's documents, status and fresh links, report. |
| `read_artifact_data` | What people have saved in an artifact. |

The tool list is visible without a key; using the tools needs your API key. Each tool returns a short summary (`id`,
`format`, `status`, `links`), and errors come back as results, with a code the agent can act on.

## FAQ

<AccordionGroup>
  <Accordion title="Remote or local?">
    The remote server is for cloud-hosted agents and n8n, and it can't read your disk. The local one
    (`npx -y @doconda/mcp`) can upload files from your computer: it's for Claude Desktop, Claude Code, Cursor or Codex.
  </Accordion>

  <Accordion title="Can it edit a Word file I already have?">
    Yes. With the local server, ask with the full path (*"Review /Users/ana/Documents/contract.docx"*). With the remote
    one, the file is uploaded by URL or as base64 and then `edit_document` or `review_document` is used.
  </Accordion>

  <Accordion title="What language are the messages in?">
    English. The remote server follows `Accept-Language`: send `Accept-Language: es` for Spanish.
  </Accordion>

  <Accordion title="How much does it cost?">
    Whatever the agent does counts as if you did it with the API: same project, same price. See
    [pricing](/en/guides/account#pricing).
  </Accordion>
</AccordionGroup>

## Keep reading

* [MCP server](/en/agents/mcp): local, remote, Codex and your own server.
* [Claude](/en/agents/claude): Claude Desktop, Claude Code and the Claude API.
* [Quickstart](/en/quickstart).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.