Saltar al contenido

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_ en Authorization: Bearer. Una llave de lectura no usa las herramientas que cambian algo.
  • Para aprobar o rechazar, agrega Simpligastos-Persona con el id de quien decide: el agente actúa con sus permisos, y nadie aprueba su propia rendición.
Un agente con una llave de escritura puede aprobar y cerrar rendiciones. Si solo quieres consultas, dale una llave de lectura.

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"

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

  1. Nombre: Simpligastos. URL: la del servidor, de arriba.
  2. Autenticación: sin inicio de sesión (No sign in).
  3. En los encabezados del pedido (Request headers), Authorization con el valor Bearer sg_..., y si quieres Simpligastos-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.

claude_desktop_config.json
{
  "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.

mcp.json
{
  "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"}}}'

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 lee

Cifras 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 lee

Gastos 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 lee

Un gasto con todo lo leído, su clasificación y observaciones.

Parámetros

ididobligatorio
Opcional.
crear_gasto_sin_documentoCambia algo: llave de escritura

Crea 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 lee

Rendiciones 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 lee

Una 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 escritura

Junta 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 escritura

Aprueba 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 escritura

Rechaza 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 escritura

Contabilidad cierra una rendición aprobada: queda registrada y su reembolso pasa a pagos (o se descuenta del fondo).

Parámetros

ididobligatorio
Opcional.
buscar_fondosSolo lee

Fondos 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 lee

Lo que la empresa debe pagar: reembolsos, fondos por entregar y reposiciones, con los datos bancarios de cada persona.