Skip to main content
Glama

Server Details

Coordination Intelligence: AI infrastructure coordination dynamics across geopolitical blocs

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 61 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
warmthengine/warmth-engine-observatory
GitHub Stars
1
Server Listing
warmthengine.com/mcp

TDQS

A4.3/5.0

Scored across 18 tools

Disambiguation4/5

The set covers distinct layers (events, connections, threads, capability links, topology, metrics) and descriptions explicitly cross-reference alternatives, but get_actors vs query_scp and get_event_stack vs its component tools (get_connections, get_threads, get_capability_links) have enough data overlap that an agent could still hesitate.

Naming Consistency5/5

All names are snake_case verb_noun (get_*, query_scp, search_events, traverse_coordination), consistent and readable. The only minor variation is get_connection_by_id, which remains predictable.

Tool Count4/5

18 tools is slightly above the typical 3-15 sweet spot, but each corresponds to a distinct data product or operation in a complex observatory. The count is heavy yet largely justified by the platform's layered scope.

Completeness4/5

The surface covers event search/retrieval, connections, threads, capability profiles/signatures, topology traversal, blocs, commitments, metrics, coverage, and vocabulary. A few gaps exist: search_events is capped without pagination, and no bulk/list-all-events tool is exposed, but core workflows are covered.

Available Tools

18 tools
get_actorsGet Sovereign Capability Profile ActorsA
Read-onlyIdempotent
Inspect

Retrieve whole Sovereign Capability Profile (SCP) actors — each with its designation (PAA / AIK / ACS / Participant), capability score, severance result, assessed (the register month, YYYY-MM, the profile was assessed in), a met/not-met assessment across the seven capability dimensions (D1–D7), and energy_context. Use to fetch complete actor records; to pivot one dimension across all actors, compare actors side by side, or read the dimension-watch register, use query_scp. Filter by designation or actor name. Free tier returns each dimension's met status and recorded headline (and the US sample in full); full tier adds the per-dimension constraint, qualification, and sources. energy_context carries installed generation capacity from the U.S. Energy Information Administration and annual electricity generation from the energy think tank Ember, served in full on both tiers: external reference data outside the WEO analytical stack, national totals, dated observations reported as published, accompanying the profiles but forming no part of them. Descriptive — recorded status, never inference.

ParametersJSON Schema
NameRequiredDescriptionDefault
actor_nameNoFilter by actor code (ISO 3166-1 alpha-2, exact, e.g. "CN") or name (partial match, e.g. "China"). Named `actor` in `get_capability_links`.
designationNoFilter by designation: PAA, AIK, ACS, Participant

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, non-open-world, so safety is covered. The description adds substantive behavioral context: free tier returns only met status and headline (plus US sample in full), full tier adds constraint/qualification/sources, and energy_context is served in full on both tiers. It also clarifies the data is descriptive recorded status, never inference. Minor gap: no pagination/return-format note.

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?

Front-loaded with the core purpose and the sibling routing. The energy_context explanation is long and somewhat tangential, but it is scoping-relevant (external reference data outside the analytical stack), so it earns most of its place. Slightly verbose overall.

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?

No output schema exists, so the description carries the burden of describing return contents, and it does so thoroughly (field-by-field enumeration plus tier-dependent richness). It also clarifies provenance of energy_context. Nothing essential for correct invocation is missing.

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 both params (actor_name, designation) are documented in the schema itself, so baseline 3 applies. The description restates the filters ('Filter by designation or actor name') without adding syntax or format beyond what the schema already provides.

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?

States a specific verb ('Retrieve') and resource ('whole SCP actors') and enumerates the exact fields returned (designation, capability score, severance result, assessed, D1–D7 met/not-met, energy_context). It explicitly distinguishes itself from the sibling query_scp, so an agent can tell them apart without opening either schema.

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?

Names the alternative explicitly ('to pivot one dimension across all actors, compare actors side by side, or read the dimension-watch register, use `query_scp`') and gives the selecting condition (fetch complete actor records). Clear when-to-use and when-to-use-something-else.

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

get_blocsGet Bloc Membership RegisterA
Read-onlyIdempotent
Inspect

Retrieve the WEO Bloc Membership Register — every nation in the register with its bloc assignment and universal membership category (Core / Integrated / Engaged / Peripheral / Non-Aligned), its key evidence and source URLs, plus document metadata and sectioned provenance (snapshot history, changelog, pre-register decisions). Served whole and free — the machine mirror of the public blocs register. A descriptive roster, never inference; the category definitions themselves are served by get_methodology.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior. The description usefully adds that the register is returned in full (no parameterization or partial fetch) and that it is 'a descriptive roster, never inference', clarifying the epistemic nature of the payload beyond the annotation set.

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?

Front-loaded with the verb and resource, then the payload contents, then the boundary versus get_methodology. It is dense with em-dash-separated clauses and a touch long, but every clause carries information rather than 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?

With no output schema available, the description carries the return-value burden well: it enumerates fields (bloc assignment, universal category, evidence, source URLs, metadata, snapshot history, changelog, pre-register decisions). Combined with annotations covering safety, an agent has everything needed to call it and interpret results.

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 tool takes zero parameters, so the baseline is 4. The description reinforces this by saying the register is 'served whole', implying no filtering or pagination arguments exist, which matches the empty schema.

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?

States a specific verb (Retrieve) plus the exact resource (WEO Bloc Membership Register) and enumerates the contents: nations, bloc assignment, membership category, evidence/source URLs, document metadata, sectioned provenance. It clearly distinguishes itself from get_methodology, which is named as the home of category definitions.

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?

Frames the tool as the 'machine mirror of the public blocs register', 'served whole and free', which tells the agent this is an unfiltered full-roster read, and routes the agent to get_methodology for definitions. It stops short of explicit when-not-to-use guidance or naming other roster-shaped alternatives among the siblings.

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

get_capability_signaturesGet Capability SignaturesA
Read-onlyIdempotent
Inspect

Retrieve the precomputed Capability Signatures — directional Coordination Connection (CC) chains or hubs (connection types 1/3/4/5) whose member events span two or more Sovereign Capability Profile (SCP) dimensions, surfaced as corroborating structural texture rather than a headline finding. Omit signature_id for the whole set — each signature with its nodes, directional legs (from/to + connection type), dimension span, attribution profile, and narrative; its member_links, the explicit list of Capability Link link_ids its nodes correspond to; and its own lifecycle fields — created, scp_register_version, assessed_under, status — plus metadata (the directional-edge inventory, the active/retired status_counts, and the pre-operational caveat) and the non-signature same-capability clusters. Pass signature_id (e.g. "CS-001") for one. A signature is never edited in place: a change to its member set retires it whole, and a still-qualifying structure re-enters as a new signature. Active signatures are returned by default; pass include_retired to receive retired signatures alongside. member_links is the authoritative reference into the membership layer: the node fields are denormalised for rendering and are subordinate to it, so resolve a link_id through get_capability_links for that node's current status and full detail. For the underlying event↔dimension membership links, use get_capability_links. A derived overlay over the directional CC graph; served in full and free, lifecycle fields included.

ParametersJSON Schema
NameRequiredDescriptionDefault
signature_idNoSignature id e.g. "CS-001"; omit for all signatures
include_retiredNoInclude retired signatures alongside active ones (default false — active only). A retired signature is the frozen whole-state snapshot of a structure that changed or ceased to qualify; use this to reconstruct a past state.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations cover only the safe-read profile (readOnly, idempotent, non-destructive), yet the description adds substantive behavior: signatures are never edited in place — a member-set change retires the whole signature and a still-qualifying structure re-enters as a new one; active-only by default; and member_links is authoritative while node fields are denormalised and subordinate. This is exactly the extra lifecycle/auth-adjacent context the annotations cannot convey.

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

Conciseness3/5

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

Purpose is front-loaded, but the body is a single dense, jargon-laden run-on that crams the return-field inventory (nodes, legs, dimension span, attribution profile, narrative, member_links, lifecycle fields, metadata) into one sentence. It is informative but hard to parse and repeats schema content, so it is not tightly trimmed.

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 full return-value burden and does so thoroughly — enumerating signatures, nodes, directional legs, dimension span, attribution profile, member_links, lifecycle fields, status counts and the pre-operational caveat. Nothing an agent needs to interpret results is missing.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning: omitting signature_id returns the full set with all nested sub-structures, and include_retired is framed as reconstructing a past state given the no-in-place-edit lifecycle. That is meaningful nuance beyond the raw schema text.

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?

States a concrete verb ('Retrieve') and resource ('precomputed Capability Signatures') and defines the resource positively — directional CC chains/hubs of connection types 1/3/4/5 spanning two or more SCP dimensions. It also distinguishes itself from siblings by naming get_capability_links as the tool for the underlying membership links, so an agent can route correctly without opening either schema.

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?

Gives clear selecting conditions: omit signature_id for the whole set, pass it (e.g. 'CS-001') for one, pass include_retired to receive retired signatures. It also redirects to get_capability_links for underlying event-dimension membership. It lacks an explicit 'do not use this for X' exclusion beyond that redirect, so it falls 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.

get_commitmentsGet Compute Commitment RegisterA
Read-onlyIdempotent
Inspect

Retrieve the Compute Commitment Register — verified commitments of computing capacity by named actors to societal challenges, one record per instrument, quantities as published, never summed. Returns the challenge table (documents counted once per challenge touched; Committed and Allocated counts), the actor table, records with commitment, delivery and corroborating evidence, the Challenge List Reference, and definitions (each register term's defining sentence from the published working note, deep-linked). The register touches events only through Challenge Attributions — for an attributed event use get_event; for sovereign capability use query_scp; for coordination metrics use get_metrics. Pass view as table (default), actors, records or challenges; filter with challenge, actor_id, actor_type, band, status, ai_compute or standing; record_id returns one record in full, line items included; include_history returns the append-only observation series. Figures are dated observations within a Challenge List epoch — floors of located disclosure, never measures of activity; status stays pre_operational until the register's stated conditions are met. Served in full on both tiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandNoFilter by band: A grant or credit programme; B allocation on a named system; C sovereign or multilateral infrastructure; D commercial or philanthropic supply.
viewNo`table` (default): the challenge table with the sub-threshold table, transparency line and concentration. `actors`: the actor table. `records`: every live record without line items. `challenges`: the Challenge List Reference.
statusNoFilter by record status.
actor_idNoFilter to one actor of record by register actor id, e.g. "CCR-ACT-0001".
standingNoFilter to records with at least one line item of that standing.
challengeNoFilter to records with a line item under this challenge (case-insensitive substring; published or sub-threshold).
record_idNoReturn one record in full, line items included, e.g. "CCR-0004". Overrides `view`.
actor_typeNoFilter records by actor type (Register Standard vocabulary).
ai_computeNoFilter by whether the instrument states the capacity is for AI.
include_historyNoReturn every observation in each series instead of the latest only (default false).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent and non-destructive behavior, but the description adds substantial operational context: quantities are never summed, documents are counted once per challenge, history is append-only, figures are dated observations within a Challenge List epoch, and status remains pre_operational until stated conditions are met. It also notes the register is served in full on both tiers. These details go well beyond what the annotations provide.

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 front-loads the core purpose and is information-dense without obvious padding for a complex 10-parameter tool. However, it is a single long paragraph with many clauses and em-dashes, which reduces readability and structure. It could benefit from clearer separation of returns, routing and parameter guidance.

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 full burden of explaining returns, and it does so thoroughly: challenge table, actor table, records with evidence, Challenge List Reference, and definitions. It also covers caveats about counting, status semantics, and tier availability. Nothing essential for correct invocation appears to be missing.

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%, so the schema already explains each parameter's meaning, enum values and defaults in detail. The description recaps the parameters (view, filters, record_id, include_history) but adds little semantic value beyond what is already structured, aside from reinforcing that record_id overrides view and that history returns an append-only series. Baseline 3 is appropriate when the schema carries the parameter documentation.

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 names a specific verb (Retrieve) and a precise resource (the Compute Commitment Register), and immediately defines the register as verified commitments of computing capacity by named actors. It also distinguishes the tool from siblings by naming get_event, query_scp and get_metrics for adjacent use cases. An agent can identify the tool's scope without opening the schema.

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 explicitly routes the agent to alternatives: 'for an attributed event use get_event; for sovereign capability use query_scp; for coordination metrics use get_metrics.' It also states the default view and how filters select subsets, giving clear when-to-use guidance. The condition for using each alternative is stated directly.

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

get_connection_by_idGet Coordination Connection by IDA
Read-onlyIdempotent
Inspect

Retrieve a single Coordination Connection (CC) by its connection_id (e.g. "CC-06-11-3"). Use when you have the exact identifier; to list or filter CCs, use get_connections. Returns the CC with full evidence on the full tier — or when an endpoint is a sample event — and the base fields only otherwise.

ParametersJSON Schema
NameRequiredDescriptionDefault
connection_idYesCC identifier (e.g., "CC-06-11-3")

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real behavioral value beyond that: it discloses that the response shape is conditional, returning full evidence on the full tier (or when an endpoint is a sample event) and base fields otherwise. It stops short of naming what the 'base fields' are, keeping it out of the top band.

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?

Three compact sentences with the purpose front-loaded and the routing hint before the return semantics. Dense jargon ('full tier', 'base fields') costs a little clarity but nothing is wasted.

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?

With no output schema, the description carries the return-value burden and does explain that evidence depth varies by tier. It leaves 'full tier' and 'base fields' undefined for a reader unfamiliar with the domain model, which is the only real gap for a single-parameter read tool.

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?

One parameter at 100% schema description coverage, so the schema already documents `connection_id`. The description's example ('CC-06-11-3') duplicates the schema example rather than adding new semantics, so the baseline 3 applies.

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?

States a specific verb ('Retrieve') and resource ('a single Coordination Connection (CC)') with the scoping key ('by its connection_id'). It explicitly separates itself from the sibling `get_connections`, so an agent can choose between them without opening either schema.

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?

Gives an explicit trigger ('Use when you have the exact identifier') and names the alternative plus its condition ('to list or filter CCs, use `get_connections`'). Both the when and the when-not are covered.

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

get_connectionsGet Coordination ConnectionsA
Read-onlyIdempotent
Inspect

Retrieve Coordination Connections (CCs) — the typed, directional relationships WEO records between events — optionally filtered by event (as source or target), type (1–7), or confidence (CC-V / CC-E / CC-A). For a single CC by its identifier, use get_connection_by_id. Each CC carries its id, source/target event IDs, type name + number, confidence, and direction; full tier — and either tier when an endpoint is a sample event — adds the evidence summary, evidence detail, and verification history.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idNoReturn only CCs involving this event (as source or target)
confidenceNoFilter by confidence level: CC-V, CC-E, CC-A
connection_typeNoFilter by CC type (1–7)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds real value beyond that by disclosing the returned payload shape — id, source/target event IDs, type name+number, confidence, direction — and the tier/evidence-detail escalation, which matters given there is no output schema.

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?

Front-loaded with the core retrieval statement, then filters, then the sibling redirect, then the return-shape note. Dense but every clause carries information; slight overload in the final return-shape sentence keeps it from a perfect score.

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?

For a read-only, three-filter list tool with no output schema, the description covers what it returns, how to filter, and where to go for a single record. It omits pagination or result-size behavior, which is a minor gap rather than a blocking one.

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%, so all three parameters are already documented in the schema. The description restates the filter semantics (event as source or target, type range, confidence codes) but adds no syntax, defaults, or combination rules beyond it, so the baseline 3 applies.

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?

Names a specific verb and resource and defines the resource inline ('Coordination Connections (CCs) — the typed, directional relationships WEO records between events'). It also explicitly routes the single-record case to get_connection_by_id, so it is distinguishable from both siblings and generic list tools.

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?

States the available filters (event as source or target, type 1–7, confidence tier) and names the alternative tool for the single-record case. It does not say when this tool is a poor choice or what happens with unfiltered calls, but the routing guidance is clear.

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

get_contributionGet Contribution Architecture TermsA
Read-onlyIdempotent
Inspect

Look up WEO Contribution Architecture vocabulary — the contributor programme's terms, credit classes, and governance provisions (e.g. "Delta Credit", "Founding Observer", "Observer Network", "rate card", "malinformation"). Returns the term's context, its section anchor, and a deep link into the self-hosted CA edition. Omit term for programme status: phase, activation criterion, current corpus size, and enquiry address. Use to resolve participation vocabulary — the Contribution Architecture governs participation, whilst the Methodology Manual (get_methodology) governs what qualifies. Matching is exact-first, then substring; an unknown term returns a sample of available terms. Served in full on both tiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
termNoThe CA term to look up (e.g., "Delta Credit", "Founding Observer", "membership facts"). Omit for programme overview.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive, closed-world, but the description goes well beyond them: exact-first then substring matching order, the fallback behavior on an unknown term (returns a sample of available terms), what a hit returns (context, section anchor, deep link), and tier availability. These are behavioral traits an agent cannot obtain from 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?

Front-loaded with the primary action and scoped tightly; every sentence carries information. It is dense and clause-heavy, which slightly taxes first-pass readability, but no sentence is redundant.

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 return-value burden and does so: it lists hit fields, fallback output, and overview fields. For a one-param read tool with full annotations, nothing an agent needs to invoke it correctly is missing.

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% with a single optional param, so the baseline is 3, but the description adds meaning beyond the schema by spelling out what omitting `term` actually yields (phase, activation criterion, corpus size, enquiry address) rather than the schema's terse 'programme overview'.

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?

Specific verb (look up) plus a named resource (WEO Contribution Architecture vocabulary) with concrete example terms and an enumeration of the resource's sub-domains (terms, credit classes, governance provisions). It also explicitly disambiguates from the sibling get_methodology, so an agent can distinguish the two without opening either schema.

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?

Gives explicit when-to-use ('resolve participation vocabulary'), an alternative with its boundary ('the Methodology Manual (`get_methodology`) governs what qualifies'), and a mode-switch instruction ('Omit `term` for programme status'). Nothing about tool selection is left to inference.

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

get_coverage_statsGet Coverage StatisticsA
Read-onlyIdempotent
Inspect

Retrieve the current corpus statistics — live counts and distributions of events, Coordination Connections (CCs), and Sovereign Capability Profile actors across bloc, tier, domain, event type, primary industry, CC type, confidence, and designation, plus Environmental Nexus Tag (ENT) statistics with the Warmth Engine Ratio, counts of the derived layers — Infrastructure Threads, Capability Links with their type split, and Capability Signatures — the event-ID range, and the methodology version. Capability Link and Capability Signature counts are of active records only: retired records are excluded so the figures describe present coverage rather than everything ever assessed, with the active/retired splits published in the two capability tools' metadata. No parameters; figures are computed live, so the response always reflects the present database. The secondary-industry breakdown is full-tier only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety bar is met. The description adds genuinely useful semantics beyond that: counts are computed live, capability link/signature counts exclude retired records, and the active/retired splits live in the capability tools' metadata.

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

Conciseness3/5

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

The scoping note is well placed and the content is signal-dense, but the first sentence is a single sprawling run-on enumerating every distribution dimension. It is hard to parse and could be structured into bullets or split sentences.

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?

With no output schema, the description carries the return-value burden and does so thoroughly: it names every dimension, the ENT/Warmth Engine Ratio, the derived layers, event-ID range, and methodology version. Only the response's actual shape/format is left implicit.

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?

There are zero parameters, so per the baseline there is nothing for the description to disambiguate at the argument level. It correctly notes 'No parameters', matching the empty schema.

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?

States a specific verb (retrieve) and resource (corpus statistics) and enumerates exactly what is returned — event/CC/actor distributions, ENT/Warmth Engine Ratio, derived layer counts, methodology version. This is unmistakably different from get_metrics or get_methodology.

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

Usage Guidelines3/5

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

The description conveys that it takes no parameters and computes live figures, implying it is the 'describe present coverage' tool, but it never states when to prefer it over get_metrics, get_topology, or get_methodology. Usage must be inferred.

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

get_eventGet Event
Read-onlyIdempotent
Inspect

Retrieve one event by ID — classification, assessment, sources, industry tags, Environmental Nexus Tags (ENTs), bloc analysis, and tier rationale. Use when you already hold an event ID; to find IDs, use search_events. Pass event_id as the zero-padded string (e.g. "06", "141"). date is the implementation date (general availability for a product release). Free tier returns the complete record for sample events and the classification facts for all others (deeper assessment and evidence withheld); full tier returns every field.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesZero-padded event ID (e.g., "06", "141")
get_event_stackGet Event StackA
Read-onlyIdempotent
Inspect

Assemble the stack journey for one event — its kind-labelled value-chain neighbourhood at depth 1, the same composition the Atlas renders, in one call. Returns three separate arrays, never merged: coordination — the event's own Coordination Connections (CCs), all seven connection types, directed (types 1/3/4/5) and bidirectional/sibling (types 2/6/7) alike; each carries type/confidence/direction, plus evidence at full tier; material — the event's own Infrastructure-Thread edges, one per source→target pair, each with its sourced asset facts (linkType + asset + naming field); capability — the active Sovereign Capability Profile (SCP) dimension-membership waypoints for the event itself (actor, dimension, link_type, attribution, entity, and the link's link_id and lifecycle fields; plus qualification_basis/rationale/note at full tier). The three are different kinds of claim: a thread is a factual asset match, not a CC, and is never rendered as one. The capability array carries active links only and takes no parameter to widen it — a stack is the event's neighbourhood as the corpus now stands; for retired memberships, use get_capability_links with include_retired. A derived view over the existing connections, threads, and capability links — each substrate keeps its own gating, and the free tier leaks no paid fields. For the material layer alone, use get_threads; for the directed multi-hop coordination lineage between events, use traverse_coordination. Pass event_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesFocal event id e.g. "196" — the event whose stack neighbourhood to assemble

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only/idempotent/non-destructive, but the description adds real behavioral context beyond them: it is a derived view over existing substrates, each substrate 'keeps its own gating,' the free tier 'leaks no paid fields,' the capability array carries active links only and takes no widening parameter, and the three arrays are 'never merged' because they are different kinds of claim.

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?

Front-loads the core purpose in the first clause before diving into the three-array breakdown, and every subsequent sentence carries meaning (array contents, distinctions, alternatives). It is dense and long, but not padded with redundant restatement.

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 describes the return shape (three named arrays with their per-item fields), the gating/visibility model, and the alternatives for related queries. An agent has everything needed to call it correctly and interpret results.

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?

Only one parameter and schema coverage is 100%, so the schema already documents the event_id semantics fully. The description adds a little framing ('the event's neighbourhood as the corpus now stands') and 'Pass event_id,' but no format or syntax beyond the schema. Baseline 3 applies.

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?

States a specific verb (assemble) and resource (the stack journey for one event), then enumerates the three arrays returned. It explicitly names sibling tools (get_threads, traverse_coordination, get_capability_links) so an agent can distinguish this tool from them without opening any schema.

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?

Gives explicit when-to-use alternatives: 'For the material layer alone, use get_threads; for the directed multi-hop coordination lineage between events, use traverse_coordination,' and 'for retired memberships, use get_capability_links with include_retired.' These are concrete routing conditions with named alternatives.

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

get_methodologyGet Methodology DefinitionA
Read-onlyIdempotent
Inspect

Look up the WEO methodology definition for any platform-specific term, field, or concept (e.g. "CC-V", "T2", "PAA", "ENT-1", "PIET"). Returns the term's definition, its section anchor, a deep link to that section of the published methodology, and the methodology version. Use to resolve any vocabulary the other tools return. Pass term; matching is exact-first, then substring, and an unknown term returns a sample of available terms.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesThe term to look up (e.g., "CC-V", "T2", "PAA", "ENT-1", "PIET", "Basel Assessment")

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description goes beyond them by disclosing matching behavior (exact-first, then substring) and the fallback for unknown terms, which is genuinely useful operational context.

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 front-loaded sentences: purpose, return shape, usage and matching. Every sentence carries distinct information with no redundancy.

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 still enumerates the return contents (definition, section anchor, deep link, methodology version) and matching semantics. Nothing an agent needs to call it correctly is missing.

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 `term` parameter is already documented. The description adds value beyond the schema by explaining the matching algorithm and the unknown-term fallback, which the schema does not capture.

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?

States a specific verb+resource ("look up the WEO methodology definition") and enumerates concrete example terms, making clear it is a glossary/lookup tool distinct from the data-retrieval siblings. An agent can immediately tell this resolves vocabulary rather than fetching entities.

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?

"Use to resolve any vocabulary the other tools return" gives explicit context for when this tool is appropriate and ties it to the sibling set. It does not name a competing alternative or an explicit when-not, but no real alternative exists for glossary lookup.

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

get_metricsGet Coordination MetricsA
Read-onlyIdempotent
Inspect

Retrieve the WEO quantitative coordination metrics — dated observations of the documented connection network computed under Towards Coordination Science (TCS). Returns Cross-Sector Transmission Frequency (CSTF) with its permutation null model, the cross-sector transmission matrix (sparse non-zero cells plus the fixed 11-category row order), Framework Family Density, Cross-Bloc Connection Frequency, and Connection Growth Rate. For live corpus counts and distributions, use get_coverage_stats — metrics here are derived, dated observations, never live recomputations. Omit metric for all of them; set include_history for the full append-only series rather than the latest observation. Pre-operational: the corpus has not reached operational threshold, so every value is a dated observation of the documented record as constructed, not a measurement of the real-world coordination landscape. Each metric carries its own status — published metrics are surfaced on the platform; pre_operational ones are recorded but not publication-grade; insufficient_corpus ones are blocked. Values are comparable only within a taxonomy epoch. Served in full on both tiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNoSingle metric key: cstf, transmission_matrix, ffd, cbcf, or cgr. Omit for all metrics.
include_historyNoReturn the full append-only observation series instead of the latest observation only (default false).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: the pre-operational caveat, the per-metric `status` vocabulary (published / pre_operational / insufficient_corpus), the taxonomy-epoch comparability constraint, and the derived-not-live distinction. This is the kind of nuance an agent cannot infer from structured fields.

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?

Dense and front-loaded: the return payload is described first, then routing, then behavioral caveats. Some material (the `metric`/`include_history` guidance) duplicates the schema, and the status explanation is slightly repetitive, but there is no filler prose.

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 return-shape burden and does so: it lists every metric, explains the sparse matrix layout and fixed row order, and documents the `status` field. For a read-only metrics endpoint it leaves no operational gap.

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%, so both parameters are already fully documented in the schema. The description largely restates the same semantics (omit `metric` for all; `include_history` for the full series) without adding format or edge-case detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb and resource ('Retrieve the WEO quantitative coordination metrics') and enumerates the exact metric set returned (CSTF, transmission matrix, FFD, CBCF, CGR). It explicitly differentiates itself from the sibling get_coverage_stats, so an agent can route without opening either schema.

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?

Names the alternative tool and the condition that selects it ('For live corpus counts and distributions, use get_coverage_stats'), plus concrete invocation guidance: omit `metric` for all, set `include_history` for the full series. Both the when and the how are covered.

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

get_threadsGet Infrastructure ThreadsA
Read-onlyIdempotent
Inspect

Retrieve Infrastructure Threads — the factual material-link layer recording where the same named AI hardware asset (chip / GPU / NPU / custom ASIC) appears as a documented fact in two events. A thread is not a Coordination Connection: no connection type, no confidence grade — either the asset match is verified or it isn't. Pass event_id for that event's linked events in both directions: outbound = assets this event deploys or trains on, each linking to its producer event; inbound = events that use this event's asset. Each link carries the sourced claim (linkType ∈ deploys | trains_on | powered_by | fabricated_at, plus the asset) and the host-event field that names it. Omit event_id for the whole layer. For one event's value-chain stack, use get_event_stack. Free on both tiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idNoEvent id e.g. "182" (a deployer) or "196" (a producer); omit for the whole thread layer

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description earns credit by adding data semantics: what a thread is not, the enumerated linkType vocabulary (deploys | trains_on | powered_by | fabricated_at), and that it is free on both tiers. It does not address result size or limits when `event_id` is omitted for the entire layer, which is a meaningful gap for an unbounded query.

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?

Purpose is front-loaded in the first clause, followed by disambiguation, usage modes, and the sibling pointer in a logical order. It is dense but nearly every sentence carries information; the 'Free on both tiers' note is minor but useful.

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?

With no output schema, the description appropriately describes what each link carries (sourced claim, linkType, asset, host-event field) and how to scope the query, which is enough to call it correctly. The only omission is any indication of pagination or volume behavior for the whole-layer call.

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 goes beyond the schema's brief note by explaining the directional meaning of the results for a given event_id and confirming that omitting it returns the whole layer, adding interpretive value the schema does not carry.

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?

States a specific verb and resource ('Retrieve Infrastructure Threads') and immediately defines the resource as the material-link layer where a named AI hardware asset appears as a documented fact in two events. It explicitly distinguishes this from 'Coordination Connection' ('no connection type, no confidence grade'), so an agent can separate it from get_connections without opening either schema.

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?

Gives explicit routing: pass `event_id` for bidirectional linked events (outbound = assets this event deploys/trains on; inbound = events using this event's asset), omit it for the whole layer, and use `get_event_stack` instead for a single event's value-chain stack. Both the when and the alternative are named.

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

get_topologyGet Coordination TopologyA
Read-onlyIdempotent
Inspect

Retrieve the precomputed Coordination Topology — the structural lineage layer over the parent→child Coordination Connection graph (a DAG). Omit node_id for whole-graph network statistics (taxonomy-class counts, roots, multi-parent nodes, dominant roots by coordination reach, weakly-connected components). Pass node_id (e.g. "E34") for one node's structural metrics: generational depth (min/max/all-paths), coordination reach, directed betweenness, path diversity, fan-in/out, taxonomy class, component id. For the actual paths between nodes or up/down a lineage use traverse_coordination; for one event's value-chain stack use get_event_stack. Optional class / cc_type / min_reach filters return matching nodes. The full tier adds the held analyst layer (chain participation, curated orphan/sibling and named-feature sets).

ParametersJSON Schema
NameRequiredDescriptionDefault
classNoFilter nodes by taxonomy class: root | internal | leaf | sibling_only | orphan
cc_typeNoFilter to nodes incident to a backbone (parent→child) edge of this type (1–7)
node_idNoNode id e.g. "E34"; omit for the whole-graph summary
min_reachNoFilter to nodes with coordination_reach >= this value

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, non-openWorld, so the safety profile is covered. The description adds real behavioral context beyond that: the data is precomputed, what each return mode contains (taxonomy counts, roots, multi-parent nodes, weakly-connected components; depth, betweenness, fan-in/out per node), and that a full tier adds a held analyst layer. It does not discuss staleness/refresh or auth, which keeps it from a 5.

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?

Front-loads the core purpose and the omit/pass decision before the sibling routing and filter notes. Dense but every clause carries information; the metric enumerations are long but necessary given no output schema. Minor density cost keeps it off a 5.

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 return-value burden and does so fully (enumerated metrics per mode plus tier distinction), while annotations handle safety. An agent has everything needed to call and interpret this tool.

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 baseline is 3, but the description goes further: it explains the presence/absence semantics of node_id (omit = whole-graph, include = single node with example 'E34') and clarifies that class/cc_type/min_reach act as node filters returning matching nodes. That is meaningfully more than the raw schema.

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?

Names a specific verb (Retrieve) and resource (Coordination Topology), defines the underlying structure (DAG lineage over the parent→child Coordination Connection graph), and explicitly distinguishes itself from two siblings (traverse_coordination, get_event_stack). An agent can route correctly without opening any schema.

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?

Gives explicit branching guidance: omit node_id for whole-graph statistics, pass node_id for single-node metrics, and points to traverse_coordination for actual paths and get_event_stack for an event's value chain. This is textbook when-to-use plus named alternatives.

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

query_scpQuery Sovereign Capability ProfilesA
Read-onlyIdempotent
Inspect

Query the Sovereign Capability Profile (SCP) register by pivoting and comparing — distinct from get_actors, which fetches whole actors and is where energy_context is served; it is not returned here. Pass exactly one of: dimension (e.g. "D3") pivots that one dimension across every actor (each actor's met status and recorded headline, on what basis); actors (e.g. ["US","CN"]) lays those actors side by side across all seven dimensions (D1–D7); watch:true returns the dimension_watch register (forward-looking entries: actor, dimension, current vs expected_change, trigger, timeline). Readouts are descriptive — recorded status and fields, never causal inference. Free tier carries met + the headline for all actors and the US sample in full; the full tier adds the per-dimension evidence (constraint, qualification, sources, and escalation_trigger where recorded). Omit all three params for a usage hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
watchNotrue → return the dimension_watch register
actorsNoActor ids e.g. ["US","CN"] → compare those actors across D1–D7
dimensionNoDimension id D1–D7 (e.g. "D3") → pivot that dimension across all actors

TDQS

A5/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed world), and the description adds genuinely new context: results are 'descriptive — recorded status and fields, never causal inference,' free tier returns only met + headline with a US sample, full tier adds per-dimension evidence, and omitting all params returns a usage hint.

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?

Effectively one dense but front-loaded paragraph that leads with purpose and sibling differentiation, then enumerates the three modes, then the output semantics and tiering. No sentence is filler; em-dash clauses carry the routing and return-shape information compactly.

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 return-shape burden and does so for all three modes plus tier differences and default behavior. Combined with annotations covering the safety profile, an agent has everything needed to invoke it correctly.

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?

Schema coverage is 100%, so baseline would be 3, but the description goes further: it explains what each mode actually produces (pivot one dimension across every actor with met status and basis; side-by-side D1–D7 comparison; the dimension_watch fields of actor, dimension, current vs expected_change, trigger, timeline) and encodes the mutual-exclusivity constraint that additionalProperties:false alone does not express.

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 ('Query the Sovereign Capability Profile (SCP) register') and immediately distinguishes itself from get_actors, which 'fetches whole actors' and is 'where energy_context is served; it is not returned here.' An agent can route between the two without opening either schema.

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?

States the selection rule explicitly — 'Pass exactly one of' — and gives the condition that selects each mode: dimension pivots across actors, actors compares D1–D7, watch:true switches to the dimension_watch register. It names the alternative sibling (get_actors) and what that sibling does differently.

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

search_eventsSearch Events
Read-onlyIdempotent
Inspect

Search and filter the WEO event corpus by query text or classification (bloc, tier, domain, event type, primary industry tag); returns the matching events with their metadata, capped by limit (default 20, max 50). Use to discover or shortlist events; for a single event's complete record, use get_event. Events enter after a verification lag from their implementation date (six months; 60 days for verified product releases), so recent events may not yet appear, and an empty result is not evidence that no such event has occurred. Free tier returns the classification facts with the deeper assessment and evidence withheld on non-sample events; full tier — and sample events on either tier — return every field.

ParametersJSON Schema
NameRequiredDescriptionDefault
blocNoFilter by bloc: Western, Eastern (tier 3); Western-Led, Eastern-Led (tier 2); Cross-Bloc (tier 1). Each bloc value occurs at one tier only
tierNoFilter by tier: 1 (Cross-Bloc), 2 (Between-Bloc), 3 (Intra-Bloc); each tier carries its own bloc values (see `bloc`)
typeNoFilter by event type: Policy, Infrastructure, Corporate, Coordination
limitNoNumber of results (default 20, max 50)
queryNoFree-text search across event name and description
domainNoFilter by domain: Technology, Energy/Infrastructure, Security, Trade
industryNoFilter by primary industry tag
traverse_coordinationTraverse Coordination LineageA
Read-onlyIdempotent
Inspect

Walk the Coordination Topology lineage graph (precomputed lookups over the parent→child Coordination Connection DAG). mode="path" returns every path between source and target, each with its CC-type (connection-type) sequence and whether it is pure lineage (homogeneous) or crosses a sibling/bidirectional edge; mode="ancestors"/"descendants" return the nodes reachable up/down the hierarchy; mode="neighbours" returns direct parents and children. For a node's structural metrics or the whole-graph summary rather than walks, use get_topology. cc_types (connection-type filter) and max_depth apply to path AND to the ancestors/descendants/neighbours adjacency walks — supplying either runs a bounded typed walk over the backbone edges. homogeneous_only is path-only (drops any path crossing a sibling edge); sent to an adjacency mode it is returned in ignored_params. A bare numeric node_id missing the E prefix is resolved (the canonical form is echoed as resolved_node_id); a node that exists but carries no backbone edges is reported as such rather than as unknown.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesTraversal mode
sourceNoSource node id for mode=path
targetNoTarget node id for mode=path
node_idNoNode id for ancestors | descendants | neighbours (e.g. "E93"; a bare "93" is resolved)
cc_typesNoEdge-type (connection-type) filter, applied to path and adjacency walks; default = all types
max_depthNoMaximum walk depth — path length in mode=path, hop count from node_id in the adjacency modes
homogeneous_onlyNomode=path only — true → drop any path crossing a sibling (Type 6/7) edge; ignored (and echoed in ignored_params) on adjacency modes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already carry readOnly/idempotent/no-destructive, so safety is covered; the description goes further with behaviors found nowhere else: bare numeric node_id resolution echoed as resolved_node_id, an edge-less-but-existing node reported distinctly from unknown, and out-of-scope params surfaced in ignored_params rather than silently dropped. This is exactly the extra context that prevents misuse.

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?

Front-loaded with the core action and DAG scope, and every clause conveys mode behavior, filter applicability, or edge-case handling. It is a single dense paragraph with stacked parentheticals, which is slightly harder to scan, but there is no filler to cut.

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 7-parameter, four-mode traversal tool with no output schema, the description covers return shape per mode (paths with CC-type sequence and purity; reachable nodes; direct parents/children), filter interactions, and input normalization. Nothing an agent needs to invoke it correctly is missing.

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 adds genuine meaning by stating that cc_types and max_depth apply to both path and adjacency walks ('runs a bounded typed walk over the backbone edges'), what the path results contain per path, and that homogeneous_only is path-only with ignored_params echoing. Much of that is mirrored in the schema text, so it is strong value-add rather than fully novel.

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?

Specific verb+resource: 'Walk the Coordination Topology lineage graph (precomputed lookups over the parent→child Coordination Connection DAG)' with the four modes enumerated inline. It explicitly distinguishes itself from the sibling get_topology ('for structural metrics or the whole-graph summary rather than walks, use get_topology'), so an agent can route without opening a schema.

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?

Gives an explicit when-not rule with the named alternative (get_topology for metrics/summary), and mode-by-mode scope so the agent picks path vs ancestors/descendants/neighbours correctly. Also states which filters apply to which mode, removing inference.

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. 2 tool updates
    • Changedget_capability_links1 field changed
      • changedInput schema / properties / actor / description
        Previous value: -"Actor code filter (ISO 3166-1 alpha-2; EU for the European Union): US, CN, EU, FR, GB, IN, JP, KR, NL, SA, TW. Named `actor_name` in `get_actors`."New value: +"Actor code filter: a Sovereign Capability Profile register code (ISO 3166-1 alpha-2; EU for the European Union); `get_actors` lists the register. Named `actor_name` in `get_actors`."
    • Changedsearch_events2 fields changed
      • changedInput schema / properties / bloc / description
        Previous value: -"Filter by bloc: Western, Eastern, Western-Led, Eastern-Led, Cross-Bloc"New value: +"Filter by bloc: Western, Eastern (tier 3); Western-Led, Eastern-Led (tier 2); Cross-Bloc (tier 1). Each bloc value occurs at one tier only"
      • changedInput schema / properties / tier / description
        Previous value: -"Filter by tier: 1, 2, or 3"New value: +"Filter by tier: 1 (Cross-Bloc), 2 (Between-Bloc), 3 (Intra-Bloc); each tier carries its own bloc values (see `bloc`)"
  2. 1 tool update
    • Addedget_commitments
  3. 17 tool updates
    • Changedget_actors1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_blocs1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_capability_links1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_capability_signatures1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_connection_by_id1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_connections1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_contribution1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_coverage_stats1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_event1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_event_stack1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_methodology1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_metrics1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_threads1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_topology1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedquery_scp1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedsearch_events1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedtraverse_coordination1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
  4. 2 tool updates
    • Changedget_capability_links1 field changed
      • changedInput schema / properties / include_retired / description
        Previous value: -"Include retired links alongside active ones (default false — active only). Retired links are superseded records kept as frozen snapshots; use this to reconstruct a past state, not to read current membership."New value: +"Include retired links alongside active ones (default false — active only). Retired links are frozen snapshots of links that no longer qualify; use this to reconstruct a past state, not to read current membership."
    • Changedget_capability_signatures1 field changed
      • addedInput schema / properties / include_retired
        Added value: +{
        +  "description": "Include retired signatures alongside active ones (default false — active only). A retired signature is the frozen whole-state snapshot of a structure that changed or ceased to qualify; use this to reconstruct a past state.",
        +  "type": "boolean"
        +}
  5. 1 tool update
    • Changedget_capability_links1 field changed
      • addedInput schema / properties / include_retired
        Added value: +{
        +  "description": "Include retired links alongside active ones (default false — active only). Retired links are superseded records kept as frozen snapshots; use this to reconstruct a past state, not to read current membership.",
        +  "type": "boolean"
        +}
  6. 2 tool updates
    • Changedget_actors1 field changed
      • changedInput schema / properties / actor_name / description
        Previous value: -"Filter by actor code (exact, e.g. \"CN\") or name (partial match, e.g. \"China\"). Named `actor` in `get_capability_links`."New value: +"Filter by actor code (ISO 3166-1 alpha-2, exact, e.g. \"CN\") or name (partial match, e.g. \"China\"). Named `actor` in `get_capability_links`."
    • Changedget_capability_links1 field changed
      • changedInput schema / properties / actor / description
        Previous value: -"Actor code filter: US, CN, EU, FR, GB, IN, JP, KR, NL, SA, TW. Named `actor_name` in `get_actors`."New value: +"Actor code filter (ISO 3166-1 alpha-2; EU for the European Union): US, CN, EU, FR, GB, IN, JP, KR, NL, SA, TW. Named `actor_name` in `get_actors`."
  7. 3 tool updates
    • Changedget_actors1 field changed
      • changedInput schema / properties / actor_name / description
        Previous value: -"Filter by actor name (partial match)"New value: +"Filter by actor code (exact, e.g. \"CN\") or name (partial match, e.g. \"China\"). Named `actor` in `get_capability_links`."
    • Changedget_capability_links1 field changed
      • changedInput schema / properties / actor / description
        Previous value: -"Actor code filter: US, CN, EU, FR, GB, IN, JP, KR, NL, TW"New value: +"Actor code filter: US, CN, EU, FR, GB, IN, JP, KR, NL, SA, TW. Named `actor_name` in `get_actors`."
    • Changedsearch_events1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Keyword search across event name and description"New value: +"Free-text search across event name and description"

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.