{"protocolVersion":"2026-07-28","supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18"],"surfaceVersion":"2.3.0","serverInfo":{"name":"exchek-api","version":"2.3.0"},"transport":"streamable-http","stateless":true,"regulatory_status":{"as_of":"2026-09-12","affiliates_rule":"suspended","affiliates_snapback":"2026-11-10","days_until_affiliates_snapback":59,"suppressor_transfer":"pending","suppressor_effective":"2026-11-20","banner":"Affiliates Rule (Entity List/MEU 50% ownership): SUSPENDED through 2026-11-09; snap-back 2026-11-10 (59d) unless extended. §29 ownership diligence + OFAC 50% still apply. Suppressor USML→EAR transfer effective 2026-11-20 (ECCNs 0A501.f / 0A502.f). AI Diffusion Rule rescinded (May 2025) — do not apply tiers; use live eCFR for advanced computing. UAE is A:5 (confirm live). Always call get_regulatory_status or re-pull eCFR before hardcoding destinations/rules.","tool":"get_regulatory_status"},"endpoint":"https://api.exchek.us/mcp","authenticatedEndpoint":"https://api.exchek.us/mcp","methods":["server/discover","tools/list","tools/call","resources/list","resources/templates/list","resources/read","initialize","ping"],"headers":{"required_for_2026_07_28":["MCP-Protocol-Version","Mcp-Method"],"required_for_tools_call":["Mcp-Name"],"note":"2026-07-28 clients MUST send MCP-Protocol-Version: 2026-07-28 and Mcp-Method; tools/call also needs Mcp-Name. 2025 clients may omit these headers and use initialize."},"auth":{"required":true,"methods":["oauth","bearer"],"authorization_servers":["https://app.exchek.us"],"resource_metadata":"https://api.exchek.us/.well-known/oauth-protected-resource/mcp","note":"POST /mcp requires Authorization: Bearer exo_… (OAuth) or exk_live_…. Free regulatory tools still free after sign-in; paid tools use credits/plan."},"capabilities":{"tools":["list_skills","get_skill","get_skill_bundle","get_ecfr_part","get_ecfr_sections","search_ecfr_part","search_ecfr_title","get_ecfr_text","get_eccn","get_country_chart_row","get_regulatory_status","search_csl","get_rule_changes","get_enforcement_actions","search_enforcement_documents","get_enforcement_document","search_federal_register","get_federal_register_document","search_sec_edgar","search_ecfr","search_govinfo","search_regulations"],"resources":146,"resourceTemplates":4},"tools":[{"name":"list_skills","version":"1.0","deprecated":false,"description":"List all ExChek skills with name, description, and upstream repo links. Free, no auth. Returns JSON."},{"name":"get_skill","version":"1.0","deprecated":false,"description":"Fetch the full SKILL.md (markdown) for a named ExChek skill. The SKILL.md contains the entry flow, CUI gate, references list, and the report template path. Load"},{"name":"get_skill_bundle","version":"1.0","deprecated":false,"description":"Fetch SKILL.md plus every template, reference, and prompt file for a named skill in one JSON payload. Use when you want the complete skill package without N rou"},{"name":"get_ecfr_part","version":"1.0","deprecated":false,"description":"Fetch the hierarchical STRUCTURE (subparts, sections, headings) of a supported CFR part as JSON — an outline, NOT the regulatory text. To read the full text of "},{"name":"get_ecfr_sections","version":"1.0","deprecated":false,"description":"List all sections within a CFR part as a flat array of {identifier, label} — section numbers and titles only, NOT the text. Fetch a section's full text with get"},{"name":"search_ecfr_part","version":"1.0","deprecated":false,"description":"Full-text search within one CFR part via the eCFR Search API. Returns ranked hits with section refs and short excerpts (NOT full text) — to read the full text o"},{"name":"search_ecfr_title","version":"1.0","deprecated":false,"description":"Full-text search across an entire CFR title (15 EAR or 22 ITAR). Returns ranked hits (part + section + short excerpts, NOT full text) — to read the full text of"},{"name":"get_ecfr_text","version":"1.0","deprecated":false,"description":"Fetch the FULL text of a single CFR section (e.g. 740.17, 734.13) as clean readable text — the actual regulatory control text, not just structure, headings, or "},{"name":"get_eccn","version":"1.0","deprecated":false,"description":"Fetch the full control entry for a single ECCN from the Commerce Control List (Supplement No. 1 to Part 774) as clean readable text — License Requirements, Reas"},{"name":"get_country_chart_row","version":"1.0","deprecated":false,"description":"Look up a destination on the Commerce Country Chart (15 CFR Part 738 Supp. No. 1) and Country Groups (Part 740 Supp. No. 1). Live eCFR text with best-effort row"},{"name":"get_regulatory_status","version":"1.0","deprecated":false,"description":"Current ExChek product regulatory status: BIS Affiliates Rule (suspended vs in force + snap-back date), suppressor USML→EAR transfer, AI Diffusion rescission no"},{"name":"search_csl","version":"1.0","deprecated":false,"description":"Screen a party or entity name against the U.S. Consolidated Screening List (CSL) — denied/restricted-party lists (BIS Entity List, Denied Persons, Unverified; O"},{"name":"get_rule_changes","version":"1.0","deprecated":false,"description":"Recent export-control rulemaking from the Federal Register: final and proposed rules from BIS (EAR), DDTC/State (ITAR), and OFAC (sanctions), newest first, with"},{"name":"get_enforcement_actions","version":"1.0","deprecated":false,"description":"Recent U.S. export-control enforcement actions from public sources: BIS denial/settlement orders and DDTC ITAR notices (Federal Register), DOJ National Security"},{"name":"search_enforcement_documents","version":"1.0","deprecated":false,"description":"Keyword search over ExChek's enforcement PDF datalake (~1100 BIS administrative export-violation orders from bis.gov/enforcement/export-violations, plus DDTC/DO"},{"name":"get_enforcement_document","version":"1.0","deprecated":false,"description":"Fetch one enforcement datalake document by id (from search_enforcement_documents). Returns metadata plus file_url (HTTPS PDF agents/users can open, e.g. https:/"},{"name":"search_federal_register","version":"1.0","deprecated":false,"description":"Full-text search of the Federal Register — every published rule, proposed rule, notice, and presidential document (the general FR search primitive, distinct fro"},{"name":"get_federal_register_document","version":"1.0","deprecated":false,"description":"Fetch one Federal Register document by its document_number — full metadata plus its plain-text body (truncated to ~40k chars). Use after search_federal_register"},{"name":"search_sec_edgar","version":"1.0","deprecated":false,"description":"SEC EDGAR full-text search across public company filings — surfaces companies self-disclosing export-control, sanctions, or enforcement issues in their filings."},{"name":"search_ecfr","version":"1.0","deprecated":false,"description":"Global cross-title full-text search of the eCFR — the discovery search across the entire Code of Federal Regulations (distinct from the scoped search_ecfr_part "},{"name":"search_govinfo","version":"1.0","deprecated":false,"description":"GovInfo full-text search across Federal Register, CFR, US Code, federal court opinions (USCOURTS), bills, and public laws. Free, no auth. Optionally scope to on"},{"name":"search_regulations","version":"1.0","deprecated":false,"description":"Search Regulations.gov for rulemaking dockets and public comments. Free, no auth. Returns { query, count, results:[{id, title, agencyId, documentType, frDocNum,"}],"enterprise":{"note":"Enterprise capabilities — audit-ready PDF classification memoranda, denied-party screening registry, compliance-pipeline tracking, and per-account regulatory notes — are available after authentication. Their tool definitions and payload schemas are disclosed via tools/list on /mcp.","authenticate":"https://api.exchek.us/mcp","docs":"https://docs.exchek.us/docs/api-reference","contact":"matt@exchek.us"},"pagination":{"cursor":"search_ecfr_part and search_ecfr_title return an opaque meta.nextCursor. Pass it back verbatim in the `cursor` argument to fetch the next page; a null cursor means no more pages."},"conventions":{"errors":"MCP uses JSON-RPC 2.0 error envelopes; the REST surface uses application/problem+json (RFC 7807).","requestId":"Every HTTP response carries X-Request-Id — quote it in support requests.","rateLimit":"Anonymous REST reads: 120 req/60s per IP. MCP requires auth; regulatory tools free, paid tools credit-metered.","progress":"Request/response transport (no server-initiated stream); long ops return on completion rather than emitting progress notifications.","cache":"tools/list, resources/list, resources/templates/list, and resources/read return ttlMs + cacheScope (SEP-2549). List tools are sorted deterministically.","resultType":"Every result includes resultType: \"complete\" (or \"input_required\" if MRTR is ever used)."},"examples":[{"kind":"discover","method":"server/discover","headers":{"MCP-Protocol-Version":"2026-07-28","Mcp-Method":"server/discover"},"note":"Preferred first call for 2026 clients. Returns supportedVersions + capabilities."},{"kind":"tool","method":"tools/call","name":"search_ecfr_part","headers":{"MCP-Protocol-Version":"2026-07-28","Mcp-Method":"tools/call","Mcp-Name":"search_ecfr_part"},"arguments":{"part":774,"query":"laser","per_page":5},"note":"Returns ranked hits + meta.nextCursor; call again with { cursor } for the next page."},{"kind":"tool","method":"tools/call","name":"get_rule_changes","arguments":{"eccn":"5A002","limit":10}},{"kind":"resource","method":"resources/read","uri":"exchek://skills/exchek-csl","note":"Full Consolidated Screening List skill flow as markdown."}],"changelog":"https://docs.exchek.us/docs/api-changelog","docs":"https://docs.exchek.us/docs/api-reference","spec":"https://modelcontextprotocol.io/specification/2026-07-28"}