Splid MCP
Un servidor del Protocolo de Contexto del Modelo (MCP) que expone Splid (splid.app) a través de herramientas, impulsado por el cliente splid-js de ingeniería inversa.
GitHubPrueba este MCPPatrocinado
Documentación
Servidor MCP de Splid
Un servidor de Protocolo de Contexto de Modelo (MCP) que expone Splid (splid.app) a través de herramientas, impulsado por el cliente splid-js de ingeniería inversa.
- Lenguaje/Entorno de ejecución: Node.js (ESM) + TypeScript
- Transporte: HTTP transmisible (y stdio para inspector local)
- Licencia: MIT
Inicio rápido
- Instalación
npm install
- Configurar el entorno
Crea un .env en la raíz del proyecto:
CODE=YOUR_SPLID_INVITE_CODE
PORT=8000
- Compilar y ejecutar
npm run build
npm run dev
- Inspeccionar localmente
npm run inspect
Luego conéctate a http://localhost:8000/mcp usando "HTTP transmisible".
Herramientas
Todas las herramientas admiten un selector de grupo opcional para anular el valor predeterminado de CODE:
groupId?: stringgroupCode?: string(código de invitación)groupName?: string(reservado; aún no compatible)
Si no se proporciona ninguno, el servidor usa el grupo predeterminado de CODE.
health
- Propósito: verificación de conectividad
- Salida:
{ ok: true }
whoami
- Propósito: mostrar el grupo seleccionado actualmente y sus miembros
- Entrada: ninguna
- Salida: JSON con información del grupo y miembros
createExpense
- Propósito: crear una nueva entrada de gasto
- Entrada:
title: stringamount: number > 0currencyCode?: string(se establece al valor predeterminado del grupo si se omite)payers: { userId?: string; name?: string; amount: number > 0 }[](al menos 1)profiteers: { userId?: string; name?: string; share: number in (0,1] }[](al menos 1)- Campos opcionales del selector de grupo
- Reglas:
- Los nombres no distinguen entre mayúsculas y minúsculas y se resuelven al GlobalId del miembro; los nombres desconocidos devuelven un error claro.
- La suma de todos los valores de
sharedebe ser igual a 1 (±1e‑6).
- Ejemplo (nombres):
{
"title": "Dinner",
"amount": 12.5,
"payers": [{ "name": "Alice", "amount": 12.5 }],
"profiteers": [{ "name": "Bob", "share": 0.6 }, { "name": "Alice", "share": 0.4 }]
}
- Ejemplo (userIds):
{
"title": "Dinner",
"amount": 12.5,
"payers": [{ "userId": "<GlobalId>", "amount": 12.5 }],
"profiteers": [{ "userId": "<GlobalId>", "share": 1 }]
}
listEntries
- Propósito: listar entradas recientes en un grupo
- Entrada:
limit?: number(1..100, predeterminado 20)- Campos opcionales del selector de grupo
- Salida: matriz de entradas
getGroupSummary
- Propósito: mostrar saldos/resumen de un grupo
- Entrada:
- Campos opcionales del selector de grupo
- Salida: objeto de resumen (saldos calculados mediante Splid)
HTTP transmisible
- URL:
http://localhost:8000/mcp - No se requieren encabezados de autenticación; usa MCP Inspector para probar.
Solución de problemas
- "Solicitud incorrecta: servidor no inicializado": actualiza y vuelve a conectar; el primer POST debe ser
initialize. - Error 400 con errores de participación: asegúrate de que las participaciones estén en (0,1] y sumen 1.
- Nombre desconocido: verifica los nombres exactos de los miembros en la salida de
whoami.
Configuración
- Variables de entorno:
CODE: código de invitación/unión de Splid para el grupo predeterminadoPORT(opcional): predeterminado 8000
Agradecimientos
- Cliente JS de Splid: https://github.com/LinusBolls/splid-js
- Plantilla/documentación del servidor MCP: https://github.com/InteractionCo/mcp-server-template
Licencia
MIT