---
title: "Ejecutar herramientas MCP"
method: POST
path: "/mcp"
tags: ["Maestros"]
---

# Ejecutar herramientas MCP

`POST /mcp`

## Request

- Base URL: `https://mcp.alegra.com`
- URL: `https://mcp.alegra.com/mcp`
- Auth: HTTP bearer

Endpoint principal del protocolo MCP (JSON-RPC 2.0). Soporta los métodos
`initialize`, `tools/list` y `tools/call`.

**Solo lectura:** todas las herramientas son de consulta. El servidor rechaza
cualquier herramienta cuyo nombre no contenga `get`, `list` o `search`.
La única excepción es `invoice_createInvoicesExportable`, que genera una
exportación descargable de facturas y no modifica datos.

**Exposición según país:** las herramientas que devuelve `tools/list` dependen
del país de la empresa del token (por ejemplo, las herramientas SAT de México
o DGI de Colombia solo aparecen en empresas de esos países).

Ejemplo cURL:

```bash
curl -X POST https://mcp.alegra.com/mcp \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## Headers

- `Authorization` string, required
- `Accept` string
- `Mcp-Session-Id` string

## Request body

- JSONRPCRequest
  - `jsonrpc` '2.0', required: Versión de JSON-RPC
  - `id` union, required: ID de la petición (entero o cadena). Obligatorio; se devuelve en la respuesta.
    - integer
    - string
  - `method` 'initialize' | 'tools/list' | 'tools/call', required: Método MCP a ejecutar
  - `params` object: Parámetros del método
    - `name` string: Nombre de la herramienta a ejecutar (p. ej. `items_getItems`)
    - `arguments` object: Argumentos para la herramienta

## Response `200`

Respuesta exitosa

- JSONRPCResponse
  - `jsonrpc` '2.0'
  - `id` union: ID de la petición original
    - integer
    - string
  - `result` object: Resultado de la ejecución
  - `error` object: Error si la petición falló
    - `code` integer
    - `message` string
    - `data` object

## Other responses

- `400`: Solicitud inválida. El cuerpo es un error JSON-RPC 2.0 con código `-32600` (Invalid Request): ocurre cuando falta `id`, `jsonrpc` no es `"2.0"` o el cuerpo no es JSON válido.
- `401`: No autorizado — falta el header `Authorization: Bearer <token>` o el token es inválido o expiró. La respuesta incluye el desafío `WWW-Authenticate: Bearer resource_metadata=...`; obtén un token mediante el flujo OAuth descrito en el esquema de seguridad.

---

[API](https://skmtc.dev/alegra/apis/mcp-alegra.md) - [All operations](https://skmtc.dev/alegra/apis/mcp-alegra/llms.txt) - [OpenAPI document](https://skmtc.dev/alegra/apis/mcp-alegra/revisions/528447af020b?raw)
