io.sentinelsignal/scoring
效率与工作流by sentinelsignal
托管式 MCP,支持 denial、prior auth、reimbursement、工作流校验、批量评分与反馈处理。
什么是 io.sentinelsignal/scoring?
托管式 MCP,支持 denial、prior auth、reimbursement、工作流校验、批量评分与反馈处理。
README
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.
常见问题
io.sentinelsignal/scoring 是什么?
托管式 MCP,支持 denial、prior auth、reimbursement、工作流校验、批量评分与反馈处理。
相关 Skills
技能工坊
by anthropics
覆盖 Skill 从创建到迭代优化全流程:起草能力、补测试提示、跑评测与基准方差分析,并持续改写内容和描述,提升效果与触发准确率。
✎ 技能工坊把技能从创建、迭代到评测串成闭环,方差分析加描述优化,特别适合把触发准确率打磨得更稳。
PPT处理
by anthropics
处理 .pptx 全流程:创建演示文稿、提取和解析幻灯片内容、批量修改现有文件,支持模板套用、合并拆分、备注评论与版式调整。
✎ 涉及PPTX的创建、解析、修改到合并拆分都能一站搞定,连备注、模板和评论也能处理,做演示文稿特别省心。
PDF处理
by anthropics
遇到 PDF 读写、文本表格提取、合并拆分、旋转加水印、表单填写或加解密时直接用它,也能提取图片、生成新 PDF,并把扫描件通过 OCR 变成可搜索文档。
✎ PDF杂活别再来回切工具了,文本表格提取、合并拆分到OCR识别一次搞定,连扫描件也能变可搜索。
相关 MCP Server
文件系统
编辑精选by Anthropic
Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。
✎ 这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。
by wonderwhy-er
Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。
✎ 这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。
by stickerdaniel
LinkedIn Profile and Job Scraper 是让 Claude 直接抓取 LinkedIn 个人资料、公司信息和职位详情的工具。
✎ 这个服务器解决了招聘和商业调研中手动复制粘贴 LinkedIn 数据的痛点,适合猎头或市场分析师快速获取候选人背景和公司动态。不过,LinkedIn 反爬机制频繁更新,数据稳定性需要持续维护,使用时建议搭配人工验证。