Sentinel Signal MCP
Herramientas de agente a través de MCP para puntuación de flujos de trabajo, límites/uso y retroalimentación (clave de prueba compatible)
Documentación
Sentinel Signal MCP para Puntuación de Reclamaciones de Salud
Acceso MCP alojado y local para el flujo de trabajo de puntuación de reclamaciones de salud, uso, límites y retroalimentación.
Alojado Primero
- Endpoint MCP remoto alojado:
https://mcp.sentinelsignal.io/mcp - Listado en Smithery:
@sentinelsignal/scoring(https://server.smithery.ai/sentinelsignal/scoring) - Clave de prueba gratuita sin registro:
POST https://token.sentinelsignal.io/v1/keys/trial - Paquete local:
uvx sentinel-signal-mcp
Inicio Rápido (10 líneas)
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 alojado (HTTP Streamable): https://mcp.sentinelsignal.io/mcp
Listado alojado en Smithery: @sentinelsignal/scoring (https://server.smithery.ai/sentinelsignal/scoring)
Si tu cliente MCP admite MCP HTTP remoto, apúntalo a esa URL y envía Authorization: Bearer <SENTINEL_API_KEY>. Para conexiones alojadas en Smithery, la clave se reenvía como x-sentinel-api-key.
Claude Desktop (configuración MCP integrable)
{
"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 (misma forma de configuración 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"
}
}
}
}
Windsurf puede usar la misma forma de bloque mcpServers.
Este paquete proporciona un servidor MCP stdio local, mientras que el servicio remoto alojado expone las mismas herramientas de reclamaciones de salud a través de HTTP Streamable. Admite cualquiera de las siguientes opciones:
PyPI: https://pypi.org/project/sentinel-signal-mcp/
- un
SENTINEL_API_KEYproporcionado por el usuario, o - acuñación automática de clave de prueba sin registro (
POST /v1/keys/trial) con almacenamiento seguro de credenciales local
Habilidades (Herramientas MCP)
list_workflows— lista los flujos de trabajo admitidos y las versiones de modelo actualesget_workflow_schema— obtiene campos obligatorios, campos opcionales y un ejemplo de carga útil para un flujo de trabajovalidate_workflow_payload— valida y normaliza una carga útil de flujo de trabajo antes de puntuarscore_workflow— puntúa riesgo de denegación, autorización previa y cargas útiles de reembolso contra un flujo de trabajo nombradoscore_batch— puntúa hasta 25 elementos de flujo de trabajo en una sola solicitudget_limits— recupera los límites del plan para la clave actualget_usage— recupera el uso de un mes determinadosubmit_feedback— envía retroalimentación estructurada de resultados
Inicio rápido (uvx)
- Instala
uv(si es necesario): https://docs.astral.sh/uv/ - Establece variables de entorno (
SENTINEL_API_KEYopcional; si se omite, el servidor acuña automáticamente una clave de prueba y la almacena en caché):
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
- Ejecuta el servidor MCP:
uvx sentinel-signal-mcp
Comportamiento esperado: instalar herramienta -> (opcionalmente establecer variables de entorno) -> el agente puede llamar a score_workflow.
Si no hay una clave API configurada, el servidor MCP resuelve las credenciales en este orden:
- Variable de entorno
SENTINEL_API_KEY - Clave de prueba en caché (
~/.sentinel/credentials.jsonpor defecto) si no ha expirado y las URL base coinciden - Acuñar una nueva clave de prueba desde
POST {SENTINEL_TOKEN_BASE_URL}/v1/keys/trial
Desactiva la prueba automática con SENTINEL_NO_TRIAL=1.
Fragmentos de configuración del cliente MCP
Claude Desktop (ejemplo macOS/Linux)
Agrega esto a tu JSON de configuración MCP (sección 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
Si tu cliente acepta una definición de comando + argumentos + entorno:
- comando:
uvx - argumentos:
["sentinel-signal-mcp"] - entorno:
SENTINEL_API_KEYopcional (si se omite, se usa la acuñación automática de prueba a menos que esté deshabilitada)SENTINEL_BASE_URLopcionalSENTINEL_TOKEN_BASE_URLopcionalSENTINEL_CREDENTIALS_PATHopcionalSENTINEL_NO_TRIAL=1opcionalSENTINEL_TIMEOUT_SECONDSopcional
Detalles de las herramientas
list_workflows
Llama a GET /v1/workflows para que los agentes puedan descubrir los flujos de trabajo de salud admitidos y las versiones de modelo actuales antes de puntuar.
Sin argumentos.
get_workflow_schema
Llama a GET /v1/workflows/{workflow}/schema para que los agentes puedan obtener campos obligatorios, campos opcionales, enumeraciones y ejemplos de cargas útiles antes de emitir una puntuación.
Argumentos:
workflow(str): ID de flujo de trabajo comohealthcare.denial
validate_workflow_payload
Llama a POST /v1/workflows/{workflow}/validate y devuelve la salida de carga útil normalizada más problemas de validación estructurados sin consumir una llamada de puntuación.
Argumentos:
workflow(str): ID de flujo de trabajo comohealthcare.denialpayload(object): objeto de carga útil de flujo de trabajo a validar
score_workflow
Llama al endpoint de puntuación unificada de Sentinel Signal (POST /v1/score).
Argumentos:
workflow(str): ID de flujo de trabajo (por ejemplohealthcare.denial,healthcare.prior_auth,healthcare.reimbursement)payload(object): objeto de carga útil de flujo de trabajooptions(object, opcional): objeto de opciones de puntuación
Ejemplo de entrada de llamada a herramienta 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
Llama a GET /v1/limits para la clave API actual.
Sin argumentos.
get_usage
Llama a GET /v1/usage.
Argumentos:
month(str, opcional): filtro de mes (por ejemplo2026-02)
score_batch
Llama a POST /v1/score/batch para puntuar hasta 25 elementos de flujo de trabajo secuencialmente en una sola solicitud.
Argumentos:
items(array): lista de elementos de puntuación{workflow, payload, options?}continue_on_error(bool, opcional): si los elementos posteriores deben continuar si un elemento anterior falla
submit_feedback
Llama a POST /v1/feedback con una carga útil de retroalimentación estructurada.
Argumentos:
feedback(object): objetoFeedbackRequestsin procesar
Ejemplo 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."
}
}
Almacenamiento en caché de clave de prueba (modo de acuñación automática)
Ruta de caché predeterminada:
~/.sentinel/credentials.json(permisos0600)
La carga útil en caché incluye la clave de prueba más metadatos utilizados por el agente/entorno de ejecución:
{
"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"
}
El servidor MCP almacena ambas URL base en la caché para no reutilizar accidentalmente una clave de prueba en diferentes entornos.
Restablece las credenciales en caché (fuerza una nueva clave de prueba en la próxima ejecución):
uvx sentinel-signal-mcp --reset-credentials
Variables de entorno
SENTINEL_BASE_URL(opcional, predeterminadohttps://api.sentinelsignal.io): URL base de la API de puntuaciónSENTINEL_TOKEN_BASE_URL(opcional, predeterminadohttps://token.sentinelsignal.io): URL base del servicio de tokens utilizada para la acuñación de claves de pruebaSENTINEL_API_KEY(opcional): si se establece, se usa directamente y nunca se almacena en cachéSENTINEL_CREDENTIALS_PATH(opcional, predeterminado~/.sentinel/credentials.json)SENTINEL_NO_TRIAL(opcional): establece en1para deshabilitar la acuñación automática de pruebaSENTINEL_TIMEOUT_SECONDS(opcional, predeterminado30)SENTINEL_API_BASE_URL(alias heredado paraSENTINEL_BASE_URL)
Comportamiento de errores para agentes
Las herramientas MCP devuelven cargas útiles estructuradas tanto para el éxito como para fallos operativos comunes:
-
éxito ->
{"ok": true, ...} -
cuota agotada / pago requerido (
402) ->{"ok": false, "error": {"action": "upgrade_required", "upgrade_url": "...", ...}} -
límite de velocidad (
429) ->{"ok": false, "error": {"action": "retry_later", ...}} -
problemas de autenticación/configuración (
401/403o credenciales faltantes) ->{"ok": false, "error": {"action": "configure_credentials", ...}}
Publicación (ruta Python / uvx)
Este paquete está configurado para publicación en PyPI para que los usuarios puedan ejecutarlo con:
uvx sentinel-signal-mcp
Comandos típicos de lanzamiento:
python -m build
python -m twine upload dist/*
Notas de seguridad
- No confirmes claves API reales ni cargas útiles de clientes.
- Usa valores de marcador de posición en configuraciones de cliente y ejemplos.
- Las credenciales de prueba acuñadas automáticamente se almacenan en caché localmente con permisos de archivo
0600. - Usa
SENTINEL_CREDENTIALS_PATH=/tmp/...para entornos efímeros si no deseas una caché persistente.