> ## 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 generar documentos desde un agente de Mastra

> Convierte doconda.tools() con createTool y pásalas a tu Agent de Mastra: crea Word, PowerPoint, Excel o PDF y devuelve los enlaces.

Instala `@mastra/core` y `@doconda/sdk`, convierte cada herramienta de `doconda.tools()` con `createTool` (acepta su JSON
Schema tal cual, sin pasarlo a Zod) y pásalas a tu `Agent`. Cuando pides un documento, el agente llama a
`create_document` y su respuesta trae los enlaces al Word, PowerPoint, Excel o PDF.

## Pasos

1. Guarda tu API key de Doconda (panel → **API keys**) en `DOCONDA_API_KEY` y la de tu proveedor de modelos (aquí,
   `ANTHROPIC_API_KEY`).
2. Instala las dependencias: `npm install @mastra/core @doconda/sdk`.
3. Crea el agente con las herramientas:

```ts theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import { Agent } from "@mastra/core/agent"
import { createTool } from "@mastra/core/tools"
import { Doconda } from "@doconda/sdk"

const doconda = new Doconda()
const tools = Object.fromEntries(
  doconda.tools().map((t) => [
    t.name,
    createTool({ id: t.name, description: t.description, inputSchema: t.inputSchema, execute: (input) => t.run(input as Record<string, unknown>) }),
  ]),
)

const agent = new Agent({
  id: "documentos",
  name: "Documentos",
  instructions: "Creas, revisas y editas documentos con Doconda.",
  model: "anthropic/claude-sonnet-5-5", // o cualquier otro proveedor
  tools,
})

const { text } = await agent.generate("Crea una presentación de 5 diapositivas sobre nuestros resultados del trimestre")
console.log(text)
```

`model` usa el formato `proveedor/modelo` de Mastra, que lee la clave del proveedor de tu entorno.

Con MCP, en vez del SDK, usa `MCPClient` de `@mastra/mcp` contra `https://api.eu.doconda.com/mcp` y pasa
`await mcp.listTools()` como `tools`. Las herramientas llegan con el nombre del servidor delante
(`doconda_create_document`, …).

## Qué devuelve

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

* `format`: `docx`, `pdf`, `pptx`, `xlsx` o `artifact`. Word, PowerPoint y Excel llegan con su PDF.
* `status`: `ready`, `ready_with_warnings`, `needs_review` o `failed` (no se cobra).
* Los enlaces caducan a los 5 minutos; el agente pide otros con `get_document`.

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Puedo usarlo dentro de un workflow de Mastra?">
    Sí: el agente es el mismo. Si un paso no necesita agente, llama directamente a
    `doconda.documents.create({ format: "docx", content: { markdown } })` con el texto del paso anterior.
  </Accordion>

  <Accordion title="¿Dónde llamo a Doconda?">
    En tu servidor, nunca en el navegador: tu API key da acceso a todos los documentos del proyecto.
  </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

* [Mastra](/agents/mastra): la guía completa, también con el cliente MCP.
* [Quickstart](/quickstart).


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