Sentinel Signal MCP
Agent tools via MCP for workflow scoring, limits/usage, and feedback (trial key supported)
Sentinel Signal MCP for Healthcare Claims Scoring
Hosted and local MCP access for healthcare claims workflow scoring, usage, limits, and feedback.
Hosted First
- Hosted remote MCP endpoint:
https://mcp.sentinelsignal.io/mcp - Smithery listing:
@sentinelsignal/scoring(https://server.smithery.ai/sentinelsignal/scoring) - Free no-signup trial key:
POST https://token.sentinelsignal.io/v1/keys/trial - Local package:
uvx sentinel-signal-mcp
Quickstart (10 lines)
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
Hosted remote MCP endpoint (Streamable HTTP): https://mcp.sentinelsignal.io/mcp
Smithery hosted listing: @sentinelsignal/scoring (https://server.smithery.ai/sentinelsignal/scoring)
If your MCP client supports remote HTTP MCP, point it at that URL and send Authorization: Bearer <SENTINEL_API_KEY>. For Smithery-hosted connections, the key is forwarded as x-sentinel-api-key.
Claude Desktop (drop-in MCP config)
{
"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 (same MCP config shape)
{
"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 can use the same mcpServers block shape.
This package provides a local stdio MCP server, while the hosted remote service exposes the same healthcare claims tools over Streamable HTTP. It supports either:
PyPI: https://pypi.org/project/sentinel-signal-mcp/
- a user-provided
SENTINEL_API_KEY, or - automatic no-signup trial key minting (
POST /v1/keys/trial) with secure local credential caching
Skills (MCP Tools)
list_workflows— list supported workflows and current model versionsget_workflow_schema— fetch required fields, optional fields, and an example payload for a workflowvalidate_workflow_payload— validate and normalize a workflow payload before scoringscore_workflow— score denial risk, prior auth, and reimbursement payloads against a named workflowscore_batch— score up to 25 workflow items in one requestget_limits— retrieve plan limits for the current keyget_usage— retrieve usage for a given monthsubmit_feedback— submit structured outcome feedback
Quick start (uvx)
- Install
uv(if needed): https://docs.astral.sh/uv/ - Set env vars (optional
SENTINEL_API_KEY; if omitted, the server auto-mints a trial key and caches it):
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
- Run the MCP server:
uvx sentinel-signal-mcp
Deliverable behavior: install tool -> (optionally set env vars) -> agent can call score_workflow.
If no API key is configured, the MCP server resolves credentials in this order:
SENTINEL_API_KEYenv var- cached trial key (
~/.sentinel/credentials.jsonby default) if not expired and base URLs match - mint a new trial key from
POST {SENTINEL_TOKEN_BASE_URL}/v1/keys/trial
Disable auto-trial with SENTINEL_NO_TRIAL=1.
MCP client config snippets
Claude Desktop (macOS/Linux example)
Add this to your MCP config JSON (mcpServers section):
{
"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"
}
}
}
}
Generic MCP stdio client
If your client accepts a command + args + env definition:
- command:
uvx - args:
["sentinel-signal-mcp"] - env:
- optional
SENTINEL_API_KEY(if omitted, auto-trial mint is used unless disabled) - optional
SENTINEL_BASE_URL - optional
SENTINEL_TOKEN_BASE_URL - optional
SENTINEL_CREDENTIALS_PATH - optional
SENTINEL_NO_TRIAL=1 - optional
SENTINEL_TIMEOUT_SECONDS
- optional
Tool details
list_workflows
Calls GET /v1/workflows so agents can discover the supported healthcare workflows and current model versions before scoring.
No arguments.
get_workflow_schema
Calls GET /v1/workflows/{workflow}/schema so agents can fetch required fields, optional fields, enums, and example payloads before issuing a score.
Arguments:
workflow(str): workflow ID such ashealthcare.denial
validate_workflow_payload
Calls POST /v1/workflows/{workflow}/validate and returns normalized payload output plus structured validation issues without consuming a scoring call.
Arguments:
workflow(str): workflow ID such ashealthcare.denialpayload(object): workflow payload object to validate
score_workflow
Calls the Sentinel Signal unified scoring endpoint (POST /v1/score).
Arguments:
workflow(str): workflow ID (for examplehealthcare.denial,healthcare.prior_auth,healthcare.reimbursement)payload(object): workflow payload objectoptions(object, optional): scoring options object
Example MCP tool call input:
{
"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
Calls GET /v1/limits for the current API key.
No arguments.
get_usage
Calls GET /v1/usage.
Arguments:
month(str, optional): month filter (for example2026-02)
score_batch
Calls POST /v1/score/batch to score up to 25 workflow items sequentially in one request.
Arguments:
items(array): list of{workflow, payload, options?}scoring itemscontinue_on_error(bool, optional): whether later items should continue if an earlier item fails
submit_feedback
Calls POST /v1/feedback with a structured feedback payload.
Arguments:
feedback(object): rawFeedbackRequestobject
Example input:
{
"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."
}
}
Trial key caching (auto-mint mode)
Default cache path:
~/.sentinel/credentials.json(permissions0600)
Cached payload includes the trial key plus metadata used by the agent/runtime:
{
"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"
}
The MCP server stores both base URLs in the cache so it does not accidentally reuse a trial key across different environments.
Reset the cached credentials (force a fresh trial key next run):
uvx sentinel-signal-mcp --reset-credentials
Environment variables
SENTINEL_BASE_URL(optional, defaulthttps://api.sentinelsignal.io): scoring API base URLSENTINEL_TOKEN_BASE_URL(optional, defaulthttps://token.sentinelsignal.io): token-service base URL used for trial key mintingSENTINEL_API_KEY(optional): if set, used directly and never cachedSENTINEL_CREDENTIALS_PATH(optional, default~/.sentinel/credentials.json)SENTINEL_NO_TRIAL(optional): set to1to disable auto-trial mintingSENTINEL_TIMEOUT_SECONDS(optional, default30)SENTINEL_API_BASE_URL(legacy alias forSENTINEL_BASE_URL)
Error behavior for agents
The MCP tools return structured payloads for both success and common operational failures:
-
success ->
{"ok": true, ...} -
quota exhausted / payment required (
402) ->{"ok": false, "error": {"action": "upgrade_required", "upgrade_url": "...", ...}} -
rate limited (
429) ->{"ok": false, "error": {"action": "retry_later", ...}} -
auth/config issues (
401/403or missing credentials) ->{"ok": false, "error": {"action": "configure_credentials", ...}}
Publishing (Python / uvx path)
This package is set up for PyPI publishing so users can run it with:
uvx sentinel-signal-mcp
Typical release commands:
python -m build
python -m twine upload dist/*
Security notes
- Do not commit real API keys or customer payloads.
- Use placeholder values in client configs and examples.
- Auto-minted trial credentials are cached locally with file permissions
0600. - Use
SENTINEL_CREDENTIALS_PATH=/tmp/...for ephemeral environments if you do not want a persistent cache.
Server Terkait
Scout Monitoring MCP
sponsorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Shackleton
Autonomous multi-agent AI framework for code execution, web browsing, file operations, and task planning with x402 payment support
Django MCP Server
A Django extension to enable AI agents to interact with Django apps through the Model Context Protocol.
PHP MCP Server
A server-side implementation of the Model Context Protocol (MCP) for PHP applications, allowing exposure of application parts as standardized MCP Tools, Resources, and Prompts.
claude-session-continuity-mcp
Zero-config session continuity for Claude Code. Auto-captures context via Claude Hooks, provides 24 tools for memory, tasks, solutions, and knowledge graph. Multilingual semantic search (94+ languages).
Remote MCP Server (Authless)
An example of a remote MCP server without authentication, deployable on Cloudflare Workers.
shadcn-vue
An AI agent that helps developers instantly create high-quality UI components for shadcn-vue.
TypeScript Migrator MCP
Migrate JavaScript files to TypeScript with customizable conversion rules.
MCP Server Creator
A meta-server for dynamically generating MCP server configurations and Python code.
uMCP (ultraMCP)
A lightweight Java framework for building MCP servers with TCP transport via mcp-java-bridge.
Context7
Provides up-to-date, version-specific documentation and code examples for libraries directly into your prompt.