Search / io.github.davidgringras/scrutica
Scrutica
R0· no sign-inAI compute infrastructure intelligence: facilities, supply chains, sovereign AI, export controls.
v0.2.0 · active · website · descriptor JSON · versions
Search / io.github.davidgringras/scrutica
R0· no sign-inAI compute infrastructure intelligence: facilities, supply chains, sovereign AI, export controls.
v0.2.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"scrutica": {
"type": "http",
"url": "https://scrutica.com/api/mcp"
}
}
}claude mcp add --transport http scrutica https://scrutica.com/api/mcp[mcp_servers.scrutica]
url = "https://scrutica.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"scrutica": {
"type": "remote",
"url": "https://scrutica.com/api/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"scrutica": {
"type": "http",
"url": "https://scrutica.com/api/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=scrutica&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc2NydXRpY2EuY29tL2FwaS9tY3AifQ%3D%3D"
}{
"servers": {
"scrutica": {
"type": "http",
"url": "https://scrutica.com/api/mcp"
}
}
}{
"mcpServers": {
"scrutica": {
"httpUrl": "https://scrutica.com/api/mcp"
}
}
}extensions:
"scrutica":
enabled: true
name: "scrutica"
type: streamable_http
uri: "https://scrutica.com/api/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length4 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations10 of 10 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: scrutica_search (destructiveHint, idempotentHint, openWorldHint); scrutica_get_company (destructiveHint, idempotentHint, openWorldHint); scrutica_entity_list_changes (destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 3,944 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes2 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagescrutica_get_supply_chainchangeddescriptionReturn supply-chain relationships for one or more organizations. direction = 'upstream' traces suppliers (who feeds this entity); 'downstream' traces customers (who depends on this entity); 'both' returns both. Each edge carries supplier_org_id, customer_org_id and data_source; product_service, category, sole-source status, share and criticality appear only where the edge's cited source states them for that pair, and attribute_withholding gives the reason for every withheld value. Collection size: 20,798 supply-chain records across all sources (snapshot 2026-09-24). Of these records, 1,924 come from a licensed layer limited to relationships between organizations already in Scrutica's records.
Return supply-chain relationships for one or more organizations. direction = 'upstream' traces suppliers (who feeds this entity); 'downstream' traces customers (who depends on this entity); 'both' returns both. Each edge carries supplier_org_id, customer_org_id and data_source; product_service, category, sole-source status, share and criticality appear only where the edge's cited source states them for that pair, and attribute_withholding gives the reason for every withheld value. Collection size: 20,798 supply-chain records across all sources (snapshot 2026-10-03). Of these records, 1,924 come from a licensed layer limited to relationships between organizations already in Scrutica's records.
scrutica_get_supply_chainchangeddescriptionReturn supply-chain relationships for one or more organizations. direction = 'upstream' traces suppliers (who feeds this entity); 'downstream' traces customers (who depends on this entity); 'both' returns both. Each edge carries supplier_org_id, customer_org_id and data_source; product_service, category, sole-source status, share and criticality appear only where the edge's cited source states them for that pair, and attribute_withholding gives the reason for every withheld value. Collection size: 20,798 supply-chain records across all sources (snapshot 2026-09-23). Of these records, 1,924 come from a licensed layer limited to relationships between entities already in the register: 41% of the vendor's rows, 83% of its top-10-ranked.
Return supply-chain relationships for one or more organizations. direction = 'upstream' traces suppliers (who feeds this entity); 'downstream' traces customers (who depends on this entity); 'both' returns both. Each edge carries supplier_org_id, customer_org_id and data_source; product_service, category, sole-source status, share and criticality appear only where the edge's cited source states them for that pair, and attribute_withholding gives the reason for every withheld value. Collection size: 20,798 supply-chain records across all sources (snapshot 2026-09-24). Of these records, 1,924 come from a licensed layer limited to relationships between organizations already in Scrutica's records.
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+website +reachable +uptime-100% ~updated-88d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://scrutica.com/api/mcp streamable-http | none | yes | 100% | 534 ms | 2025-11-25 | 2026-10-20 |
scrutica_entity_list_changesread-only | What CHANGED in the BIS Entity List, as bounded change-log summaries. Backed by the same derivation the public /export-controls/changes page and its RSS feed render. PREFER this over scrutica_query_export_controls for freshness questions ("what changed this month", "latest additions", "recent removals"): designation rows arrive already grouped into per-Federal-Register-notice change events, so you do not re-derive notice grouping from citation strings. Each event includes: canonical FR citation and link, notice title / publication date / document number where the citation resolved to one FR document, a derived event date labeled with the source column it came from, entity / addition / removal counts, per-country counts, a bounded sample of entity names, and the entities cross-referenced to compute-infrastructure organizations. Removal actions are returned separately as date-keyed events — a screening list maintained from additions alone over-blocks forever. Also returns a last-N-ISO-week activity rollup counting BOTH additions and removals. Zero-count weeks are a real quiet-Federal-Register signal, not missing data. Results are bounded summaries, never row dumps: at most 24 events per call (default 6, newest first), with any truncation declared in metadata. Cite totals from the count field and per-event entity_count — never by summing a sampled list. Do NOT use this to look up one entity's designation rows — use scrutica_query_export_controls (substring match on the published name). Use company_id here only to scope the log to notices touching an organization you already resolved. Authority tier: Federal-Register-anchored designations are Tier 1 (primary source). The event date is derived (modal designation_date, falling back to modal effective_date) and labeled with its source. |
scrutica_estimate_flopsread-only | Estimate hypothetical peak and sustained throughput for a user-specified hardware configuration and precision. Sustained throughput equals dense peak throughput multiplied by accelerator count and utilization. The reported bounds are fixed at 0.7 and 1.15 times that result; they are model assumptions. Retain the bounds and is_estimated flag when quoting the estimate. This tool does not verify a named facility's inventory, availability or regulatory compliance. Named-facility estimates have separate evidence requirements documented at /methodology#flop-estimation. |
scrutica_get_companyread-only | Fetch complete details for a single organization (company, government entity, holding company) by canonical Scrutica ID. Returns: legal name, country of HQ, organization type, parent / subsidiary references, supply-chain edge counts. Use scrutica_query_export_controls for BIS designation details. Use scrutica_get_supply_chain for full edge graphs. |
scrutica_get_facilityread-only | Fetch complete details for a single Scrutica facility by canonical ID. Returns: roles[] — each organisation the record names, under the relationship its own source ESTABLISHES (site owner, site operator, AI hardware owner, or another relationship such as PeeringDB listing holder, lessee, developer), with the reason, source URL, quote and authority tier; withheld_roles[] — recorded attributions the cited source does not establish, with the reason; then country, power capacity (MW), GPU inventory (where disclosed), location (lat/lng), facility type, status, data_source, source_url, is_estimated flags, and any logged data-quality flags (cross-source divergence investigations). present_inventory is Scrutica's partition-by-partition compute evidence (the verdict the facility page, threshold table and query tools use): each accelerator partition admitted at its cited dense FP16 rate or held with a reason; one held partition withholds the facility figure. facility.peak_pflops_fp16 and h100_equivalent_gpus are the record's catalogue scalars, a different basis. Describe an organisation as the site's owner ONLY where roles[] names it "Site owner"; a recorded organisation is not by itself evidence of title or operation. For BIS Entity List designations tied to an organisation recorded at the facility, look it up via scrutica_query_export_controls — this tool does not compute ownership-chain BIS exposure. Resolve facility IDs first via scrutica_search. |
scrutica_get_methodologyread-only | Return methodology documentation for a Scrutica metric or index. Topics: 'flop-estimation', 'cost-index', 'compute-visibility-index', 'supply-chain-weighting', 'chokepoint-cascade', 'sovereign-execution-classification'. Returns the canonical URL + section anchor + summary. Use this when a user asks "how did you calculate X". |
scrutica_get_scenarioread-only | Fetch geopolitical compute risk scenarios. Available: 'taiwan-strait' (4 TSMC disruption scenarios), 'iran-threat' (IRGC missile range vs Gulf compute), 'tokyo-earthquake' (Japan memory-fab exposure), 'south-china-sea' (submarine cable severing), 'abqaiq-2' (Saudi grid). Returns the scenario's summary plus its substrate serialized from the interactive page's own data modules — assumption scenarios / threat systems / affected assets with per-item sources and authority tiers, capped lists shipping their true totals. The propagation SIMULATION itself remains interactive-only at the returned URL. |
scrutica_get_sovereign_programread-only | Fetch detailed data on a national sovereign AI compute program. Returns: announced_usd, announced_govt_only_usd, committed_usd, disbursed_usd, reality_ratio, status, key_partners, NVIDIA/US dependency, source_count. 'list_all' returns a summary table of all tracked programs. announced_usd can include private commitments; announced_govt_only_usd records the government-funded portion. Compare the programme sources for scope, dates and currency conversions. A government-only figure can still span a different budget period or initiative from another programme's figure. reality_ratio divides disbursed_usd by announced_govt_only_usd, using announced_usd when the government-only field is null. The ratio is null when disbursement or the denominator is missing, or the denominator is zero. Each row includes reality_ratio_denominator_usd and reality_ratio_denominator_field so the division is reproducible from the payload. Disbursements can include transfers to an administering body before expenditure on equipment or services. Missing fields and differing reporting scopes limit comparisons; reality_ratio_unavailable_reason explains an absent ratio. |
scrutica_get_supply_chainread-only | Return supply-chain relationships for one or more organizations. direction = 'upstream' traces suppliers (who feeds this entity); 'downstream' traces customers (who depends on this entity); 'both' returns both. Each edge carries supplier_org_id, customer_org_id and data_source; product_service, category, sole-source status, share and criticality appear only where the edge's cited source states them for that pair, and attribute_withholding gives the reason for every withheld value. Collection size: 20,798 supply-chain records across all sources (snapshot 2026-10-03). Of these records, 1,924 come from a licensed layer limited to relationships between organizations already in Scrutica's records. |
scrutica_query_export_controlsread-only | Look up BIS Entity List designations for companies or countries. The queried dataset is the US Commerce Department Entity List, Federal-Register-anchored; it does NOT cover OFAC SDN or Wassenaar CCL (for an organization's OFAC SDN / NS-CMIC / Section-1260H status, use scrutica_get_company — the record has on_ofac_sdn / on_ns_cmic / on_1260h booleans). entity_name is a case-insensitive substring match against the designated entity's published name (no alias expansion). Returns entity_name, entity_type, country, list_type, designation_date, removal_date, grounds, federal_register_citation, source_url (Federal Register notice URL), data_quality_flags. Provide entity_name or country. entity_id filtering is not implemented: an entity_id-only call is rejected; alongside a supported filter, entity_id is ignored and the response sets entity_id_ignored: true. Authority tier: Federal-Register-anchored designations are Tier 1 (primary source). bis_coverage_class discriminates how a row is covered: explicitly_named (FR notice cites the entity by name) vs affiliate_50pct_rule (inferred via BIS's 50% Affiliates Rule). coverage_note is populated only on affiliate_50pct_rule rows and states whether that rule is currently suspended. data_quality_flags is an array of provenance/caveat notes, empty for most rows; where present (derived-country provenance, removal-date sourcing, or the affiliate rows' suspension and substrate-reproducibility caveats) treat it as load-bearing context for the row. |
scrutica_searchread-only | Search facilities, companies, or sovereign programs by free-text query. Returns ranked results with id, name, type, one-line summary, and Scrutica URL. Filter by entity_type to scope to a single class. Filter by ISO 3166-1 alpha-2 country code. Do NOT use this for BIS Entity List / export-control lookups — use scrutica_query_export_controls. Do NOT use this for supply-chain traversal — resolve an entity ID first via this tool, then call scrutica_get_supply_chain. |
Schemas: list_tools.
{
"name": "io.github.davidgringras/scrutica",
"title": "Scrutica",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://scrutica.com/api/mcp",
"type": "streamable-http"
}
],
"version": "0.2.0",
"websiteUrl": "https://scrutica.com",
"description": "AI compute infrastructure intelligence: facilities, supply chains, sovereign AI, export controls."
}