Agentes de IA
Servidor MCP
Conecta Claude, Cursor u otro agente a Simpligastos con una llave.
Qué es
El servidor MCP le da a un agente de IA las funciones de Simpligastos como herramientas: ver el resumen de la empresa, buscar gastos y rendiciones, crear una rendición, aprobar, rechazar y cerrar, y revisar fondos y pagos pendientes. Usa las mismas llaves y los mismos permisos que la API.
https://simpligastos.cl/api/mcp- Transporte HTTP (Streamable HTTP), sin sesiones: cada mensaje va en su propio POST y la respuesta es JSON.
- Solo entra con una llave
sg_enAuthorization: Bearer. Una llave de lectura no usa las herramientas que cambian algo. - Para aprobar o rechazar, agrega
Simpligastos-Personacon el id de quien decide: el agente actúa con sus permisos, y nadie aprueba su propia rendición.
Claude Code
Con la llave en la variable SIMPLIGASTOS_LLAVE, agrégalo con un comando. El comando guarda la llave en tu configuración de Claude Code; para un proyecto compartido, usa mejor .mcp.json en la raíz del repositorio, que lee la variable al conectarse y no guarda la llave.
claude mcp add --transport http simpligastos https://simpligastos.cl/api/mcp \
--header "Authorization: Bearer $SIMPLIGASTOS_LLAVE"{
"mcpServers": {
"simpligastos": {
"type": "http",
"url": "https://simpligastos.cl/api/mcp",
"headers": {
"Authorization": "Bearer ${SIMPLIGASTOS_LLAVE}"
}
}
}
}Para actuar como una persona, suma --header "Simpligastos-Persona: 72efadfd-f668-4bec-a7c4-f728bbe2e3ca" (o la misma línea en headers). Revisa que conectó con /mcp dentro de Claude Code.
Claude (app y web)
En Claude, como conector propio: Customize → Connectors → + Add → Add custom connector (los nombres pueden cambiar con el idioma de la app).
- Nombre: Simpligastos. URL: la del servidor, de arriba.
- Autenticación: sin inicio de sesión (No sign in).
- En los encabezados del pedido (Request headers),
Authorizationcon el valorBearer sg_..., y si quieresSimpligastos-Persona.
Claude se conecta desde sus servidores, no desde tu equipo, así que la dirección tiene que ser pública. En planes Team y Enterprise lo agrega quien administra la organización.
Otra forma, solo en la app de escritorio y con Node instalado: el puente mcp-remote (un paquete de la comunidad) en claude_desktop_config.json (Settings → Developer → Edit Config). Reinicia la app después de guardarlo.
{
"mcpServers": {
"simpligastos": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://simpligastos.cl/api/mcp",
"--header",
"Authorization:${SIMPLIGASTOS_AUTORIZACION}"
],
"env": {
"SIMPLIGASTOS_AUTORIZACION": "Bearer sg_ejemplo_reemplaza_por_tu_llave"
}
}
}
}El encabezado va sin espacio después de los dos puntos y el espacio de Bearer, en la variable: así funciona también en Windows.
Cursor
En ~/.cursor/mcp.json (para todos tus proyectos) o en .cursor/mcp.json del proyecto. Cursor lee la variable SIMPLIGASTOS_LLAVE de tu entorno.
{
"mcpServers": {
"simpligastos": {
"url": "https://simpligastos.cl/api/mcp",
"headers": {
"Authorization": "Bearer ${env:SIMPLIGASTOS_LLAVE}"
}
}
}
}Otro cliente por HTTP
Cualquier cliente que hable MCP por HTTP sirve: apúntalo a la dirección y manda la llave en Authorization. Si lo armas a mano, son mensajes JSON-RPC por POST, con Accept: application/json, text/event-stream. El servidor no usa sesiones, así que no hace falta guardar Mcp-Session-Id.
# 1. Saludo: el servidor dice quién es y qué ofrece.
curl -X POST "https://simpligastos.cl/api/mcp" \
-H "Authorization: Bearer $SIMPLIGASTOS_LLAVE" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"mi-cliente","version":"1.0"}}}'
# 2. Las herramientas disponibles.
curl -X POST "https://simpligastos.cl/api/mcp" \
-H "Authorization: Bearer $SIMPLIGASTOS_LLAVE" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# 3. Usar una: las rendiciones aprobadas.
curl -X POST "https://simpligastos.cl/api/mcp" \
-H "Authorization: Bearer $SIMPLIGASTOS_LLAVE" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"buscar_rendiciones","arguments":{"estado":"aprobada"}}}'import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transporte = new StreamableHTTPClientTransport(new URL("https://simpligastos.cl/api/mcp"), {
requestInit: { headers: { Authorization: `Bearer ${process.env.SIMPLIGASTOS_LLAVE}` } },
});
const cliente = new Client({ name: "mi-cliente", version: "1.0.0" });
await cliente.connect(transporte);
const { tools } = await cliente.listTools();
const resultado = await cliente.callTool({ name: "buscar_rendiciones", arguments: { estado: "aprobada" } });
await cliente.close();Herramientas
Estas son las 12 herramientas que ofrece hoy, con la descripción que lee el agente. Para lo que no está aquí, usa la API.
resumenSolo leeCifras de la empresa en los últimos 30 o 90 días: lo rendido contra el período anterior, por categoría, centro de costo y persona, la tendencia semanal y lo que espera a alguien. Solo contabilidad y administración.
Parámetros
diasnúmero- Por omisión: 30.
buscar_gastosSolo leeGastos de la empresa (contabilidad y administración) o los propios. Filtra por estado: listo, revisar (con observaciones), malo (foto por repetir), leyendo.
Parámetros
estadotexto- Uno de: leyendo, listo, revisar, malo.
limiteentero- De 1 a 200. Por omisión: 50.
ver_gastoSolo leeUn gasto con todo lo leído, su clasificación y observaciones.
Parámetros
ididobligatorio- Opcional.
crear_gasto_sin_documentoCambia algo: llave de escrituraCrea un gasto sin boleta (propina, TAG, estacionamiento), a nombre de la persona de la llave. Solo si la política de la empresa acepta gastos sin documento.
Parámetros
fechafechaobligatorio- AAAA-MM-DD, en hora de Chile.
totalenteroobligatorio- Mayor que 0.
emisorNombretextoobligatorio- Dónde o a quién se pagó
comentariotextoobligatorio- Por qué no hay documento
categoriaIdid o null- Opcional.
centroCostoIdid o null- Opcional.
buscar_rendicionesSolo leeRendiciones visibles para la persona de la llave. por_aprobar=true trae solo las que le toca decidir; propias=true, las suyas.
Parámetros
estadotexto- Uno de: borrador, enviada, aprobada, rechazada, cerrada.
por_aprobarbooleano- Por omisión: false.
propiasbooleano- Por omisión: false.
ver_rendicionSolo leeUna rendición completa: gastos, pasos de aprobación, riesgo según el agente revisor, fondo, pago e historial.
Parámetros
ididobligatorio- Opcional.
crear_rendicionCambia algo: llave de escrituraJunta gastos propios sin rendir en una rendición, contra un fondo (fondoId) o como reembolso. enviar=true la manda a aprobar.
Parámetros
titulotextoobligatorio- De 1 a 120 caracteres.
gastoIdslista de idobligatorio- Opcional.
fondoIdid o null- Opcional.
enviarbooleano- Por omisión: false.
aprobar_rendicionCambia algo: llave de escrituraAprueba el paso que le toca a la persona de la llave en una rendición enviada.
Parámetros
ididobligatorio- Opcional.
comentariotexto o null- Hasta 500 caracteres.
rechazar_rendicionCambia algo: llave de escrituraRechaza una rendición enviada; vuelve a quien rindió con el motivo para corregirla.
Parámetros
ididobligatorio- Opcional.
motivotextoobligatorio- De 3 a 500 caracteres.
cerrar_rendicionCambia algo: llave de escrituraContabilidad cierra una rendición aprobada: queda registrada y su reembolso pasa a pagos (o se descuenta del fondo).
Parámetros
ididobligatorio- Opcional.
buscar_fondosSolo leeFondos por rendir y cajas chicas con su saldo. Contabilidad y administración ven todos; el resto, los propios.
Parámetros
estadotexto- Uno de: abierto, cerrado.
pagos_pendientesSolo leeLo que la empresa debe pagar: reembolsos, fondos por entregar y reposiciones, con los datos bancarios de cada persona.