> ## 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.

# How to give an agent document tools with MCP

> Point your MCP client at https://api.eu.doconda.com/mcp with your API key: the agent creates, reviews and edits Word, PowerPoint, Excel and PDF.

Connect any MCP client with Streamable HTTP transport to `https://api.eu.doconda.com/mcp`, with the
`Authorization: Bearer` header and your API key. The agent gets Doconda's tools (`create_document`, `review_document`,
`edit_document`…) and each call returns the document's status and its download links.

## Steps

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

2. Point your client at the remote server:

   ```
   URL:     https://api.eu.doconda.com/mcp
   Header:  Authorization: Bearer ak_eu_…
   ```

3. If your client has a per-call timeout, raise it: a document takes longer to be ready than a normal call.

For example, from code, with the OpenAI Agents SDK or the Vercel AI SDK:

<CodeGroup>
  ```python Python 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())
  ```

  ```ts TypeScript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  // npm install ai @ai-sdk/anthropic @ai-sdk/mcp
  import { anthropic } from "@ai-sdk/anthropic"
  import { createMCPClient } from "@ai-sdk/mcp"
  import { generateText, isStepCount } from "ai"

  const doconda = await createMCPClient({
    transport: {
      type: "http",
      url: "https://api.eu.doconda.com/mcp",
      headers: { Authorization: `Bearer ${process.env.DOCONDA_API_KEY}` },
    },
  })

  const { text } = await generateText({
    model: anthropic("claude-sonnet-5-5"),
    tools: await doconda.tools(),
    stopWhen: isStepCount(5),
    prompt: "Make me an Excel file with the event budget",
  })
  console.log(text)
  await doconda.close()
  ```
</CodeGroup>

In Claude Code it's one line:
`claude mcp add --transport http doconda https://api.eu.doconda.com/mcp --header "Authorization: Bearer ak_eu_…"`.

## 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 (by URL or as base64 on the remote server). |
| `review_document` · `edit_document` | Reviews and fixes, or 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. |

Each tool returns a short summary (`id`, `format`, `status`, `links`) so the agent can tell the user without spending
context. Errors also 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`, stdio) can upload files from your computer; it's for Claude Desktop, Cursor or Codex.
  </Accordion>

  <Accordion title="Which clients work?">
    Any with Streamable HTTP: Claude, Cursor, LangChain, CrewAI, Google ADK, OpenAI Agents SDK, Mastra, n8n, smolagents,
    Le Chat…
  </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 and specific clients.
* [Quickstart](/en/quickstart).


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