Scrutica
Server Details
AI compute infrastructure intelligence: facilities, supply chains, sovereign AI, export controls.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.5/5 across 10 of 10 tools scored.
Each tool targets a distinct resource or operation: entity list changes vs. export control lookups are explicitly cross-referenced, and search/get/supply-chain tools have clear boundaries. No two tools appear to do the same thing.
Most tools follow a consistent scrutica_verb_noun pattern (get_company, query_export_controls, estimate_flops). The single exception is scrutica_entity_list_changes, which reads as a noun phrase rather than a verb command, a minor deviation.
Ten tools cover a broad domain (export controls, supply chain, facilities, companies, sovereign programs, scenarios, methodology, and compute estimation) without feeling bloated. The count is well-scoped for the platform's apparent purpose.
The tool surface covers the core read-only workflows: search, retrieve details, query export controls, fetch changes, traverse supply chains, and access scenarios/methodology. Minor gaps include lack of explicit list tools for scenarios and methodology topics, though these are discoverable via descriptions.
Available Tools
10 toolsscrutica_entity_list_changesARead-onlyInspect
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 carries: 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max 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. | |
| weeks | No | ISO-week span of the activity rollup (default 8 — the change-log page's own window; max 52). | |
| company_id | No | Scope to change events touching one organization. Canonical Scrutica org ID ('org-<slug>'); the id space is the matched_org_id values the BIS cross-reference carries, so designated entities without a compute-substrate cross-reference never appear under a scope. Kept events retain their full entity context. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses important behavioral traits: results are 'bounded summaries' with at most 24 events and truncation declared in metadata; removals are returned separately; zero-count weeks are 'a real quiet-Federal-Register signal, not missing data'; event dates are derived and labeled; and counting should use the count field, not sample lists. These add substantial context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense. Every sentence contributes either purpose, usage boundaries, return structure, or counting caveats. It is front-loaded with the core purpose and usage preference. Slightly redundant details exist (e.g., 'bounded summaries' repeated), but overall it is efficiently structured for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explains return shape: each event carries FR citation, notice metadata, counts, entity samples, and cross-references; removal actions are separate; and a last-N-ISO-week rollup is included. It also covers edge cases like zero-count weeks and truncation. This makes the description complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds extra semantics: limit notes 'newest first' and that count fields report full totals; weeks references the change-log page's own window; company_id explains the id space and that entities without cross-references never appear under scope. This goes beyond schema descriptions, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource statement: 'What CHANGED in the BIS Entity List, as bounded change-log summaries.' It clearly distinguishes itself from the sibling scrutica_query_export_controls by stating 'PREFER this over scrutica_query_export_controls for freshness questions' and explicitly directing entity-lookup use to that sibling. This makes the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use guidance: '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 explains the scoping use of company_id, giving clear conditions for that parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrutica_estimate_flopsARead-onlyInspect
Compute peak BF16 FLOP estimates for a hardware configuration. Returns point estimate + bounds. Methodology matches the Interactive Methodology Explorer at /methodology#flop-estimation. Do NOT present outputs as exact measurements — always relay the bounds and the is_estimated flag.
| Name | Required | Description | Default |
|---|---|---|---|
| sparsity | No | 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. | dense |
| precision | No | bf16 | |
| unit_count | Yes | Number of accelerators | |
| utilization | No | 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) | |
| hardware_type | Yes | GPU / accelerator model |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses that the result is an estimate with bounds and an is_estimated flag, and that it matches the Interactive Methodology Explorer. This adds meaningful behavioral context about uncertainty and output interpretation. It does not over-explain side effects, but for a read-only estimation tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise, front-loaded sentences. The first sentence states the primary action, the second names the return structure and methodology link, and the third gives a critical usage caution. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by stating the return format (point estimate + bounds) and the is_estimated flag. It also references the methodology URL for deeper context. It could mention units or clarify how the precision parameter interacts with 'BF16,' but overall it provides enough context for an agent to invoke the tool and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents 4 of 5 parameters with descriptions (80% coverage), so the baseline is 3. The tool description itself does not add detailed parameter-level semantics beyond noting 'BF16' and 'hardware configuration,' which maps loosely to the precision and hardware_type/unit_count parameters. This is sufficient but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Compute peak BF16 FLOP estimates for a hardware configuration.' This clearly distinguishes the tool from its siblings, which all concern entity lookups or searches. It also immediately conveys the tool's core purpose and precision focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating the tool returns a point estimate plus bounds and points to a methodology reference. It also gives an explicit 'do not' instruction: 'Do NOT present outputs as exact measurements — always relay the bounds and the is_estimated flag.' It does not name alternative tools, but the context is sufficient given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrutica_get_companyARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | Yes | Canonical Scrutica organization ID. Format: 'org-<slug>' (e.g. 'org-nvidia', 'org-tsmc', 'org-huawei'). Resolve via scrutica_search first — do NOT guess slugs. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already covers the safety profile, lowering the burden. The description adds value by enumerating return fields (legal name, country of HQ, organization type, parent/subsidiary references, supply-chain edge counts) and clarifying that full edge graphs are not included. It does not mention error handling or rate limits, but for a simple read-only getter this is not a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences: the primary action first, a return-value list second, and two 'use instead' directives at the end. Every sentence adds value with no redundancy or fluff, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single well-documented parameter and no output schema, the description adequately covers what the tool returns and how to obtain the required ID. It also guides the agent to sibling tools for related queries, making selection and invocation unambiguous in typical workflows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the only parameter (company_id) has a detailed description with format, examples, and resolution guidance. The tool description only repeats 'canonical Scrutica ID' without adding new parameter-level semantics. Baseline 3 is appropriate because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch complete details for a single organization by canonical Scrutica ID' with a specific verb and resource. It also distinguishes from siblings by directing to scrutica_query_export_controls for BIS details and scrutica_get_supply_chain for full edge graphs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use scrutica_query_export_controls for BIS designation details and scrutica_get_supply_chain for full edge graphs, providing clear alternatives. The schema description further instructs to resolve IDs via scrutica_search first, which is a concrete prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrutica_get_facilityARead-onlyInspect
Fetch complete details for a single Scrutica facility by canonical ID. Returns: operator, owner, 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). For BIS Entity List designations tied to the facility's owner, look up the owner org via scrutica_query_export_controls — this tool does not compute ownership-chain BIS exposure. Resolve facility IDs first via scrutica_search.
| Name | Required | Description | Default |
|---|---|---|---|
| facility_id | Yes | 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds meaningful behavioral context: it returns is_estimated flags and data-quality flags, warns not to guess slugs, and explains the limitation regarding BIS exposure. This goes beyond the annotation and provides useful operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but every sentence earns its place: purpose, return fields, cross-tool guidance, and explicit exclusions. It is front-loaded with the main action and then provides necessary supporting details without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description compensates fully by enumerating the return fields (operator, owner, country, capacity, GPU inventory, etc.). It also covers prerequisites (resolve ID), limitations (no BIS chain), and related tools, making it contextually complete for a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is already rich, specifying format ('fac-<slug>'), concrete examples, and explicit instructions to resolve via scrutica_search. The tool description reinforces this but doesn't add new semantic meaning; however the combined clarity justifies above-baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches complete details for a single Scrutica facility by canonical ID, using a specific verb and resource. It distinctly separates this from sibling tools by noting it does not compute BIS exposure and that facility IDs must come from scrutica_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: resolve facility IDs via scrutica_search first, and use scrutica_query_export_controls for BIS Entity List designations. It also explicitly states what this tool does NOT do (ownership-chain BIS exposure), making the usage boundary completely clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrutica_get_methodologyARead-onlyInspect
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".
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_scenarioARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_programARead-onlyInspect
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, governance_reach, NVIDIA/US dependency, source_count. 'list_all' returns a summary table of all tracked programs.
READ THE TWO ANNOUNCED FIELDS BEFORE COMPARING COUNTRIES. announced_usd is the all-capital headline and rolls private commitments in with government money, so it is NOT comparable across countries as-is: the UAE line ($518.74B) and France ($201.34B) are dominated by private vehicles (Stargate UAE, SoftBank), while the US line ($2.6B) is essentially NAIRR alone. announced_govt_only_usd is the government-only figure and is the comparable one. reality_ratio = disbursed_usd / announced_govt_only_usd (falling back to announced_usd only when no government-only figure exists). It is deliberately NOT disbursed_usd / announced_usd. Each row ships reality_ratio_denominator_usd and reality_ratio_denominator_field so the division is reproducible from the payload. reality_ratio is null for most programs because disbursed_usd is unpublished — see reality_ratio_unavailable_reason. Absence concentrates in the least transparent programs (Saudi, China, Korea, UAE all report no disbursed figure), so a ranking by reality_ratio is a ranking of DISCLOSURE, not of execution; do not present it as the latter.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ISO 3166-1 alpha-2 | |
| list_all | No | Return summary of all sovereign programs instead of a single record | |
| program_id | No | Scrutica 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 carry 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses significant behavioral nuances: announced_usd is not comparable across countries, reality_ratio measures disclosure rather than execution, and reality_ratio is null for many programs due to unpublished disbursed figures. It also explains the denominator logic and why nulls concentrate in certain countries, adding essential interpretive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and return fields, followed by clearly separated caveats. Every sentence carries meaningful information, and the structure prioritizes the critical warnings about field comparability. Though lengthy, it is appropriately sized for the tool's conceptual complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a read-only data tool with no output schema; the description compensates by enumerating the returned fields and explaining each caveat in detail. It also covers all three parameters, including edge cases like regional programs and list_all behavior. For the tool's complexity, the description is complete and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters, so the baseline is 3. The description adds valuable nuance: the bare country_code is accepted for program_id, regional programs require program_id, and list_all returns a summary table. This extra guidance improves parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Fetch detailed data on a national sovereign AI compute program' — a specific verb and resource, and it enumerates the returned fields. This clearly distinguishes it from sibling tools focused on companies, facilities, or scenarios. The purpose is unambiguous and informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not name alternatives or explicitly state when not to use this tool. It does provide context for when to use program_id vs. country and what list_all does, which is helpful but not a full usage guide. Sibling comparisons are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrutica_get_supply_chainARead-onlyInspect
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: source_org_id, target_org_id, relationship_type, supply_share (where disclosed), price_correlation_3m (3-month rolling, where available), data_source. Dataset: 18,999 edges from a licensed supply-chain database (held under subscription, not redistributed) plus SEC Exhibit 21 (substrate snapshot 2026-08-14).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| org_ids | Yes | Scrutica org IDs in 'org-<slug>' format (e.g. ['org-nvidia', 'org-tsmc']) | |
| direction | No | both |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering the safety profile. The description adds valuable behavioral context about data sources (licensed database, SEC Exhibit 21), snapshot date, and the guarantee that data is not redistributed, going beyond annotation basics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose, then parameter semantics, then output and dataset context. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by listing the edge fields (source_org_id, target_org_id, relationship_type, supply_share, price_correlation_3m, data_source). It also provides dataset size and provenance, making the tool's behavior fairly complete. Minor gaps include lack of pagination or limit usage details, but the core use case is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, with only org_ids having a description. The description compensates by thoroughly explaining the 'direction' parameter (upstream/downstream/both) and implicitly clarifying that org_ids refer to Scrutica org IDs. The 'limit' parameter remains undocumented in both schema and description, but its numeric nature limits the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns supply-chain relationships for organizations, using specific verbs and resources. It distinguishes itself from siblings like get_company and get_facility by focusing on edges rather than single entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains the 'direction' parameter with upstream/downstream semantics, giving clear context for when each option is appropriate. However, it does not explicitly name alternative tools or state when not to use this tool, so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrutica_query_export_controlsARead-onlyInspect
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 carries 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. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| country | No | ISO 3166-1 alpha-2 | |
| entity_id | No | Scrutica org ID (exact match) | |
| entity_name | No | Company name (fuzzy matched against aliases) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the authority tier (Tier 1), the two coverage classes (explicitly_named vs affiliate_50pct_rule), the conditional presence of coverage_note, and the load-bearing nature of data_quality_flags. This rich context tells the agent exactly what the data means and how to interpret edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet efficiently organized: it leads with the core purpose, then exclusions, then matching semantics, then return fields, then data-quality caveats. Every sentence carries unique information, and no word is wasted. The length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description must explain return values—and it does, listing all key fields and the semantics of data_quality_flags. It also covers authority tier, coverage classes, and caveats, giving an agent everything needed to correctly interpret results. No obvious gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds important nuance to entity_name (case-insensitive substring, no alias expansion) and explains the output fields, but it directly contradicts the input schema, which states entity_name is 'fuzzy matched against aliases'. This creates a confusing conflict for an agent deciding how to pass the parameter. With 75% schema coverage, the description should clarify—not contradict—and the mismatch undermines the added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Look up BIS Entity List designations for companies or countries.' It further distinguishes the tool from OFAC SDN and Wassenaar CCL, and explicitly names the sibling tool scrutica_get_company for OFAC status, making its scope unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states what the tool covers (BIS Entity List, Federal-Register-anchored) and what it does not cover (OFAC SDN, Wassenaar CCL), and directs users to scrutica_get_company for OFAC-related queries. It also documents the entity_name matching behavior (case-insensitive substring, no alias expansion), which is essential for correct use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrutica_searchARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Free-text search query | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. US, CN, TW) | |
| entity_type | No | Limit results to this entity class | all |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is known. The description adds context about search scope (facilities/companies/sovereign programs), return format (ranked results with id/name/type/summary/URL), and explicit exclusions, which go beyond the annotation but don't cover rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, all substantive: purpose, return type, filters, and exclusions. Front-loaded with the main action, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description covers purpose, return fields, filters, and exclusions well. It lacks pagination/limit behavior details, but the schema covers limits, and the exclusions make it quite complete for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 75% of parameters with descriptions (query, country, entity_type). The description reinforces the filtering semantics ('Filter by entity_type', 'Filter by ISO 3166-1 alpha-2 country code') but adds no new details beyond schema, and limit remains undocumented in both.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Search facilities, companies, or sovereign programs by free-text query' with a specific verb and resource scope. It also lists return fields and explicitly distinguishes from sibling tools like scrutica_get_company and scrutica_query_export_controls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use context ('by free-text query') and clear when-not-to-use with named alternatives: 'Do NOT use this for BIS Entity List / export-control lookups — use scrutica_query_export_controls' and 'Do NOT use this for supply-chain traversal — resolve an entity ID first via this tool, then call scrutica_get_supply_chain'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
Flicense-qualityBmaintenanceMCP server exposing 16 programmatic tools for AI systems to query verified Coordination Intelligence on AI infrastructure events, connections, and actors across geopolitical blocs.1- Alicense-qualityDmaintenanceHardware trust layer for sovereign AI that attests firmware trust state and gates AI inference on verified results.MIT
- AlicenseAqualityBmaintenanceNarrative & signal intelligence for AI agents: crypto/AI/macro convergence & divergence.21MIT