Skip to main content
Glama

Distil — Machine-Native Public Data Refinery

Server Details

Token-bounded (< 1.5 KB / ~300 tokens) public data refinery for AI agents. Delivers sub-5ms corporate filings (US SEC EDGAR, UK Companies House, France INPI), beneficial ownership graphs, public procurement tenders (Spain PLACSP, EU TED), and automated corporate risk scoring. Cuts LLM context waste by ~95%.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

16 tools
get_corporate_risk_scoreGet Corporate Solvency Risk ScoreA
Read-onlyIdempotent
Inspect

Performs automated forensic solvency and credit distress analysis across UK or US companies (< 1.5 KB). Explicitly separates objective statutory facts (delinquent accounts filing dates, director resignation counts, active mortgages, insolvency history) from transparent heuristic model weighting (+35 pts, +25 pts) to provide explainable 0–100 risk audits and credit recommendations (APPROVE, CAUTION, REJECT).

ParametersJSON Schema
NameRequiredDescriptionDefault
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
identifierYesCompany identifier (UK 8-digit company number or US ticker/CIK).
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.
jurisdictionYesJurisdiction code ('UK' for United Kingdom or 'US' for United States).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, so the description does not need to restate those. It adds useful behavioral context by disclosing that the analysis separates objective statutory facts from transparent heuristic weighting (+35 pts, +25 pts), explains the 0–100 scoring, and notes the <1.5 KB response size. It does not reveal rate limits or auth requirements, but the annotation set already addresses the main safety profile.

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

Conciseness5/5

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

The description is a single dense sentence with no filler. It front-loads the core action and scope, then adds concrete examples of statutory facts and heuristic weights, and finishes with the output format. Every clause adds 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?

Given the rich annotations, fully described input schema, and presence of an output schema, the agent has everything needed to invoke this tool correctly. The description covers the analytical approach, output categories, and response size, while cache and spend-control behavior are fully documented in the parameter schema.

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 documents all four parameters, including jurisdiction, identifier, maxAgeHours, and forceFresh. The description adds only the general scope of UK/US companies and does not elaborate on parameter meaning, so the baseline score of 3 is appropriate.

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 starts with a specific verb and resource: 'Performs automated forensic solvency and credit distress analysis across UK or US companies.' It also names the concrete output, 0–100 risk audits with APPROVE/CAUTION/REJECT recommendations, which clearly distinguishes it from sibling tools focused on filings, officers, tenders, or sanctions.

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

Usage Guidelines4/5

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

The description clearly establishes when this tool applies: when an agent needs a solvency or credit-distress audit for a UK or US company. It does not explicitly name alternative tools or define exclusions, but the distinct output type and jurisdiction scope make selection unambiguous against the listed sibling tools.

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

get_cross_border_entity_graphGet Cross Border Entity GraphA
Read-onlyIdempotent
Inspect

Maps cross-border corporate parent-subsidiary relationships, multinational public tender wins, common directors, and historical state mutations across US, UK, France, Spain, and EU (< 2 KB).

ParametersJSON Schema
NameRequiredDescriptionDefault
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
identifierYesCompany name, ticker, French SIREN, UK company number, or tender contractor name.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the description does not need to repeat those. The description adds the response size constraint (<2 KB) and hints at temporal coverage through 'historical state mutations,' but does not describe caching, rate limits, or data freshness beyond what the parameter schema already covers.

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

Conciseness5/5

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

The description is a single well-structured sentence that front-loads the action and resource, lists the key relationship types, and tucks the size note at the end. Every phrase earns its place with no repetition or 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?

The description covers the tool's scope, the types of relationships mapped, the geographic coverage, and even response size. With an output schema present, parameter schema at 100% coverage, and annotations covering safety and idempotency, nothing needed 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 each parameter (identifier, forceFresh, maxAgeHours) already has detailed semantic documentation. The tool description itself adds no additional parameter-level meaning, so a baseline score of 3 is appropriate.

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 begins with the specific verb 'Maps' and clearly identifies the resource: cross-border corporate parent-subsidiary relationships, tender wins, common directors, and historical state mutations. The geographic scope (US, UK, France, Spain, EU) and the graph-oriented output differentiate it from siblings like get_uk_corporate_network or get_eu_public_tender.

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

Usage Guidelines4/5

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

The description implies a clear use case: any request needing cross-border corporate relationships or multinational tender context. It does not explicitly name alternatives or state when not to use this tool, but the 'cross-border' and jurisdiction scope provide clear context that distinguishes it from country-specific siblings.

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

get_es_public_tenderGet Spain Public TenderA
Read-onlyIdempotent
Inspect

Fetches a verified, token-optimized statutory public sector procurement tender from Spain's aggregated PLACSP syndication feed (CODICE XML) by expediente identifier (< 1.5 KB). Returns contracting authority, tender title, budget valuation in EUR, contract type, CPV code, awarded contractor, and award date. Note: PLACSP has no live single-tender lookup API, so this serves from Distil's continuously-synced data moat — use search_es_tenders first if you don't already have the exact expediente ID, and expect 'not found' for tenders outside the aggregated feed's recent window.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenderIdYesOfficial Spanish public tender folder identifier or PLACSP expediente reference (e.g. '2024/00123').
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnly, openWorld, idempotent), the description discloses the underlying data source is a syndicated feed with no live single-tender API, that it serves from a continuously-synced cache, and that it may return not-found for older tenders. This gives the agent essential expectations not captured in structured metadata.

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

Conciseness4/5

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

The description is dense and informative, front-loading the core function and return fields before the context note. It is slightly verbose with phrases like 'Distil's continuously-synced data moat,' but every sentence contributes actionable context.

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?

The tool has an output schema and comprehensive annotations, and the description fills the remaining gaps: data provenance, freshness limitations, alternative tool routing, and expected not-found behavior. Together this fully equips an agent to use the tool 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%, with each parameter already documented with details such as examples and defaults. The description reinforces tenderId as the lookup key but adds no new semantic meaning beyond the schema, so baseline 3 is appropriate.

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 ('fetches') with a clear resource: Spain's PLACSP syndication feed by expediente identifier. It distinguishes itself from siblings by naming the specific country, data feed, and identifier type, and even references the sibling search_es_tenders, making the tool's purpose unmistakable.

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 tells the agent to use search_es_tenders first if the exact expediente ID is not known, and warns about 'not found' results outside the recent feed window. It also explains the lack of a live API, providing clear context for when this tool is appropriate versus alternatives.

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

get_eu_public_tenderGet EU TED Public TenderA
Read-onlyIdempotent
Inspect

Fetches condensed, token-optimized public procurement tender notice across the 27 EU member states from TED (< 1.5 KB). Returns contracting public authority, notice status, estimated budget in EUR, CPV classification code, and awarded suppliers.

ParametersJSON Schema
NameRequiredDescriptionDefault
noticeIdYesThe European Union TED publication notice identifier (e.g. '2026-OJS-FR-CYBER-001').
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral context: it returns condensed, token-optimized data under 1.5 KB and lists the key fields included, which helps an agent understand response characteristics without needing to open the 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.

Conciseness5/5

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

The description is a single front-loaded sentence that states the operation, scope, size constraint, and return contents with no filler. Every phrase earns its place.

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

Completeness4/5

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

With read-only annotations, a well-documented schema, and an output schema present, the description is nearly sufficient for correct invocation. The only notable gap is the lack of explicit routing guidance against sibling tools, but an agent with a noticeId can confidently select this 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?

Schema description coverage is 100%, and the schema itself provides rich explanations for noticeId, forceFresh, and maxAgeHours, including caching and surcharge semantics. The main description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.

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 begins with a specific verb and resource: 'Fetches ... public procurement tender notice across the 27 EU member states from TED.' It also lists the returned data fields, making it clear this is a single-notice retrieval tool and distinguishing it from sibling search and country-specific tender tools.

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 intended use is implied: an agent should call this when it has a specific noticeId and needs a concise EU TED tender notice. However, the description never explicitly states when to prefer this over siblings like search_eu_tenders or get_es_public_tender, nor does it mention exclusions.

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

get_fr_company_filingGet France Enterprise FilingA
Read-onlyIdempotent
Inspect

Fetches verified French statutory enterprise dossier from INPI / SIRENE by 9-digit SIREN (< 1.5 KB). Returns official INSEE legal form (SA, SAS, SARL, SE), NAF/APE activity codes, active establishment count, registered headquarters address, and statutory officers/directeurs généraux.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.
sirenOrQueryYes9-digit French SIREN enterprise number (e.g. '552032534' for L'Oréal, '855200887' for Michelin).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior, so the bar is lower. The description adds useful context beyond annotations: 'verified', official statutory source (INPI / SIRENE), response size cap (<1.5 KB), and the specific official data elements 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?

Two information-dense sentences with the action and scope front-loaded. The return-field list and response-size note are compact and add value; there is no filler or redundancy.

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?

Given the full annotations, complete parameter schema, and existing output schema, the description sufficiently covers source, country, identifier format, and return content. It is nearly complete but does not explicitly mention alternative sibling tools for search or other countries, so it stops just short of maximal completeness.

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%, with all three parameters documented in detail and examples, so the baseline is 3. The description adds little parameter-level meaning beyond restating the 9-digit SIREN format; forceFresh and maxAgeHours are only explained in the 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 an exact action ('Fetches verified French statutory enterprise dossier'), named sources (INPI / SIRENE), required identifier format (9-digit SIREN), and enumerates returned fields. The French scope and SIREN input clearly distinguish it from sibling country-filing and search tools.

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 implies lookup of a specific French company filing when a SIREN is known, but it does not explicitly say when to prefer this over search_fr_companies or the UK/US filing equivalents, nor does it state exclusions. The intended context is clear but 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_sanctions_and_pep_screeningScreen Global Sanctions & PEP ListsA
Read-onlyIdempotent
Inspect

Screens corporate entities, contractors, and individuals against US OFAC (SDN), the UK Sanctions List (FCDO), EU Financial Sanctions Files, and the UN Security Council Consolidated List (< 1.2 KB). Uses fuzzy Jaccard string distance to catch spelling variations and aliases, returning immediate compliance verdicts and risk scores. Screens sanctions designations only, not PEP status.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesTarget company name, director name, or entity identifier to screen for statutory sanctions (e.g. 'Sberbank', 'Gazprombank').
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
fullResultsNoDefault false returns only the highest-confidence matches (token-bound, capped, fits this tool's advertised <1.2KB budget) with the true total match count always disclosed. Set true to receive every match found instead — for a compliance screening use case, some callers need the complete picture, not a capped subset; the response discloses total match count either way so the caller always knows whether they're seeing the whole list.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.
jurisdictionNoOptional jurisdiction filter ('US', 'UK', 'EU', 'UN').

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the bar for additional behavior disclosure is lower. The description adds genuinely useful behavioral context: fuzzy Jaccard matching to catch spelling variations/aliases, immediate verdict/risk-score output, and the explicit exclusion of PEP screening. It does not mention caching, refresh behavior, or spend controls, but those are covered in schema parameter descriptions.

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

Conciseness4/5

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

The description is only three sentences, front-loads the primary purpose, and avoids filler. The phrase '< 1.2 KB' is awkwardly attached to the UN list and reads ambiguously—likely referring to the response budget rather than the list itself. The overall structure is still efficient and well-ordered.

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?

Given rich input schema descriptions, annotations, and an output schema, the description does not need to explain return values or every parameter. It covers the screening subject, the sanctions lists queried, the matching approach, and the output nature. The missing piece is consistency with the tool's 'PEP' name/title, and the ambiguous size constraint, which slightly undermines completeness.

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%, with rich descriptions for all five parameters, including forceFresh, fullResults, maxAgeHours, jurisdiction, and query. The tool description does not add new parameter-level semantics beyond indicating the subject types (corporate entities, contractors, individuals), so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool's specific verb and resource: it screens corporate entities, contractors, and individuals against US OFAC, UK FCDO, EU, and UN sanctions lists, returning compliance verdicts and risk scores. It explicitly clarifies that it screens sanctions designations only, not PEP status, which helps differentiate it from sibling tools. However, the tool name and title both prominently include 'PEP', while the description says the opposite, creating avoidable confusion.

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 implies a clear use case—statutory sanctions screening—and explicitly carves out PEP status as out of scope. It does not name alternative sibling tools or state when another tool should be used instead, such as get_corporate_risk_score. The usage guidance is therefore adequate but mostly implicit.

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

get_tender_intelligenceGet Tender Pricing IntelligenceA
Read-onlyIdempotent
Inspect

Computes statistical pricing intelligence, winning bidder concentration, and recommended RFP bid discount windows across public procurement tenders in Spain (PLACSP) and the European Union (TED) (< 1.5 KB). Accepts a tender notice ID (e.g. '2026-OJS-FR-CYBERSEC-001', '2024/00123'), a CPV code (e.g. '72000000', '30200000'), or a sector keyword query (e.g. 'cybersecurity', 'cloud infrastructure', 'limpieza'). Returns average/median budgets, winning contractor market shares, historical discount rates, and benchmark reference contracts.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch keyword, sector name, or project title (e.g. 'cybersecurity', 'cloud', 'limpieza', 'software').
countryNoTwo-letter country code filter for EU tenders (e.g. 'FR', 'DE', 'ES', 'IT', 'NL').
cpvCodeNoCommon Procurement Vocabulary code prefix (e.g. '72000000', '30200000') OR tender notice ID.
noticeIdNoAlias for tenderId (e.g. '2026-OJS-FR-CYBERSEC-001').
tenderIdNoSpecific tender identifier or EU TED notice ID (e.g. '2026-OJS-FR-CYBERSEC-001', '2024/00123') to benchmark against its sector.
authorityNoContracting public authority name filter (e.g. 'Ministerio de Hacienda', 'ENISA').
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.
contractTypeNoContract type classification filter (e.g. 'SERVICES', 'SUMINISTROS', 'SERVICIOS', 'WORKS').
jurisdictionNoJurisdiction scope: 'ALL' (default, covers EU TED + Spain PLACSP), 'ES' (Spain), 'EU' (European Union TED), or country code ('FR', 'DE', 'ES', etc.).ALL

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about the data sources (PLACSP and TED), the scope (Spain/EU), and the computed nature of outputs, which goes beyond the safety profile. It does not disclose failure modes or caching behavior, but the bar is lowered by 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.

Conciseness5/5

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

The description is a single, focused paragraph with no redundant sentences. It front-loads the core purpose, then lists accepted inputs and outputs efficiently. The mention of '< 1.5 KB' is a minor oddity but does not detract from clarity.

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

Completeness3/5

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

The tool has 10 optional parameters, and the description does not explain parameter precedence or how they combine (e.g., if both tenderId and query are provided). While output schema exists, the interaction logic is missing. For a complex tool, this gap could lead to incorrect invocation. However, the schema descriptions and examples partially compensate.

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 descriptions cover all 10 parameters (100% coverage), so the schema already explains each parameter. The description merely reiterates that the tool accepts tender ID, CPV code, or keyword, but adds no new semantic detail about parameter usage, interactions, or valid formats beyond the schema. Baseline 3 is warranted.

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 states a specific verb ('Computes'), a clear resource ('statistical pricing intelligence ... across public procurement tenders in Spain (PLACSP) and the European Union (TED)'), and explicit output types ('average/median budgets, winning contractor market shares, historical discount rates, and benchmark reference contracts'). This distinguishes it from sibling retrieval tools like get_es_public_tender or search_eu_tenders, which focus on single tenders or search results.

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

Usage Guidelines4/5

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

The description clarifies that the tool accepts a tender ID, CPV code, or sector keyword, implying its analytical use case. However, it does not explicitly state when to prefer this over alternatives (e.g., 'Use this instead of get_eu_public_tender when you need pricing intelligence'). The context is clear but lacks direct exclusions or alternative routing.

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

get_uk_company_filingGet UK Company FilingA
Read-onlyIdempotent
Inspect

Retrieves official statutory corporate registration record from UK Companies House. Returns active status, incorporation date, SIC industry codes, registered office address, registered charges/mortgages count, statutory annual accounts filing health, and next confirmation statement due date in token-optimized Markdown-KV (< 1 KB). Call this during UK vendor due diligence, credit risk audits, and corporate KYB screening.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.
companyNumberYesThe 8-character UK Companies House company number (e.g. '00445790' for Tesco PLC, '00002065' for Lloyds Bank).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond that: it is an 'official statutory' record, token-optimized Markdown-KV under 1 KB, and includes specific data-health signals like filing health and confirmation statement due date.

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?

Two sentences, no filler. The first identifies the action and source; the second packs in return content, output format, and use cases efficiently. Every clause earns its place.

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

Completeness5/5

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

Given the rich input schema, strong annotations, and output schema presence, the description covers the essentials: what it returns, why to call it, and the context. Nothing critical is missing for a UK company filing retrieval 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?

Schema description coverage is 100%, including spend-control semantics and an example company number. The tool description itself adds no parameter-level meaning beyond pointing to the data source, so the baseline of 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 states a specific verb ('Retrieves'), a clear resource ('official statutory corporate registration record from UK Companies House'), and lists concrete return fields. It is easily distinguished from sibling tools like get_fr_company_filing or get_uk_company_officers.

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?

It explicitly names target contexts: 'UK vendor due diligence, credit risk audits, and corporate KYB screening.' It does not mention exclusions or alternatives, but the use cases are clear enough to guide selection.

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

get_uk_company_officersGet UK Company OfficersA
Read-onlyIdempotent
Inspect

Retrieves complete statutory board of directors, corporate secretaries, and officers from UK Companies House. Returns full active and resigned rosters, official appointment/resignation dates, nationalities, and roles (< 2 KB). Call this for director background checks, executive vetting, and PEP conflict audits.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.
companyNumberYesThe 8-character UK Companies House company number (e.g. '00445790', '00041424').

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context by specifying that it returns complete active and resigned rosters, official dates, nationalities, roles, and a small payload size (<2 KB). No contradiction with annotations.

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

Conciseness5/5

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

Three short sentences, each earning its place: what the tool retrieves, what it returns, and when to call it. The most important information is front-loaded and there is no filler or repetition.

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

Completeness4/5

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

The description covers source, return content, and practical use cases, while annotations and the rich schema cover safety and parameter behavior. It is complete enough for a competent agent to select and invoke the tool, though it could offer explicit alternative routing among UK siblings.

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%, with each parameter already documented, including companyNumber format and forceFresh/maxAgeHours caching behavior. The tool description itself does not add parameter-level semantics, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Retrieves' and the resource: statutory board of directors, corporate secretaries, and officers from UK Companies House. This is a distinct purpose from sibling tools like get_uk_company_filing or get_uk_corporate_network, so an agent can disambiguate 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 Guidelines4/5

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

The description explicitly says 'Call this for director background checks, executive vetting, and PEP conflict audits,' which gives clear contexts for use. It does not explicitly name alternatives or say when not to use it, but the stated use cases are practical and specific enough.

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

get_uk_corporate_networkGet UK Corporate NetworkA
Read-onlyIdempotent
Inspect

Maps UK corporate group hierarchies, Persons with Significant Control (PSC / UBO), ultimate beneficial ownership chains, parent companies, and director interlocks (< 2 KB). Computes board resignation turnover ratio and offshore control risk flags. Call this for anti-money laundering (AML) and ultimate beneficial ownership compliance.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.
companyNumberYesThe 8-character UK Companies House company number (e.g. '00445790').

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds value by revealing that the tool doesn't just fetch data but computes derived analytics (turnover ratio, risk flags) and gives a response size hint (<2 KB). No contradiction with annotations.

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

Conciseness5/5

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

Two tightly packed sentences with zero waste: the first lists capabilities and derived metrics, the second states the use case. The most important information (what it does) is front-loaded, and no filler is present.

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 an output schema present, the description doesn't need to explain return values. It covers the core purpose, derived analytics, and use case. It omits details on cache behavior and surcharges, but those are fully documented in the parameter descriptions, so the description is adequately complete for an agent to decide when to call it.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for all three parameters (including spend-control semantics for forceFresh and maxAgeHours). The description adds no parameter-specific information beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool maps UK corporate group hierarchies, PSC/UBO, ownership chains, parent companies, and director interlocks, and computes derived metrics (board resignation turnover, offshore risk flags). This is specific and distinct from siblings like get_uk_company_filing and get_uk_company_officers, which focus on filings and officers respectively.

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

Usage Guidelines4/5

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

The description explicitly directs usage for AML and UBO compliance ('Call this for...'), giving clear context. It does not name alternatives or state when not to use it, but the purpose is sufficiently scoped that an agent can infer it's the specialized tool for corporate network analysis 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_us_sec_filingGet US SEC Corporate FilingA
Read-onlyIdempotent
Inspect

Retrieves authentic US SEC EDGAR statutory filings (Form 10-K annual reports, 10-Q quarterly reports, 8-K material events) by stock ticker symbol or 10-digit CIK (< 1.5 KB). Returns SIC classification code, state of incorporation, fiscal year end, and recent filing accession numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
identifierYesUS company stock ticker symbol (e.g. 'AAPL', 'MSFT', 'TSLA') or 10-digit SEC CIK number.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, so the description need not repeat that. It adds behavioral context by asserting the data is 'authentic' SEC EDGAR statutory data, specifying the forms, and noting that returned accession numbers are 'recent' rather than a full history. No contradiction with annotations.

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

Conciseness4/5

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

Two sentences with no filler; the first sentence front-loads the core action and scope, and the second lists output highlights. The parenthetical '<1.5 KB' is slightly cryptic and the phrase 'Retrieves ... filings' is loose because the tool actually returns metadata/accession numbers, but overall the definition is compact.

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 retrieval tool with 100% schema coverage, an output schema, and rich annotations, the description is nearly complete: it gives jurisdiction, accepted identifiers, form types, and a sense of the returned fields. The only minor gap is ambiguity about whether it returns full filing text vs. metadata, and the meaning of '<1.5 KB' is unexplained.

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 documents identifier, forceFresh, and maxAgeHours fully, including spend-control behavior. The description's 'by stock ticker symbol or 10-digit CIK' merely echoes the identifier property and adds no new parameter-level detail.

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 states a specific verb ('Retrieves') with a precise resource ('US SEC EDGAR statutory filings'), and enumerates the forms covered (10-K, 10-Q, 8-K). It also names the input as ticker or 10-digit CIK, which clearly separates it from siblings like get_uk_company_filing and get_eu_public_tender.

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

Usage Guidelines4/5

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

The description establishes clear jurisdictional context ('US SEC EDGAR') that tells an agent when to select this tool over UK/EU/French filing tools, but it does not explicitly state when not to use it or name an alternative. Sibling names provide enough contrast, so this is clear context without formal exclusions.

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

search_es_tendersSearch Spain Public TendersA
Read-onlyIdempotent
Inspect

Searches Spain's aggregated PLACSP public sector procurement tenders (excludes minor contracts) by keyword, CPV code, contracting authority, or budget range — continuously synced from the official syndication feed into Distil's data moat.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of search results to return (default 5, max 20).
queryNoFree-text search query, project title keyword, or contracting authority.
maxBudgetNoMaximum budget threshold in EUR.
minBudgetNoMinimum budget threshold in EUR.
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description need not restate safety. It adds valuable behavioral context: the data is aggregated from PLACSP, excludes minor contracts, and is continuously synced from the official syndication feed. It does not detail pagination or return behavior, but the output schema likely covers that.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that begins with the action and resource, then enumerates the search dimensions and data source. Every clause contributes meaning, and there is no filler or redundant restating of the tool name.

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?

Given six optional parameters, fully described schema, explicit annotations, and an output schema, the description is largely sufficient. It captures scope, exclusions, and data freshness/source. The only notable gap is the lack of explicit routing between this tool and closely related siblings like get_es_public_tender or search_eu_tenders.

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 documents every parameter. The description's phrase 'by keyword, CPV code, contracting authority, or budget range' groups the parameters semantically, but it adds little beyond the schema text. This matches the baseline 3 for high schema coverage.

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

Purpose4/5

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

The description opens with a specific action and resource: 'Searches Spain's aggregated PLACSP public sector procurement tenders', and it adds concrete search dimensions (keyword, CPV code, contracting authority, budget range). It distinguishes from siblings such as get_es_public_tender implicitly through the verb 'searches' and plural 'tenders', but it never explicitly names or contrasts that sibling.

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?

There is no explicit when-to-use guidance or mention of alternatives. An agent must infer that this tool is for broad search while get_es_public_tender is for retrieving a specific tender. The described scope and filter-by dimensions imply usage context, but the description does not state when not to use it.

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

search_eu_tendersSearch EU TED Public TendersA
Read-onlyIdempotent
Inspect

Searches across European Union TED public procurement tenders by keyword, CPV sector, and member state country code.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tender notices to return (default 5, max 20).
queryYesProcurement search keyword, project name, or sector term (e.g. 'Cybersecurity', 'Cloud').
countryNoTwo-letter ISO country code filter (e.g. 'FR', 'DE', 'IT', 'ES', 'NL').
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description does not go further to disclose list size, pagination, source freshness, or cost behavior, but it aligns with annotations and adds the registry scope. With annotations carrying the burden, this is adequate but not rich.

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?

Single sentence with no filler; the verb and main resource come first, followed by filter dimensions. Every word carries meaning and no schema content is repeated unnecessarily.

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?

Between the detailed input schema, output schema, and annotations, most invocation concerns are covered. The main gap is the lack of routing guidance among sibling search/get tender tools, but the description plus name make the tool's role recognizable.

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 the baseline is 3; the schema already documents query, limit, country, forceFresh, and maxAgeHours precisely. The description adds the 'CPV sector' interpretation of query and the country-code filter, which slightly reinforces but does not significantly expand on the 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 ('Searches'), a specific resource (EU TED public procurement tenders), and the filtering axes (keyword, CPV sector, country code). This clearly distinguishes it from sibling getters like get_eu_public_tender and country-specific search_es_tenders, even without naming them.

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

Usage Guidelines2/5

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

No guidance is given on when to choose this tool over siblings such as get_eu_public_tender or search_es_tenders, and no prerequisites or exclusions are mentioned. The intended use must be inferred from the tool name and resource description rather than explicitly stated.

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

search_fr_companiesSearch France EnterprisesA
Read-onlyIdempotent
Inspect

Searches French enterprises across the INPI / SIRENE National Enterprise Register by corporate name or commercial trade label.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of French companies to return (default 5, max 20).
queryYesFrench company name, commercial trade name, or SIREN number.
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds registry-scope context (INPI / SIRENE), but does not disclose additional behavioral aspects such as caching, freshness behavior, latency, or return characteristics; those are largely delegated to parameter descriptions and the 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.

Conciseness5/5

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

A single, front-loaded sentence states the action, target, registry, and searchable fields without redundancy. Every phrase contributes to understanding what the tool does.

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 read-only search tool with a rich input schema, comprehensive annotations, and an output schema, this description is complete enough. The registry scope and query intent are clear, and all parameter semantics, spend-control behavior, and safety traits are available in the structured fields.

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 four parameters are already documented. The description reinforces that query is for company name or trade label, but adds no meaning beyond the schema for limit, forceFresh, or maxAgeHours.

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 names the specific verb ('Searches'), resource ('French enterprises'), and authoritative data source ('INPI / SIRENE National Enterprise Register'), and specifies search mode ('by corporate name or commercial trade label'). This clearly distinguishes it from country-specific siblings like search_uk_companies and search_us_companies.

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

Usage Guidelines4/5

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

The description makes its intended use clear: querying French corporate entities by name or trade label. It does not explicitly state when not to use it or name alternative tools for other countries, though the sibling list and country scope make the context obvious.

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

search_uk_companiesSearch UK CompaniesA
Read-onlyIdempotent
Inspect

Searches across official UK registered companies by legal entity name or trade name with live Companies House registry fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of matching companies to return (default 5, max 20).
queryYesCompany name, trade name, or partial search term (e.g. 'Barclays', 'Tesco').
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, covering the safety profile. The description adds 'live Companies House registry fallback,' which hints at a caching/fallback mechanism but does not explain the dual-mode behavior (cache vs. live) or the associated surcharge. Since annotations carry the safety burden, the added context is minimal but not contradictory.

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

Conciseness5/5

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

The description is a single, compact sentence that front-loads the core purpose and includes the differentiator (live fallback). It contains no filler or redundant phrases and is well-structured for quick comprehension.

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

Completeness4/5

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

The output schema and parameter descriptions cover return values and spend-control behavior. The tool description, while concise, conveys the essential purpose and fallback behavior. It could hint more explicitly at the caching/performance trade-off, but that is already captured in the parameter schema, so the description is sufficiently complete for a search 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?

Schema description coverage is 100%, so all parameters (query, limit, forceFresh, maxAgeHours) are fully documented in the schema. The tool description repeats that the search is by legal entity or trade name, which mirrors the query parameter description but adds no new semantic detail. With full schema coverage, the baseline of 3 is appropriate.

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 states a clear verb ('searches'), a specific resource ('official UK registered companies'), and the search basis ('by legal entity name or trade name'). It also mentions a live registry fallback, which differentiates it from similar tools for other countries (e.g., search_us_companies) and from specific getter tools like get_uk_company_filing. The purpose is unmistakable and distinct among siblings.

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?

Usage is implied by the name and scope—it is clearly for finding UK companies by name. However, there is no explicit guidance on when to prefer this over alternative search tools (e.g., search_fr_companies) or when to use get_uk_company_filing instead. No exclusions or conditions are stated, so the agent must infer selection from context.

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

search_us_companiesSearch US SEC CompaniesA
Read-onlyIdempotent
Inspect

Searches US public corporations by stock ticker symbol or company name against official SEC EDGAR submissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of search results to return (default 5, max 20).
queryYesUS ticker symbol or partial company name (e.g. 'Tesla', 'NVDA', 'Pfizer').
forceFreshNoSpend Control: When true, bypasses Edge KV cache and forces a real-time statutory primary registry call (applies 2.5x Freshness Inconvenience Surcharge). Default: false.
maxAgeHoursNoSpend Control: Maximum acceptable data age in hours (e.g. 48 for 2 days tolerance). If cache satisfies this, delivers sub-5ms at standard 1.0x Economy rate. Set to 0 to force live primary fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
isErrorNo

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is handled elsewhere. The description adds the useful context that the search targets official SEC EDGAR data, but it does not disclose other behavioral traits like pagination, result ordering, or cache/spend behavior beyond what the schema already exposes.

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?

A single, front-loaded sentence conveys the essential purpose without any wasted words. It is appropriately sized for a search tool and does not repeat schema or annotation details.

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?

Given the low complexity, fully documented schema, rich safety annotations, and existing output schema, the description provides enough context for an agent to select and invoke the tool correctly. It could be marginally stronger by explicitly directing filing-specific requests to get_us_sec_filing, but that is covered by the sibling naming and overall context.

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 documents all parameters, including query, limit, forceFresh, and maxAgeHours. The description restates the core query semantics but adds no new meaning beyond the structured 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?

The description uses a specific verb ('Searches'), names the resource ('US public corporations'), and specifies the query dimensions ('stock ticker symbol or company name') against 'official SEC EDGAR submissions.' It clearly distinguishes this search tool from filing-retrieval and non-US siblings.

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 implies the tool should be used when an agent needs to find US public companies by ticker or name, and the sibling names reinforce that this is the US company search. However, there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives such as get_us_sec_filing for retrieving specific filings.

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. Dates show when Glama detected each change.

  1. 16 tool updates
    • First observedget_corporate_risk_score
    • First observedget_cross_border_entity_graph
    • First observedget_es_public_tender
    • First observedget_eu_public_tender
    • First observedget_fr_company_filing
    • First observedget_sanctions_and_pep_screening
    • First observedget_tender_intelligence
    • First observedget_uk_company_filing
    • First observedget_uk_company_officers
    • First observedget_uk_corporate_network
    • First observedget_us_sec_filing
    • First observedsearch_es_tenders
    • First observedsearch_eu_tenders
    • First observedsearch_fr_companies
    • First observedsearch_uk_companies
    • First observedsearch_us_companies

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation5/5

Each tool maps to a distinct data product: country-specific filings, tender records/search, risk scoring, sanctions screening, and entity graphs. The search/get split cleanly separates discovery from retrieval, and even similar country-specific tools are clearly qualified by region and entity type.

Naming Consistency5/5

All tools use a consistent snake_case verb_noun pattern: get_* for retrieval and search_* for discovery, with country or region qualifiers where applicable. Cross-cutting tools like get_corporate_risk_score and get_tender_intelligence fit the same pattern without feeling out of place.

Tool Count4/5

At 16 tools, the server is slightly above the ideal 3-15 range, but the multi-country, multi-domain scope justifies nearly every tool. The set is heavier than a tightly focused server, yet no tool feels redundant.

Completeness4/5

The set covers the core read-only workflow well: search to find entities or tenders, get to retrieve records, plus analytical tools for risk, sanctions, and tender intelligence. Minor gaps exist, such as no Spanish company registry access and no UK tender search, but these are workable and do not block primary due-diligence workflows.

Resources