Servidor MCP
Liga o teu assistente de IA ao Selfcare
O Selfcare tem um servidor MCP (Model Context Protocol) para assistentes de IA. Cada pessoa entra com o seu utilizador Selfcare e o assistente passa a poder consultar o saldo de férias, pedir ausências, registar despesas, deslocações e quilómetros, abrir documentos e tratar aprovações, sempre com as permissões que essa pessoa tem na app.
https://api.selfcare.work/mcpPara assistentes de IA: esta página também existe em Markdown.
Resumo
- URL do servidor
https://api.selfcare.work/mcp- Transporte
- Streamable HTTP sem estado: cada pedido é um POST com JSON-RPC.
- Autenticação
- OAuth 2.1 com PKCE (S256), com o utilizador da pessoa. Não há token fixo partilhado.
- Servidor de autorização
https://api.selfcare.work- Registo do cliente
- Dinâmico (RFC 7591): o cliente regista-se sozinho, sem chaves para copiar.
- Preço
- Incluído em todos os planos, sem custo extra.
Como ligar
Em todos os clientes o caminho é o mesmo: adicionas o URL, entras com o teu utilizador Selfcare, escolhes a empresa e aprovas o que o assistente pode fazer. Não há token para copiar.
Claude
- Em Definições → Conectores, escolhe Adicionar conector personalizado.
- Dá-lhe um nome (Selfcare) e cola o URL https://api.selfcare.work/mcp.
- Carrega em Ligar. Abre-se o ecrã de autorização do Selfcare: entra com o teu utilizador, escolhe a empresa e confirma o que o assistente pode fazer.
Claude Code
- No terminal, acrescenta o servidor com o comando abaixo.
- Dentro do Claude Code, corre /mcp e escolhe o servidor selfcare: abre-se o browser para entrares no Selfcare e autorizares.
claude mcp add --transport http selfcare https://api.selfcare.work/mcpChatGPT
- Em Definições → Apps e conectores, ativa o modo de programador (nas definições avançadas) e escolhe Criar.
- Cola o URL https://api.selfcare.work/mcp e escolhe OAuth como autenticação.
- Confirma no ecrã de autorização do Selfcare, como no Claude.
Cursor
- Abre as definições do Cursor, secção MCP, e acrescenta o servidor ao mcp.json (do projeto ou global).
- Na primeira utilização, o Cursor abre o browser para entrares no Selfcare e autorizares.
{
"mcpServers": {
"selfcare": { "url": "https://api.selfcare.work/mcp" }
}
}Outros clientes MCP
Qualquer cliente que fale MCP por Streamable HTTP e faça OAuth 2.1 com descoberta liga-se da mesma forma:
- Configura um servidor MCP remoto com o URL https://api.selfcare.work/mcp.
- O cliente recebe o 401, lê os metadados, regista-se sozinho e abre o browser no ecrã de autorização do Selfcare.
- Entras com o teu utilizador, escolhes a empresa e aprovas os âmbitos. O ecrã avisa que se trata de um assistente de IA.
Sem OAuth: chave de API
Um cliente que não faça OAuth pode usar uma chave de API pessoal, criada em Definições → API com os âmbitos das ferramentas que vais usar. A chave é tua: guarda-a fora de repositórios e de ficheiros partilhados.
- Envia a chave no cabeçalho Authorization, como no exemplo.
{
"mcpServers": {
"selfcare": {
"url": "https://api.selfcare.work/mcp",
"headers": { "Authorization": "Bearer <a tua chave de API>" }
}
}
}Descoberta e autorização
Para quem escreve um cliente: o servidor segue a especificação de autorização do MCP. Tudo se descobre a partir do URL do servidor.
- Sem token, um pedido a https://api.selfcare.work/mcp responde 401 com o cabeçalho WWW-Authenticate, que aponta para os metadados do recurso protegido.
- Metadados do recurso protegido (RFC 9728): https://api.selfcare.work/.well-known/oauth-protected-resource/mcp. Também respondem na raiz, em https://api.selfcare.work/.well-known/oauth-protected-resource, para clientes que os procuram aí.
- Metadados do servidor de autorização (RFC 8414): https://api.selfcare.work/.well-known/oauth-authorization-server. Indicam os endpoints de autorização, token, revogação e registo.
- Registo dinâmico do cliente (RFC 7591): https://api.selfcare.work/oauth/register. Só clientes públicos, com PKCE S256 obrigatório.
- O token é emitido para o recurso https://api.selfcare.work/mcp (RFC 8707) e envia-se no cabeçalho Authorization: Bearer. Um token do MCP não serve na API REST, nem o contrário.
HTTP/2 401
WWW-Authenticate: Bearer realm="selfcare", resource_metadata="https://api.selfcare.work/.well-known/oauth-protected-resource/mcp"Âmbitos (scopes)
O cliente pede estes âmbitos e tu aprovas no ecrã de autorização. Mesmo com um âmbito, o assistente só faz o que o teu perfil permite.
| Âmbito | Para quê |
|---|---|
| me:read | Quem sou, a empresa, o papel e o resumo do dia. |
| absences:read | Ausências visíveis, saldo de férias, quem está ausente e a caixa de aprovações. |
| absences:write | Pedir e cancelar ausências. |
| absences:decide | Aprovar e rejeitar ausências. |
| expenses:read | Despesas visíveis e categorias. |
| expenses:write | Criar despesas, carregar recibos e enviar para aprovação. |
| expenses:decide | Aprovar e rejeitar despesas. |
| trips:read | Deslocações e ajudas de custo visíveis. |
| trips:write | Registar e cancelar deslocações. |
| trips:decide | Aprovar e rejeitar deslocações. |
| mileage:read | Mapas de Km's visíveis e as viaturas da pessoa. |
| mileage:write | Criar mapas, acrescentar percursos, calcular distâncias, enviar e cancelar. |
| mileage:decide | Aprovar e rejeitar mapas de km. |
| documents:read | Documentos permitidos pelo MCP e ligações temporárias para os abrir. |
| employees:read | Diretório de colaboradores e aniversários partilhados. |
O âmbito payments:write (marcar como pago ou reverter um pagamento) é sensível e fica fora dos âmbitos que um cliente MCP registado sozinho pode pedir. As ferramentas de pagar só funcionam com uma app registada em Definições → API que declare esse âmbito e com o consentimento explícito de um dono ou de RH.
Ferramentas por área
As ferramentas que o assistente vê depois de ligado, por área. Cada uma chama a API do Selfcare com o teu token e as regras da app.
Eu e resumo
get_meme:read
Utilizador, empresa, papel, ficha, equipas que lidera e âmbitos da ligação.get_my_summaryme:read
Saldo de férias, próximas ausências, decisões pendentes, documentos por ler e notificações, numa só chamada.
Ausências
get_vacation_balanceabsences:read
Saldo de férias.list_absence_typesabsences:read
Tipos de ausência da empresa.list_absencesabsences:read
Ausências visíveis.get_absenceabsences:read
Uma ausência, sem anexos como atestados.request_absenceabsences:write
Pedir férias ou outra ausência.cancel_absenceabsences:write
Cancelar um pedido, ou pedir o cancelamento de férias aprovadas.who_is_outabsences:read
Quem está ausente num dia, só com nomes e datas.list_pending_approvalsabsences:read
Pedidos à espera da decisão do utilizador (ausências, despesas e deslocações).approve_absenceabsences:decide
Aprovar uma ausência que o utilizador pode decidir.reject_absenceabsences:decide
Rejeitar uma ausência que o utilizador pode decidir.
Despesas
list_expensesexpenses:read
Despesas visíveis, com estado e data de reembolso.get_expenseexpenses:read
Uma despesa, com recibos e estado de reembolso.list_expense_categoriesexpenses:read
Categorias de despesa.create_expenseexpenses:write
Criar uma despesa em rascunho.get_expense_receipt_upload_urlexpenses:write
Obter uma ligação para carregar o recibo.add_expense_receiptexpenses:write
Confirmar o recibo carregado, com o valor.submit_expenseexpenses:write
Enviar a despesa para aprovação.approve_expenseexpenses:decide
Aprovar uma despesa.reject_expenseexpenses:decide
Rejeitar uma despesa, com uma nota para a pessoa.
Ajudas de custo (deslocações)
list_business_tripstrips:read
Deslocações visíveis, com a ajuda de custo.get_business_triptrips:read
Uma deslocação, com estado, decisão e valores.create_business_triptrips:write
Registar uma deslocação, que segue logo para aprovação.cancel_business_triptrips:write
Cancelar uma deslocação.approve_business_triptrips:decide
Aprovar uma deslocação.reject_business_triptrips:decide
Rejeitar uma deslocação, com uma nota para a pessoa.pay_business_trippayments:write
Marcar como paga (só com payments:write).revert_business_trip_paymentpayments:write
Reverter o pagamento (só com payments:write).
Mapas de Km's
list_mileage_mapsmileage:read
Mapas de km visíveis.get_mileage_mapmileage:read
Um mapa, com cada percurso e os totais.create_mileage_mapmileage:write
Abrir o mapa de um mês.add_mileage_linemileage:write
Acrescentar um percurso ao mapa.submit_mileage_mapmileage:write
Enviar o mapa para aprovação.cancel_mileage_mapmileage:write
Cancelar o mapa.approve_mileage_mapmileage:decide
Aprovar um mapa.reject_mileage_mapmileage:decide
Rejeitar um mapa, com uma nota para a pessoa.pay_mileage_mappayments:write
Marcar como pago (só com payments:write).revert_mileage_map_paymentpayments:write
Reverter o pagamento (só com payments:write).list_my_vehiclesmileage:read
Viaturas do utilizador, com a pré-definida.calculate_distancemileage:write
Calcular os km de um percurso, se a empresa tiver o serviço de mapas ligado.
Documentos
list_documentsdocuments:read
Documentos permitidos pelo MCP.get_document_linkdocuments:read
Ligação temporária (5 minutos) para abrir um documento. O acesso fica registado.
Colaboradores e equipas
search_employeesemployees:read
Pesquisar no diretório, como o utilizador o vê na app, com as equipas de cada pessoa e quem as lidera.list_teamsemployees:read
As equipas da empresa, com quem lidera cada uma e quantas pessoas tem (o líder conta uma vez).birthdaysemployees:read
Aniversários de um mês, só de quem os partilha (dia e mês).
Prompts
request_vacation
Marcar férias depois de confirmar o saldo.
Limites e regras
O MCP é mais uma porta para a mesma app, não um atalho à volta das regras dela.
O perfil da pessoa manda
O assistente age como a pessoa que autorizou a ligação, na empresa que ela escolheu. Vê e faz só o que essa pessoa vê e faz na app, com os mesmos papéis e permissões.
As aprovações são respeitadas
Cada ferramenta usa a API do Selfcare, com as regras da app: quem vê, quem decide, «Quem aprova» de cada módulo e idempotência. Um assistente nunca dá a ninguém um poder de decisão que essa pessoa não tenha na app.
Sem salários nem IBAN
Processamento salarial, contratos, remuneração e o IBAN completo nunca saem pelo MCP. Qualquer coisa com forma de IBAN é mascarada antes de sair.
Documentos só da lista permitida
Pelo MCP só se veem o regulamento interno, as políticas e os manuais da empresa e os comprovativos de despesa da própria pessoa. Recibos de vencimento, contratos, documentos de identificação, documentos de saúde, atestados e documentos disciplinares nunca saem.
Contabilistas fora
Contas com o papel de contabilista não podem usar o MCP: o ecrã de autorização recusa e o servidor responde 403.
Tudo fica registado
Cada escrita fica no registo de auditoria da empresa, marcada como vinda do MCP. A pessoa revoga o acesso em Definições → API → Apps autorizadas.
- Documentação técnica completa em api.selfcare.work/docs
- A API REST e os webhooks em API e integrações
Perguntas frequentes
Preciso de uma chave ou de um token para ligar o assistente?+
Não. O cliente MCP regista-se sozinho e abre o ecrã de autorização do Selfcare, onde entras com o teu utilizador. A chave de API é só para clientes que não fazem OAuth.
O assistente vê os dados de toda a empresa?+
Vê o mesmo que tu vês na app, e nada mais: o teu papel e as tuas permissões valem também para o assistente.
O assistente pode ver salários?+
Não. Processamento salarial, contratos, remuneração e IBAN completo nunca saem pelo MCP.
Como desligo o assistente?+
Em Definições → API → Apps autorizadas, revoga a ligação do assistente.
Tem custo?+
Não. O servidor MCP está incluído em todos os planos, tal como a API e os webhooks.
Ainda não usas o Selfcare?
Vê como funciona numa demonstração: férias, despesas, documentos e salários, também a partir do teu assistente de IA.