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 81 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
warmthengine/warmth-engine-observatory
GitHub Stars
1
Server Listing
warmthengine.com/mcp
ChatGPT
–
Claude
Warmth Engine Observatory

TDQS

A4.3/5.0

Scored across 18 tools

Disambiguation4/5

Tools are mostly distinct, and descriptions explicitly cross-reference alternatives such as get_actors vs query_scp, get_connections vs get_connection_by_id, and get_topology vs traverse_coordination. A few pairs require careful reading because they cover whole-register vs single-record or pivoted views, but there is no true duplication.

Naming Consistency5/5

All tool names use snake_case and follow a verb_noun pattern, with no mixing of camelCase or chaotic conventions. The dominant get_* family is predictable, while query_scp, search_events, and traverse_coordination differ only in verb choice, not style.

Tool Count4/5

Eighteen tools is slightly above the ideal 3–15 range, but the server covers many distinct layers: events, connections, threads, topology, capability links, signatures, metrics, commitments, blocs, and vocabulary. Each tool maps to a separate resource or analytical view, so the count feels justifiable rather than bloated.

Completeness4/5

The read-only surface is broad: discovery, single-record retrieval, derived stacks, graph traversal, capability pivots, metrics, coverage stats, and vocabulary lookup are all present. Minor gaps include no exhaustive event enumeration and no date-range filtering, but these are not fatal for a descriptive observatory.

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.

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.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: tier-dependent content (free tier returns met status and headline per dimension; full tier adds constraint, qualification, and sources), the provenance and tier-independence of energy_context, and the crucial 'Descriptive — recorded status, never inference' framing. This is behavior an agent could not infer from the 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 retrieval action and its payload, then routing, then tier behavior — a sensible order. However, the energy_context clause is wordy and restates the same idea several times ('external reference data outside the WEO analytical stack, national totals, dated observations reported as published, accompanying the profiles but forming no part of them'), which could be tightened without losing meaning.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining returns and does so thoroughly: the field set, the free-vs-full tier split, and what energy_context does and does not contain. Combined with the sibling routing for query_scp, an agent has everything needed to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (actor_name, designation) are already fully documented in the schema, including the ISO code vs partial-name matching and the cross-tool naming note. The description's 'Filter by designation or actor name' adds no syntax or semantics beyond the schema, 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?

The description gives a specific verb ('Retrieve') and resource ('whole Sovereign Capability Profile (SCP) actors'), then enumerates the exact fields returned (designation, capability score, severance result, assessed, D1–D7 met/not-met, energy_context). It explicitly names the sibling it is not — 'to pivot one dimension across all actors ... use query_scp' — so an agent can discriminate 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?

It states the primary use ('fetch complete actor records') and names three concrete alternative scenarios (pivot one dimension, compare actors side by side, read the dimension-watch register) that route to query_scp instead, plus the filter options. When-to-use, when-to-use-something-else, and the selecting condition are all explicit.

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.

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.

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.

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.

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.

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.3/5.0
Behavior4/5

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

Annotations already declare this as a read-only, idempotent, non-destructive, closed-world operation. The description adds useful behavioral context by explaining the returned fields and the tier-dependent inclusion of evidence summaries, evidence detail, and verification history, though it does not cover pagination or ordering behavior.

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 definition is front-loaded and dense with useful information, with no redundant background. It is slightly long and compound in places, but every sentence contributes either selection guidance or return-value context.

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?

There is no output schema, so the description carries the return-value burden, and it does explain the core CC fields plus tier-dependent evidence fields. It does not mention pagination, result limits, or ordering, which keeps it from being fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, and the description largely restates the filters already documented in the schema: event as source/target, type 1–7, and confidence values. The baseline of 3 is appropriate because the schema carries the parameter semantics.

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

Purpose5/5

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

The description uses a specific verb and resource ('Retrieve Coordination Connections') and explains what CCs are as typed directional relationships between events. It explicitly distinguishes the single-record sibling `get_connection_by_id`, so an agent can select this tool without opening schemas.

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

Usage Guidelines5/5

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

It states the optional filter dimensions (event as source or target, type, confidence) and explicitly routes single-CC lookups to `get_connection_by_id`. This gives clear when-to-use and when-to-use-the-alternative guidance.

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.

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.

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

NameRequiredDescriptionDefault
event_idYesZero-padded event ID (e.g., "06", "141")

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, so the safety profile is free; the description goes further by disclosing tier-gated behavior (free tier returns complete records only for sample events and classification facts otherwise, full tier returns every field) and by defining the semantics of the returned `date` field. It stops short of covering failure behavior for an unknown ID, so it is strong rather than exhaustive.

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?

Four tight sentences ordered by usefulness: what it returns, when to use it, the ID format, then the tier caveat. The opening field enumeration is slightly listy but each element informs the agent about coverage, so little is wasted.

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

Completeness5/5

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

With no output schema, the description carries the burden of describing the return payload and does so via the field list plus the free/full tier distinction. Combined with the routing guidance and ID format, an agent has everything needed to call it correctly.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema already documents event_id including the zero-padded format. The description's 'Pass `event_id` as the zero-padded string (e.g. "06", "141")' largely restates the schema rather than adding new meaning — correct baseline.

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

Purpose5/5

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

States a specific verb+resource (retrieve one event by ID) and enumerates exactly what the record contains (classification, assessment, sources, industry tags, ENTs, bloc analysis, tier rationale). It is clearly distinguishable from the sibling get_event_stack and from search_events.

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

Usage Guidelines5/5

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

Explicitly states the precondition ('Use when you already hold an event ID') and names the alternative for the opposite case ('to find IDs, use `search_events`'). No inference is required to pick between the two tools.

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

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.

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.

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.

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.

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

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, so the safety profile is covered; the description adds substantive context beyond that — the concrete statistics returned, the filter behavior, and the note that 'the full tier adds the held analyst layer', which hints at tier-dependent results. It does not cover pagination or response size limits, so it falls short of 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?

Dense but well-structured, with the core purpose and the omit/pass branching front-loaded ahead of the alternative-tool routing and the tier note. It is longer than strictly necessary — the enumeration of per-node metrics could be trimmed — but nearly every sentence carries routing or semantic value.

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 correctly carries the burden of describing return content, covering both the whole-graph summary and the per-node metric list, and it clarifies filter effects. 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.

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, but the description adds real meaning beyond the schema: the semantics of omitting node_id (whole-graph statistics) versus supplying it (per-node structural metrics), plus the enumerable metric set per node and per-graph. The class/cc_type/min_reach filters are grouped and explained as node-matching filters.

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 precomputed Coordination Topology') and immediately defines the underlying structure (structural lineage layer over the parent→child Coordination Connection DAG). It differentiates itself from siblings by name (traverse_coordination, get_event_stack), so an agent can pick it without opening schemas.

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

Usage Guidelines5/5

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

Explicit branching guidance: omit node_id for whole-graph stats, pass node_id (with example 'E34') for single-node metrics. It also names two alternative tools and the exact conditions under which to prefer them, leaving nothing to inference.

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.

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

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

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare a safe, idempotent, closed-corpus read, so the bar is lower, yet the description still adds substantive behavior no structured field carries: the verification lag (six months; 60 days for verified product releases) and the tier-dependent field availability (free tier withholds assessment/evidence on non-sample events). These are real behavioral traits an agent must know to interpret results.

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 purpose and return shape, then routing, then the lag caveat and tier behavior — every sentence carries information and none is filler. It is dense and slightly long for a single paragraph, but not padded, so it sits just under a perfect mark.

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

Completeness5/5

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

There is no output schema, and the description compensates by describing what is returned (matching events plus metadata, bounded by `limit`), how completeness is constrained (verification lag), and how results differ by tier. Nothing essential for correct invocation or result interpretation 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 all seven parameters, including the five enums, are documented in the schema itself with cross-references between `bloc` and `tier`. The description restates the filter names and the limit default/max but adds no syntax, format, or combination semantics beyond the schema, 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 and resource ('Search and filter the WEO event corpus') and enumerates the filter dimensions (bloc, tier, domain, event type, industry tag) plus the return shape (matching events with metadata, capped by limit). It also explicitly distinguishes itself from the sibling `get_event`, 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?

Gives an explicit when-to-use ('discover or shortlist events') and names the alternative and its condition ('for a single event's complete record, use get_event'). It goes further by warning that a recent event may be absent due to the verification lag and that an empty result is not evidence of non-occurrence, which is exactly the kind of usage guidance that prevents misinterpretation.

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

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.

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.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral detail beyond that: it discloses the ignored_params echo when homogeneous_only is sent to an adjacency mode, the resolved_node_id echo for bare numeric ids, and that a node with no backbone edges is reported distinctly rather than as unknown. It does not discuss result size or any caps on the number of paths returned.

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?

Purpose and mode semantics are front-loaded, then parameter interactions, then id-resolution behavior. Dense but every clause carries information (mode contracts, scope of filters, ignored-param behavior); no filler 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?

There is no output schema, but the description compensates by describing what each mode returns (paths with CC-type sequences and pure-lineage flag, reachable nodes, direct parents/children) plus the echoed fields. For a 7-parameter graph-walk tool this is close to complete; only result-size limits or empty-result semantics are unaddressed.

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, but the description adds cross-parameter semantics the schema cannot express: cc_types and max_depth apply to path AND adjacency walks, homogeneous_only is path-only and is echoed in ignored_params otherwise, and a bare node_id is resolved to the canonical E-prefixed form. That is meaningful meaning beyond the per-field descriptions.

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 (walk) and resource (Coordination Topology lineage graph) and enumerates the four modes with what each returns. It also explicitly separates itself from the sibling get_topology ('For a node's structural metrics or the whole-graph summary rather than walks, use get_topology'), so an agent can route between the two 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?

Names the alternative tool and the exact condition that selects it, and explains which mode to pick for each intent (path vs ancestors/descendants vs neighbours). Nothing about when to use this versus get_topology 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.

Tool Schema Changelog

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

  1. 6 tool updates
    • Changedget_actors1 field changed
      • addedInput schema / properties / designation / enum
        Added value: +[
        +  "PAA",
        +  "AIK",
        +  "ACS",
        +  "Participant"
        +]
    • Changedget_capability_links1 field changed
      • addedInput schema / properties / dimension / enum
        Added value: +[
        +  "D1",
        +  "D2",
        +  "D3",
        +  "D4",
        +  "D5",
        +  "D6",
        +  "D7"
        +]
    • Changedget_connections5 fields changed
      • addedInput schema / properties / confidence / enum
        Added value: +[
        +  "CC-V",
        +  "CC-E",
        +  "CC-A"
        +]
      • addedInput schema / properties / connection_type / enum
        Added value: +[
        +  1,
        +  2,
        +  3,
        +  4,
        +  5,
        +  6,
        +  7
        +]
      • removedInput schema / properties / connection_type / maximum
        Removed value: -9007199254740991
      • removedInput schema / properties / connection_type / minimum
        Removed value: --9007199254740991
      • changedInput schema / properties / connection_type / type
        Previous value: -"integer"New value: +"number"
    • Changedget_topology5 fields changed
      • addedInput schema / properties / cc_type / enum
        Added value: +[
        +  1,
        +  2,
        +  3,
        +  4,
        +  5,
        +  6,
        +  7
        +]
      • removedInput schema / properties / cc_type / maximum
        Removed value: -9007199254740991
      • removedInput schema / properties / cc_type / minimum
        Removed value: --9007199254740991
      • changedInput schema / properties / cc_type / type
        Previous value: -"integer"New value: +"number"
      • addedInput schema / properties / class / enum
        Added value: +[
        +  "root",
        +  "internal",
        +  "leaf",
        +  "sibling_only",
        +  "orphan"
        +]
    • Changedsearch_events8 fields changed
      • addedInput schema / properties / bloc / enum
        Added value: +[
        +  "Western",
        +  "Eastern",
        +  "Western-Led",
        +  "Eastern-Led",
        +  "Cross-Bloc"
        +]
      • addedInput schema / properties / domain / enum
        Added value: +[
        +  "Technology",
        +  "Energy/Infrastructure",
        +  "Security",
        +  "Trade"
        +]
      • addedInput schema / properties / industry / enum
        Added value: +[
        +  "Semiconductors & Equipment",
        +  "Cloud, Data Centres & Connectivity Infrastructure",
        +  "AI Software & Platforms",
        +  "Defence & Aerospace",
        +  "Energy & Power Infrastructure",
        +  "Financial Services & Investment",
        +  "Mining & Critical Minerals",
        +  "Trade & Logistics",
        +  "Automotive & Manufacturing",
        +  "Quantum Computing Infrastructure",
        +  "Telecoms"
        +]
      • addedInput schema / properties / tier / enum
        Added value: +[
        +  1,
        +  2,
        +  3
        +]
      • removedInput schema / properties / tier / maximum
        Removed value: -9007199254740991
      • removedInput schema / properties / tier / minimum
        Removed value: --9007199254740991
      • changedInput schema / properties / tier / type
        Previous value: -"integer"New value: +"number"
      • addedInput schema / properties / type / enum
        Added value: +[
        +  "Policy",
        +  "Infrastructure",
        +  "Corporate",
        +  "Coordination"
        +]
    • Changedtraverse_coordination4 fields changed
      • addedInput schema / properties / cc_types / items / enum
        Added value: +[
        +  1,
        +  2,
        +  3,
        +  4,
        +  5,
        +  6,
        +  7
        +]
      • removedInput schema / properties / cc_types / items / maximum
        Removed value: -9007199254740991
      • removedInput schema / properties / cc_types / items / minimum
        Removed value: --9007199254740991
      • changedInput schema / properties / cc_types / items / type
        Previous value: -"integer"New value: +"number"
  2. 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`)"
  3. 1 tool update
    • Addedget_commitments
  4. 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
  5. 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"
        +}
  6. 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"
        +}
  7. 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`."
  8. 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.