ai.licensy/mcp-server
Official9 toolsLicensy
Real-time U.S. medical license verification across all 50 states + DC.
Verify U.S. medical licenses in real-time across all 50 states and DC.
Captured live from the server via tools/list.
verify_license
Verify a U.S. physician's medical license status in a specific state. Returns current status (active/expired/suspended/etc.), expiration date, and a confidence indicator. Use this when: - Confirming a physician is currently licensed before scheduling care - Validating credentials during onboarding or recredentialing - Answering 'is Dr. X licensed in [state]?' questions Do NOT use this for: - Bulk verification of >1 NPI — use bulk_verify instead (paid tier) - Historical 'was this physician licensed on date X' — use get_license_history instead (paid tier) Input: NPI (preferred) OR (license_number + state), plus state. State accepts either 2-letter code ('CA') or full name ('California'). Output: status, state, expiration_date, license_active. Paid tiers additionally receive license_number, issuance_date, board_source, last_refreshed_at, screenshot_url for audit-grade primary-source verification. Data is sourced directly from state medical boards and refreshed every 24 hours. Licensy covers all 50 states + DC.
Parameters (1)
- inpobjectrequired
list_physician_licenses
List all U.S. medical licenses Licensy has on file for a single physician (by NPI), one per state. Each entry shows current status and expiration date. Use this when: - Surveying a physician's multi-state license portfolio - Recredentialing across multiple states at once - Checking which states a physician is licensed in Do NOT use this for: - A single-state yes/no — use get_license_status (cheaper) - Bulk verification across multiple NPIs — use bulk_verify Input: NPI (10 digits). Optional include_inactive flag (default false). Output: array of {status, state, expiration_date, license_active}. Free tier returns these summary fields. Paid tier callers receive the full license record per state.
Parameters (1)
- inpobjectrequired
get_license_status
Return only the license status string for a single physician in a single state. The minimal-output companion to verify_license: optimized for agents that need only a yes/no decision and want to minimize tokens in the LLM context. Use this when: - You need a one-word answer for routing logic (active vs anything else) - You're checking a license inside a tight inner loop - You want to minimize tokens spent on auxiliary fields Use verify_license instead when you need expiration date, license_active boolean, or any other field. Input: NPI (10 digits), state. Output: a single status from the controlled vocabulary: active | expired | lapsed | inactive | suspended | revoked | surrendered | pending | not_found.
Parameters (1)
- inpobjectrequired
get_screenshot_url
Return an audit-grade screenshot of the state medical board page used to verify a physician's license. The URL is signed and valid for 15 minutes. Use this when: - You need primary-source evidence for an audit, credentialing file, or insurance contract - The end user asks 'where did this come from?' - You're generating a credentialing PDF that needs proof attachments Identify the license by: NPI + state, OR by `license_id` if you already fetched it via verify_license / list_physician_licenses. Free-tier callers receive a structured tier_upgrade_required response. Paid tier (Pro / Enterprise) only.
Parameters (1)
- inpobjectrequired
bulk_verify
Verify medical licenses for many (NPI, state) pairs in a single call. Returns one result per input, in input order. Use this instead of calling verify_license in a loop — bulk_verify parallelises server-side, returns faster, and is billed as a single call. Limits: Pro tier max 100 pairs per call; Enterprise max 1000. Use this when: - Initial roster ingestion for a credentialing project - Quarterly recredentialing audit of a multi-state group - Pre-call verification of a physician list before scheduling Paid tier only (Pro or Enterprise).
Parameters (1)
- inpobjectrequired
search_disciplinary_actions
Search for known disciplinary actions against a physician (suspension, revocation, surrender, probation). Sourced from state medical board status text. Use this when: - Pre-employment screening - Recredentialing — required by most insurance contracts - Investigating a referral source Input: NPI (preferred) OR full name. Optional state filter. Output: array of {state, action_type, date, source_url}. Action types: suspension | revocation | surrender | probation | reprimand | other. Coverage note: this surfaces board-status-level signal. Underlying PDF documents are on the roadmap. Paid tier only (Pro or Enterprise).
Parameters (1)
- inpobjectrequired
get_license_history
Return a physician's license status as it was on a specific past date (point-in-time / retroactive lookup). Use this when: - Insurance company asks 'was this physician licensed when they treated patient X on 2024-08-12?' - Legal discovery for a malpractice case - Retroactive credentialing audit Input: NPI + state + as_of_date (ISO 8601). Coverage caveat: full append-only license history is on the roadmap. v1 returns best-available data and a `coverage_start` date marking the earliest reliable point-in-time queries. Paid tier only (Pro or Enterprise).
Parameters (1)
- inpobjectrequired
subscribe_to_changes
Subscribe a webhook URL to license-change events for one or more NPIs. Licensy POSTs a signed JSON payload to your URL when a subscribed event fires. Events: status_change — license status changes (active → expired, etc.) expiration_warning_60d — license expires in 60 days new_disciplinary_action — new sanction added Status: webhook delivery is on the roadmap. This tool records the subscription intent today; deliveries will begin once the dispatcher ships. Paid tier only (Pro or Enterprise).
Parameters (1)
- inpobjectrequired
unsubscribe
Cancel a webhook subscription you previously created via subscribe_to_changes. Paid tier only (Pro or Enterprise). Use this when the agent's workflow that wanted the events has completed, or the customer wants to stop receiving change-notifications for a set of NPIs. Input: subscription_id (string, returned from subscribe_to_changes). Output: {success: true} on cancellation. Idempotent — repeat calls with the same id return success without error.
Parameters (1)
- inpobjectrequired
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.licensy.ai/mcp"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.