Skip to main content
Glama

Server Details

AI compute infrastructure intelligence: facilities, supply chains, sovereign AI, export controls.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.8% over 40 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct resource or action: search vs. get-by-ID, export-control lookup vs. change-log, company vs. facility vs. supply chain. Even the two BIS Entity List tools are explicitly differentiated by freshness/change-log vs. entity designation lookup.

Naming Consistency4/5

Tool names consistently use the scrutica_ prefix and snake_case, and most follow a get_<resource> pattern. Minor deviations exist with scrutica_query_export_controls, scrutica_search, and scrutica_entity_list_changes, but the overall pattern is recognizable and predictable.

Tool Count5/5

Ten tools is well-scoped for a compute-intelligence and export-control research API. Each tool covers a meaningful capability without redundancy, and no tool feels like filler or duplicated scope.

Completeness4/5

The surface covers discovery, entity/facility details, supply-chain traversal, export controls, change monitoring, FLOP estimation, scenarios, sovereign programs, and methodology—strong domain coverage. Minor gaps exist, such as no general paginated list endpoint for all facilities/companies, but agents can work around these by using search and get-by-ID.

Available Tools

10 tools
scrutica_entity_list_changesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax change events to return (default 6, max 24), newest first. The count field always reports the full total in scope. At the Federal Register's Entity-List cadence the default already reaches back several months.
weeksNoISO-week span of the activity rollup (default 8 — the change-log page's own window; max 52).
company_idNoScope to change events touching one organization. Canonical Scrutica org ID ('org-<slug>'); the id space is the matched_org_id values in the BIS cross-reference, so designated entities without a compute-substrate cross-reference never appear under a scope. Kept events retain their full entity context.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses bounded results, the 24-event cap, truncation in metadata, separate date-keyed removal events, zero-count week semantics, and the derivation of event dates with authority tier. These are exactly the non-obvious behaviors an agent needs to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but proportionally so for a complex tool; it front-loads purpose and routing, organizes return semantics into labeled paragraphs, and every sentence carries operational meaning. No filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining return values, and it does: event composition, counts, samples, rollup, truncation, and removal handling. It also clarifies zero-count weeks and authority sourcing, so an agent has enough context to call and interpret the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description still adds value by explaining that 'count field always reports the full total in scope,' that truncation appears in metadata, and that company_id only matches entities in the cross-reference id space — avoiding false scoping assumptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence defines a specific operation and resource: 'What CHANGED in the BIS Entity List, as bounded change-log summaries.' It also names the sibling it competes with (scrutica_query_export_controls) and the freshness scenario, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit routing: 'PREFER this over scrutica_query_export_controls for freshness questions' and 'Do NOT use this to look up one entity's designation rows — use scrutica_query_export_controls.' It also scopes company_id to an already-resolved organization, clarifying when the parameter is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_estimate_flopsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sparsityNoStructured-sparsity mode, accepted and echoed in the response. Both values currently apply a 1.0 multiplier.dense
precisionNobf16
unit_countYesNumber of accelerators
utilizationNoFraction of dense peak throughput sustained (0–1; default 0.40).
hardware_typeYesGPU / accelerator model

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnlyHint annotation. It discloses the calculation model (dense peak × unit_count × utilization), the fixed bounds (0.7 and 1.15), the instruction to retain the bounds and is_estimated flag, and its limitations regarding facility verification. This is rich behavioral context that a caller needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler. The purpose is front-loaded, the calculation and bounds follow, and the retention/limitations are compactly stated. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the purpose, the calculation method, output bounds, the is_estimated flag, and points to methodology for named-facility edge cases. It lacks an explicit description of the full output structure (e.g., units, exact fields), but since the bounds and flag are mentioned, and no output schema exists, this is a minor gap. It is sufficiently complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 80% schema description coverage, the baseline is 3. The description adds meaning to unit_count and utilization via the formula, and mentions precision and hardware configuration. However, it does not explain sparsity or precision beyond what the schema enums already convey, and the precision parameter lacks a schema description. The added formula justifies a 4, but it does not fully compensate for the undocumented precision parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Estimate hypothetical peak and sustained throughput for a user-specified hardware configuration and precision.' It names the specific verb (estimate) and resource (throughput), and it is distinct from all sibling tools, which handle entities, facilities, or search. No ambiguity about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use it: it's for hypothetical estimates, and it explicitly states what it does NOT do (verify facility inventory/availability/compliance) and points to separate requirements for named-facility estimates. However, it does not name alternative tools or provide an explicit 'use this when...' statement, leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_get_companyA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for company_id.
org_idNoAlias for company_id.
entity_idNoAlias for company_id.
company_idNoREQUIRED. Canonical Scrutica organization ID. Format: 'org-<slug>' (e.g. 'org-nvidia', 'org-tsmc', 'org-huawei'). Resolve via scrutica_search first — do NOT guess slugs. Optional in the schema only so the aliases below can stand in; supply exactly one of these.
organization_idNoAlias for company_id.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates a safe read operation. The description adds useful behavioral context by listing the concrete fields returned and warning that only summary edge counts are included, not full graphs, which prevents unrealistic expectations. It also explains the resolver prerequisite without contradicting any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then return fields, then explicit alternatives. Every sentence carries useful information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description lists the key return fields, notes parent/subsidiary references and edge counts, and warns about using a different tool for full graphs. Together with the parameter schema, the agent has enough to call the tool and interpret its result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents the alias relationship and the required format 'org-<slug>'. The description reinforces "canonical Scrutica ID" and the need to resolve via search, but most parameter nuance is already present in the schema, so the description adds little beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource — "Fetch complete details for a single organization" by canonical Scrutica ID — and explicitly distinguishes itself from siblings by naming what to use instead for BIS details and full edge graphs. This lets an agent immediately recognize the tool's niche.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit routing guidance: use scrutica_query_export_controls for BIS designation details, and scrutica_get_supply_chain for full edge graphs. The parameter docs also instruct agents to resolve the ID via scrutica_search first and not to guess slugs, which is essential when to use and how to prepare.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_get_facilityA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for facility_id.
entity_idNoAlias for facility_id.
facility_idNoREQUIRED. Canonical Scrutica facility ID. Format: 'fac-<slug>' (e.g. 'fac-tsmc-arizona-fab21-p2', 'fac-tsmc-fab-18'). Resolve via scrutica_search first — do NOT guess slugs. Optional in the schema only so the aliases below can stand in; supply exactly one of these.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations declare readOnlyHint=true, the description goes far beyond that. It explains the nuanced semantics of roles[] (source-established relationships), withheld_roles[], present_inventory vs. catalogue scalars, and clarifies that a recorded organisation is not evidence of title. This rich behavioral detail helps the agent interpret results correctly and avoid common misconceptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured. It front-loads the core purpose, then enumerates return fields, then adds critical clarifications and usage notes. Every sentence contributes value—no fluff or redundancy. The length is justified by the complexity of the data returned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description thoroughly documents the return structure (roles, withheld_roles, inventory, scalars, etc.) and the semantics of each. It also addresses the prerequisite (ID resolution) and the tool's limitations. An agent has everything needed to call it correctly and interpret the response accurately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even with 100% schema coverage, the description adds crucial parameter guidance: it explains that facility_id is required, gives the format pattern ('fac-<slug>'), clarifies the alias mechanism, and mandates that exactly one of the three aliases must be supplied. This is essential practical information that the schema itself does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource: 'Fetch complete details for a single Scrutica facility by canonical ID.' It clearly distinguishes from siblings by explicitly stating it does not compute BIS exposure (unlike scrutica_query_export_controls) and that it requires a resolved ID (unlike scrutica_search). The purpose is unambiguous and well-separated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage instructions: 'Resolve facility IDs first via scrutica_search' and warns 'do NOT guess slugs.' It also directs BIS-related queries to scrutica_query_export_controls and clarifies that this tool does not handle ownership-chain BIS exposure. This gives clear when-to-use and when-not-to-use guidance, plus a direct pointer to the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_get_methodologyA
Read-only
Inspect

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

ReadOnlyHint is true, and the description adds valuable detail about the return shape (canonical URL + section anchor + summary). This exceeds the annotation's simple safety signal, though it doesn't describe edge cases or additional behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose in the first sentence, topics in the second, and return/usage in the third. No filler words, and every sentence adds distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with a clear enum and a read-only action, the description covers purpose, usage trigger, topic list, and return format. Even without an output schema, the agent knows what to expect. It is complete for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does by listing all enum values in prose and explaining that the topic refers to a 'metric or index,' which adds context beyond the bare enum. Given the single parameter's simplicity, this is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Return methodology documentation for a Scrutica metric or index.' It clearly distinguishes this from sibling tools focused on entities, scenarios, or searches. The explicit list of topics further clarifies scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit when-to-use instruction: 'Use this when a user asks "how did you calculate X".' However, it does not mention when not to use it or name alternative tools, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_get_scenarioA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenario_idYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already declare readOnlyHint=true, the description adds substantial behavioral context: returns summary plus serialized substrate with per-item sources and authority tiers, notes capped lists shipping true totals, and explicitly states the propagation simulation is interactive-only. This goes well beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three well-structured sentences: purpose, available values with inline explanations, and return behavior. Every sentence adds necessary information, and the critical limitations are front-loaded in the final sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully covers what the tool returns (summary + substrate), what it does not return (simulation), and the capping behavior. The single parameter is completely explained via the listed scenario IDs, making the tool self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only an enum of scenario_id values with zero descriptions. The description compensates by explaining each value (e.g., 'taiwan-strait (4 TSMC disruption scenarios)'), giving the agent full semantic understanding of the only parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Fetch geopolitical compute risk scenarios.' It then lists the available scenarios with their unique contents, which clearly distinguishes this tool from sibling get_* tools for companies, facilities, supply chains, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is for risk scenarios, but it does not explicitly name alternative tools or state when not to use it. The sibling tool names imply the domain, yet the guidance is not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_get_sovereign_programA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoISO 3166-1 alpha-2
list_allNoReturn summary of all sovereign programs instead of a single record
program_idNoScrutica sovereign-program ID in the form 'sovereign-<country_code>' (e.g. 'sovereign-ae'), as returned by scrutica_search and list_all. The bare country_code is also accepted. Regional programs use non-ISO codes ('sovereign-eurohpc', 'sovereign-nato-aukus', 'sovereign-africa-regional') and are reachable ONLY via program_id or list_all — the 2-letter country parameter cannot match them.

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true. The description adds substantial behavioral context: explains the meaning of announced_usd vs announced_govt_only_usd, the exact calculation of reality_ratio with fallback logic, the handling of null denominators, the inclusion of transfers in disbursements, and the existence of reality_ratio_unavailable_reason. This goes far beyond annotations and helps the agent understand edge cases and data limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-structured. It opens with the core purpose, then lists returned fields, followed by explanatory paragraphs on semantic nuances. Each sentence contributes to understanding the tool's behavior, with no fluff. While it could be trimmed, the complexity of the data justifies the detail. Front-loaded purpose and field list aid quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and the tool's complexity (multiple currency fields, ratio calculations, edge cases), the description is remarkably complete. It documents all return fields, explains calculation logic, notes reporting scopes and limitations, and provides a reason field for missing ratios. An agent can confidently invoke this tool and interpret results without external documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all three parameters (country, list_all, program_id). The description adds minor context, such as list_all returning a summary table and program_id accepted formats, but these are largely already present in the schema. For high schema coverage, the baseline of 3 is appropriate; the description does not significantly augment parameter understanding beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches detailed data on a national sovereign AI compute program, with a specific verb and resource. It distinguishes from siblings by scope (sovereign programs) but does not explicitly name an alternative tool, relying on the tool name and context. The mention of list_all for all programs adds to purpose clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. It mentions that program_id is returned by scrutica_search and list_all, implying a workflow, but gives no direct guidance on when to prefer this tool over search or other get_* tools. No exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_get_supply_chainA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
org_idNoAlias for org_ids; a single id may be passed as a bare string.
org_idsNoREQUIRED. Scrutica org IDs in 'org-<slug>' format (e.g. ['org-nvidia', 'org-tsmc']), 1-5 of them. Optional in the schema only so the single-id aliases below can stand in.
directionNoboth
company_idNoAlias for org_ids.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses data provenance, partial attribute presence ('appear only where the edge's cited source states them'), and the reason field attribute_withholding. It also quantifies the snapshot size and the licensed-layer limitation, which an agent needs to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is information-dense but front-loaded: purpose first, then parameter behavior, then output semantics, then provenance caveats. Every sentence adds operational value and none repeats the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description specifies the core edge fields and the conditions under which optional attributes appear, so an agent knows what to expect. Collection size, snapshot date, and license restrictions cover the main interpretation risks. The input side is already covered by the schema and full enum semantics in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema leaves the direction enum values undefined, and the description fills that gap exactly with supplier/customer semantics. It also orients the record-level fields, though it relies on the schema for org_id/limit mechanics and does not compensate for all 40% of undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the exact resource ('supply-chain relationships') and a specific action ('Return'), immediately distinguishing it from sibling tools like scrutica_get_company and scrutica_get_facility. The direction values further clarify the purpose by naming the two relationship orientations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage model: choose 'upstream' to trace suppliers, 'downstream' for customers, or 'both'. It does not name alternatives or provide when-not-to-use guidance, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrutica_query_export_controlsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
countryNoISO 3166-1 alpha-2
entity_idNoRetained for compatibility; filtering by this ID is not implemented. An ID-only call is rejected; with entity_name or country, the ID is ignored and entity_id_ignored is true.
entity_nameNoCase-insensitive substring of the designated entity's published name; no alias expansion. Supply entity_name or country.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint, the description reveals matching semantics (case-insensitive substring, no alias expansion), the non-implemented entity_id filter and its response flag, output field list, authority tier, coverage class distinctions, and data_quality_flags semantics. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average, but the length is earned because it must compensate for no output schema and explain output interpretation. It is front-loaded with purpose and exclusions, though it partially repeats input-schema text for entity_name and entity_id.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, it enumerates all returned fields and gives load-bearing interpretation for bis_coverage_class and data_quality_flags. It also covers dataset scope, authority tier, and the behavior of entity_id, so an agent can invoke and interpret results without further lookups.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already documents entity_name, entity_id, and country; the description largely restates those semantics rather than adding new parameter meaning. It adds the one-of usage rule ('Provide entity_name or country'), but limit remains self-explanatory from schema min/max/default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Look up BIS Entity List designations' and immediately draws the boundary against OFAC SDN and Wassenaar CCL, naming scrutica_get_company as the alternative. This clearly separates it from all nine sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when not to use it ('does NOT cover OFAC SDN or Wassenaar CCL') and provides the alternative (scrutica_get_company for OFAC/NS-CMIC/1260H). It also gives the required input pattern ('Provide entity_name or country') and the entity_id caveat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedscrutica_query_export_controls2 fields changed
      • changedInput schema / properties / entity_id / description
        Previous value: -"Scrutica org ID (exact match)"New value: +"Retained for compatibility; filtering by this ID is not implemented. An ID-only call is rejected; with entity_name or country, the ID is ignored and entity_id_ignored is true."
      • changedInput schema / properties / entity_name / description
        Previous value: -"Company name (fuzzy matched against aliases)"New value: +"Case-insensitive substring of the designated entity's published name; no alias expansion. Supply entity_name or country."
  2. 1 tool update
    • Changedscrutica_estimate_flops2 fields changed
      • changedInput schema / properties / sparsity / description
        Previous value: -"Structured-sparsity mode. NOTE: both values currently apply a 1.0x multiplier — the theoretical 2x speedup of 2:4 sparsity rarely materializes in wall-clock training throughput, so this estimator deliberately does not credit it (see the response note and /methodology#flop-estimation). The parameter is accepted and echoed for forward compatibility only."New value: +"Structured-sparsity mode, accepted and echoed in the response. Both values currently apply a 1.0 multiplier."
      • changedInput schema / properties / utilization / description
        Previous value: -"Sustained utilization (MFU) fraction (default 0.40; documented range 0.20–0.50, calibrated to PaLM 540B 0.462 and LLaMA 3 405B 0.384)"New value: +"Fraction of dense peak throughput sustained (0–1; default 0.40)."

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources