> ## 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 agente de LangChain devuelva un Excel

> Conecta el servidor MCP de Doconda con langchain-mcp-adapters: el agente crea un .xlsx con fórmulas reales y devuelve el enlace.

Instala `langchain-mcp-adapters` (Python) o `@langchain/mcp-adapters` (TypeScript), conecta el servidor MCP remoto de
Doconda y pasa sus herramientas a `create_agent`. Cuando pides una hoja de cálculo, el agente llama a
`create_document` con `format: "xlsx"` y recibes un Excel con fórmulas reales y su PDF, con sus enlaces.

## 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.
3. Conecta el servidor y pide el Excel:

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  # pip install langchain-mcp-adapters "langchain[anthropic]"
  import asyncio
  import os

  from langchain.agents import create_agent
  from langchain_mcp_adapters.client import MultiServerMCPClient


  async def main():
      client = MultiServerMCPClient({
          "doconda": {
              "transport": "streamable_http",
              "url": "https://api.eu.doconda.com/mcp",
              "headers": {"Authorization": f"Bearer {os.environ['DOCONDA_API_KEY']}"},
          },
      })
      agent = create_agent("anthropic:claude-sonnet-5-5", await client.get_tools())
      result = await agent.ainvoke({"messages": [{"role": "user", "content": "Hazme un Excel con el presupuesto del evento"}]})
      print(result["messages"][-1].content)


  asyncio.run(main())
  ```

  ```ts TypeScript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  // npm install @langchain/mcp-adapters langchain @langchain/core @langchain/langgraph
  import { MultiServerMCPClient } from "@langchain/mcp-adapters"
  import { createAgent } from "langchain"

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

  const agent = createAgent({ model: "anthropic:claude-sonnet-5-5", tools: await client.getTools() })
  const result = await agent.invoke({ messages: [{ role: "user", content: "Hazme un Excel con el presupuesto del evento" }] })
  console.log(result.messages.at(-1)?.content)
  await client.close()
  ```
</CodeGroup>

Vale cualquier modelo que admita LangChain. Si prefieres no usar MCP, convierte `doconda.tools()` en `StructuredTool`
como en la guía de [LangGraph](/agents/langgraph).

## Qué devuelve

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

* Un Excel con fórmulas reales (no números copiados), con los supuestos en sus propias celdas y sin errores de cálculo.
* Su PDF, y `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="¿Puede editar un Excel que ya tengo?">
    Sí, con `edit_document`: cambia solo lo que pides y los cambios van con fórmulas reales. Por el MCP remoto, el
    fichero se sube por URL o en base64.
  </Accordion>

  <Accordion title="¿Puedo usar el servidor MCP en local?">
    Sí: `{ transport: "stdio", command: "npx", args: ["-y", "@doconda/mcp"] }` con `DOCONDA_API_KEY` en `env`. En local
    también puede subir ficheros de tu disco.
  </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

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


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