Splid MCP
Um servidor Model Context Protocol (MCP) que expõe o Splid (splid.app) por meio de ferramentas, alimentado pelo cliente splid-js com engenharia reversa.
GitHubExperimente este MCPPatrocinado
Documentação
Servidor Splid MCP
Um servidor Model Context Protocol (MCP) que expõe o Splid (splid.app) por meio de ferramentas, alimentado pelo cliente de engenharia reversa splid-js.
- Linguagem/Runtime: Node.js (ESM) + TypeScript
- Transporte: Streamable HTTP (e stdio para inspetor local)
- Licença: MIT
Início rápido
- Instalação
npm install
- Configure o ambiente
Crie um .env na raiz do projeto:
CODE=YOUR_SPLID_INVITE_CODE
PORT=8000
- Compile e execute
npm run build
npm run dev
- Inspecione localmente
npm run inspect
Em seguida, conecte-se a http://localhost:8000/mcp usando "Streamable HTTP".
Ferramentas
Todas as ferramentas suportam um seletor de grupo opcional para substituir o padrão de CODE:
groupId?: stringgroupCode?: string(código de convite)groupName?: string(reservado; ainda não suportado)
Se nenhum for fornecido, o servidor usa o grupo padrão de CODE.
health
- Objetivo: verificação de conectividade
- Saída:
{ ok: true }
whoami
- Objetivo: mostrar o grupo atualmente selecionado e seus membros
- Entrada: nenhuma
- Saída: JSON contendo informações do grupo e membros
createExpense
-
Objetivo: criar uma nova entrada de despesa
-
Entrada:
title: stringamount: number > 0currencyCode?: string(padrão é o padrão do grupo quando omitido)payers: { userId?: string; name?: string; amount: number > 0 }[](pelo menos 1)profiteers: { userId?: string; name?: string; share: number in (0,1] }[](pelo menos 1)- Campos opcionais do seletor de grupo
-
Regras:
- Nomes são insensíveis a maiúsculas/minúsculas e resolvidos para o GlobalId do membro; nomes desconhecidos retornam um erro claro.
- A soma de todos os valores de
sharedeve ser igual a 1 (±1e‑6).
-
Exemplo (nomes):
{
"title": "Dinner",
"amount": 12.5,
"payers": [{ "name": "Alice", "amount": 12.5 }],
"profiteers": [{ "name": "Bob", "share": 0.6 }, { "name": "Alice", "share": 0.4 }]
}
- Exemplo (userIds):
{
"title": "Dinner",
"amount": 12.5,
"payers": [{ "userId": "<GlobalId>", "amount": 12.5 }],
"profiteers": [{ "userId": "<GlobalId>", "share": 1 }]
}
listEntries
- Objetivo: listar entradas recentes em um grupo
- Entrada:
limit?: number(1..100, padrão 20)- Campos opcionais do seletor de grupo
- Saída: array de entradas
getGroupSummary
- Objetivo: mostrar saldos/resumo de um grupo
- Entrada:
- Campos opcionais do seletor de grupo
- Saída: objeto de resumo (saldos calculados via Splid)
Streamable HTTP
- URL:
http://localhost:8000/mcp - Nenhum cabeçalho de autenticação necessário; use o MCP Inspector para testar.
Solução de problemas
- "Bad Request: Server not initialized": atualize e reconecte; o primeiro POST deve ser
initialize. - 400 com erros de partilha: garanta que as partilhas estejam em (0,1] e somem 1.
- Nome desconhecido: verifique os nomes exatos dos membros na saída de
whoami.
Configuração
- Variáveis de ambiente:
CODE: código de convite/entrada do Splid para o grupo padrãoPORT(opcional): padrão 8000
Agradecimentos
- Cliente JS do Splid: https://github.com/LinusBolls/splid-js
- Modelo / documentação do servidor MCP: https://github.com/InteractionCo/mcp-server-template
Licença
MIT