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

# Cómo hacer que un crew de CrewAI entregue un informe en Word

> Conecta el servidor MCP de Doconda a un agente de CrewAI con MCPServerHTTP: la tarea termina con el enlace al .docx y su PDF.

Instala `crewai` y `mcp`, y añade el servidor MCP remoto de Doconda al agente con `MCPServerHTTP`. Cuando la tarea pide
un informe en Word, el agente llama a `create_document` con `format: "docx"` y el resultado del crew es el enlace de
descarga del Word (con su PDF).

## Pasos

1. Guarda tu API key de Doconda (panel → **API keys**) en `DOCONDA_API_KEY`, y la del modelo que use CrewAI.
2. Instala las dependencias: `uv add crewai mcp`.
3. Define el agente con el servidor MCP y una tarea cuyo `expected_output` sea el enlace:

```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import os

from crewai import Agent, Crew, Task
from crewai.mcp import MCPServerHTTP

key = os.environ["DOCONDA_API_KEY"]

writer = Agent(
    role="Redactor",
    goal="Entregar documentos impecables",
    backstory="Escribes informes y contratos claros.",
    mcps=[MCPServerHTTP(url="https://api.eu.doconda.com/mcp", headers={"Authorization": f"Bearer {key}"}, streamable=True)],
)

task = Task(
    description="Prepara un informe en Word sobre las ventas del trimestre y devuelve el enlace.",
    expected_output="El enlace de descarga del Word.",
    agent=writer,
)

result = Crew(agents=[writer], tasks=[task]).kickoff()
print(result)
```

En un crew con varios agentes, deja que los demás investiguen y analicen, y da el servidor MCP solo al agente que
redacta el entregable.

Para usarlo en local, en vez del remoto: `MCPServerStdio(command="npx", args=["-y", "@doconda/mcp"],
env={"DOCONDA_API_KEY": key})` de `crewai.mcp`.

## Qué devuelve

La herramienta `create_document` devuelve al agente:

```json theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
{
  "id": "doc_01JAB3…",
  "format": "docx",
  "status": "ready",
  "links": { "docx": "https://…", "pdf": "https://…" },
  "links_note": "Links expire in 5 minutes: call get_document for fresh ones."
}
```

* Un Word editable: el aspecto va en sus estilos (Normal, Título 1…) y la maquetación se adapta a la clase de documento.
* `status`: `ready`, `ready_with_warnings`, `needs_review` o `failed` (no se cobra).
* Los enlaces caducan a los 5 minutos. Para guardar el archivo, descárgalo con el `id`:
  `Doconda().documents.download(id, "docx")` (`pip install doconda`).

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Puede el informe usar datos que ya tengo?">
    Sí. Con el servidor local el agente sube ficheros de tu disco con `upload_file`; con el remoto, por URL o en base64.
    Luego los pasa como fuentes de `create_document`.
  </Accordion>

  <Accordion title="¿Puedo darle el estilo de mi empresa?">
    Sí: pide el estilo en la tarea («títulos azul oscuro, fuente Lora») o pasa un archivo tuyo y pide «con el diseño de
    nuestra plantilla».
  </Accordion>

  <Accordion title="¿Cuánto cuesta?">
    Pagas por documento entregado; los que fallan no se cobran. Ver [precios](/guides/account#precios).
  </Accordion>
</AccordionGroup>

## Sigue leyendo

* [CrewAI](/agents/crewai): la guía completa.
* [Quickstart](/quickstart).


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