Sentinel Signal MCP
Ferramentas de agente via MCP para pontuação de fluxo de trabalho, limites/uso e feedback (chave de teste suportada)
Documentação
Sentinel Signal MCP para Pontuação de Reivindicações de Saúde
Acesso MCP hospedado e local para pontuação de fluxos de trabalho de reivindicações de saúde, uso, limites e feedback.
Hospedado Primeiro
- Endpoint MCP remoto hospedado:
https://mcp.sentinelsignal.io/mcp - Listagem Smithery:
@sentinelsignal/scoring(https://server.smithery.ai/sentinelsignal/scoring) - Chave de teste gratuita sem cadastro:
POST https://token.sentinelsignal.io/v1/keys/trial - Pacote local:
uvx sentinel-signal-mcp
Início Rápido (10 linhas)
uvx sentinel-signal-mcp
export SENTINEL_BASE_URL="https://api.sentinelsignal.io"
export SENTINEL_TOKEN_BASE_URL="https://token.sentinelsignal.io"
# Optional: export SENTINEL_API_KEY="ss_live_or_test_api_key_here"
# If omitted, the MCP server auto-mints a trial key
Endpoint MCP remoto hospedado (HTTP Streamable): https://mcp.sentinelsignal.io/mcp
Listagem hospedada Smithery: @sentinelsignal/scoring (https://server.smithery.ai/sentinelsignal/scoring)
Se o seu cliente MCP suporta MCP HTTP remoto, aponte para essa URL e envie Authorization: Bearer <SENTINEL_API_KEY>. Para conexões hospedadas via Smithery, a chave é encaminhada como x-sentinel-api-key.
Claude Desktop (config MCP plug-and-play)
{
"mcpServers": {
"sentinel-signal": {
"command": "uvx",
"args": ["sentinel-signal-mcp"],
"env": {
"SENTINEL_BASE_URL": "https://api.sentinelsignal.io",
"SENTINEL_TOKEN_BASE_URL": "https://token.sentinelsignal.io"
}
}
}
}
Cursor (mesmo formato de config MCP)
{
"mcpServers": {
"sentinel-signal": {
"command": "uvx",
"args": ["sentinel-signal-mcp"],
"env": {
"SENTINEL_BASE_URL": "https://api.sentinelsignal.io",
"SENTINEL_TOKEN_BASE_URL": "https://token.sentinelsignal.io"
}
}
}
}
O Windsurf pode usar o mesmo formato de bloco mcpServers.
Este pacote fornece um servidor MCP stdio local, enquanto o serviço remoto hospedado expõe as mesmas ferramentas de reivindicações de saúde via HTTP Streamable. Ele suporta:
PyPI: https://pypi.org/project/sentinel-signal-mcp/
- uma
SENTINEL_API_KEYfornecida pelo usuário, ou - emissão automática de chave de teste sem cadastro (
POST /v1/keys/trial) com cache seguro de credenciais local
Habilidades (Ferramentas MCP)
list_workflows— lista fluxos de trabalho suportados e versões atuais dos modelosget_workflow_schema— busca campos obrigatórios, campos opcionais e um exemplo de payload para um fluxo de trabalhovalidate_workflow_payload— valida e normaliza um payload de fluxo de trabalho antes da pontuaçãoscore_workflow— pontua risco de negação, autorização prévia e payloads de reembolso contra um fluxo de trabalho nomeadoscore_batch— pontua até 25 itens de fluxo de trabalho em uma única solicitaçãoget_limits— recupera limites do plano para a chave atualget_usage— recupera uso de um mês específicosubmit_feedback— envia feedback estruturado de resultados
Início rápido (uvx)
- Instale
uv(se necessário): https://docs.astral.sh/uv/ - Defina variáveis de ambiente (
SENTINEL_API_KEYopcional; se omitido, o servidor emite automaticamente uma chave de teste e a armazena em cache):
export SENTINEL_BASE_URL="https://api.sentinelsignal.io" # optional (default shown)
export SENTINEL_TOKEN_BASE_URL="https://token.sentinelsignal.io" # optional (default shown)
# export SENTINEL_API_KEY="ss_live_or_test_api_key_here" # optional
export SENTINEL_TIMEOUT_SECONDS="30" # optional
- Execute o servidor MCP:
uvx sentinel-signal-mcp
Comportamento esperado: instalar ferramenta -> (opcionalmente definir variáveis de ambiente) -> o agente pode chamar score_workflow.
Se nenhuma chave de API estiver configurada, o servidor MCP resolve as credenciais nesta ordem:
- Variável de ambiente
SENTINEL_API_KEY - Chave de teste em cache (
~/.sentinel/credentials.jsonpor padrão) se não expirada e as URLs base corresponderem - Emitir uma nova chave de teste de
POST {SENTINEL_TOKEN_BASE_URL}/v1/keys/trial
Desative o teste automático com SENTINEL_NO_TRIAL=1.
Trechos de configuração do cliente MCP
Claude Desktop (exemplo macOS/Linux)
Adicione isto ao seu JSON de configuração MCP (seção mcpServers):
{
"mcpServers": {
"sentinel-signal": {
"command": "uvx",
"args": ["sentinel-signal-mcp"],
"env": {
"SENTINEL_BASE_URL": "https://api.sentinelsignal.io",
"SENTINEL_TOKEN_BASE_URL": "https://token.sentinelsignal.io",
"SENTINEL_API_KEY": "ss_live_or_test_api_key_here",
"SENTINEL_TIMEOUT_SECONDS": "30"
}
}
}
}
Cliente MCP stdio genérico
Se o seu cliente aceita uma definição de comando + argumentos + env:
- comando:
uvx - argumentos:
["sentinel-signal-mcp"] - env:
SENTINEL_API_KEYopcional (se omitido, a emissão automática de teste é usada, a menos que desativada)SENTINEL_BASE_URLopcionalSENTINEL_TOKEN_BASE_URLopcionalSENTINEL_CREDENTIALS_PATHopcionalSENTINEL_NO_TRIAL=1opcionalSENTINEL_TIMEOUT_SECONDSopcional
Detalhes das ferramentas
list_workflows
Chama GET /v1/workflows para que os agentes possam descobrir os fluxos de trabalho de saúde suportados e as versões atuais dos modelos antes da pontuação.
Sem argumentos.
get_workflow_schema
Chama GET /v1/workflows/{workflow}/schema para que os agentes possam buscar campos obrigatórios, campos opcionais, enums e exemplos de payload antes de emitir uma pontuação.
Argumentos:
workflow(str): ID do fluxo de trabalho, comohealthcare.denial
validate_workflow_payload
Chama POST /v1/workflows/{workflow}/validate e retorna a saída do payload normalizado mais problemas de validação estruturados sem consumir uma chamada de pontuação.
Argumentos:
workflow(str): ID do fluxo de trabalho, comohealthcare.denialpayload(object): objeto de payload do fluxo de trabalho para validar
score_workflow
Chama o endpoint unificado de pontuação do Sentinel Signal (POST /v1/score).
Argumentos:
workflow(str): ID do fluxo de trabalho (por exemplo,healthcare.denial,healthcare.prior_auth,healthcare.reimbursement)payload(object): objeto de payload do fluxo de trabalhooptions(object, opcional): objeto de opções de pontuação
Exemplo de entrada de chamada de ferramenta MCP:
{
"workflow": "healthcare.denial",
"payload": {
"payer_id": 44,
"provider_id": 1021,
"patient_id": "PT_DEMO_001",
"patient_age": 57,
"patient_sex": "F",
"cpt_code": "99214",
"icd10_code": "M5450",
"service_date": "2026-02-13",
"place_of_service": "11",
"units": 1,
"billed_amount": 210.0,
"allowed_amount": 145.0,
"claim_frequency_code": "1",
"network_status": "in_network",
"prior_authorization_required": true,
"prior_authorization_on_file": false,
"referral_on_file": false,
"is_emergency": false,
"modifier_1": "25",
"submission_channel": "edi",
"data_source": "api"
},
"options": {
"allow_fallback": true,
"distribution_profile": "commercial_beta",
"operating_point": "high_recall"
}
}
get_limits
Chama GET /v1/limits para a chave de API atual.
Sem argumentos.
get_usage
Chama GET /v1/usage.
Argumentos:
month(str, opcional): filtro de mês (por exemplo,2026-02)
score_batch
Chama POST /v1/score/batch para pontuar até 25 itens de fluxo de trabalho sequencialmente em uma única solicitação.
Argumentos:
items(array): lista de itens de pontuação{workflow, payload, options?}continue_on_error(bool, opcional): se itens posteriores devem continuar se um item anterior falhar
submit_feedback
Chama POST /v1/feedback com um payload de feedback estruturado.
Argumentos:
feedback(object): objetoFeedbackRequestbruto
Exemplo de entrada:
{
"feedback": {
"request_id": "00000000-0000-0000-0000-000000000001",
"endpoint": "denial",
"observed_outcome": "denied",
"expected_outcome": "paid",
"confidence_mismatch": true,
"payer_id": 44,
"cpt": "99214",
"denial_reason_code": "AUTH_MISSING",
"severity": "med",
"days_to_outcome": 12,
"notes": "Example feedback payload for agent integration testing."
}
}
Cache de chave de teste (modo de emissão automática)
Caminho de cache padrão:
~/.sentinel/credentials.json(permissões0600)
O payload em cache inclui a chave de teste mais metadados usados pelo agente/ambiente de execução:
{
"api_key": "ss_trial_...",
"account_id": "uuid",
"expires_at": "2026-03-10T00:00:00Z",
"limits": {
"monthly_quota": 1000,
"rps": 1,
"burst": 5
},
"upgrade_url": "https://sentinelsignal.io/portal/dashboard",
"token_base_url": "https://token.sentinelsignal.io",
"api_base_url": "https://api.sentinelsignal.io"
}
O servidor MCP armazena ambas as URLs base no cache para não reutilizar acidentalmente uma chave de teste em diferentes ambientes.
Redefina as credenciais em cache (força uma nova chave de teste na próxima execução):
uvx sentinel-signal-mcp --reset-credentials
Variáveis de ambiente
SENTINEL_BASE_URL(opcional, padrãohttps://api.sentinelsignal.io): URL base da API de pontuaçãoSENTINEL_TOKEN_BASE_URL(opcional, padrãohttps://token.sentinelsignal.io): URL base do serviço de token usado para emissão de chave de testeSENTINEL_API_KEY(opcional): se definido, usado diretamente e nunca armazenado em cacheSENTINEL_CREDENTIALS_PATH(opcional, padrão~/.sentinel/credentials.json)SENTINEL_NO_TRIAL(opcional): defina como1para desativar a emissão automática de testeSENTINEL_TIMEOUT_SECONDS(opcional, padrão30)SENTINEL_API_BASE_URL(alias legado paraSENTINEL_BASE_URL)
Comportamento de erro para agentes
As ferramentas MCP retornam payloads estruturados tanto para sucesso quanto para falhas operacionais comuns:
-
sucesso ->
{"ok": true, ...} -
cota esgotada / pagamento necessário (
402) ->{"ok": false, "error": {"action": "upgrade_required", "upgrade_url": "...", ...}} -
limite de taxa (
429) ->{"ok": false, "error": {"action": "retry_later", ...}} -
problemas de autenticação/configuração (
401/403ou credenciais ausentes) ->{"ok": false, "error": {"action": "configure_credentials", ...}}
Publicação (caminho Python / uvx)
Este pacote está configurado para publicação no PyPI para que os usuários possam executá-lo com:
uvx sentinel-signal-mcp
Comandos típicos de lançamento:
python -m build
python -m twine upload dist/*
Notas de segurança
- Não envie chaves de API reais ou payloads de clientes.
- Use valores de espaço reservado em configurações de cliente e exemplos.
- Credenciais de teste emitidas automaticamente são armazenadas em cache localmente com permissões de arquivo
0600. - Use
SENTINEL_CREDENTIALS_PATH=/tmp/...para ambientes efêmeros se você não quiser um cache persistente.