Skip to main content
Glama

ENTIA Entity Verification

Server Details

Verified business identity for AI agents: 11.3M entities, EU VAT (VIES), BORME, GLEIF. Free trial.

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 78 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
ENTIA-IA/entia-mcp-server
GitHub Stars
1
Server Listing
ENTIA Entity Verification
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation3/5

Several near-duplicate pairs exist: `search` explicitly 'wraps search_entities' and `fetch` 'wraps entity_lookup', differing only by response format, while `entity_lookup`, `get_entia_home`, `get_entity_home_projection`, `get_full_dossier` and `get_identity_verification` all return overlapping views of a single company. The descriptions do explicitly state the tier/format differences, which rescues it from true confusion, but an agent must read carefully to avoid picking the wrong one.

Naming Consistency4/5

A dominant `get_*` prefix plus verb_noun forms (entity_lookup, professional_lookup, verify_vat, run_risk_audit) give a predictable pattern. Minor deviations are bare verbs (`search`, `fetch`) and the noun-only `zone_profile`, but everything stays snake_case and readable.

Tool Count4/5

15 tools sits at the top of the healthy range and the domain (registry search, identity, VAT, dossier, competitors, demographics, professionals, risk audit) genuinely spans that breadth. However, the redundant wrapper pairs (`search`/`search_entities`, `fetch`/`entity_lookup`) suggest a couple of slots could be consolidated.

Completeness4/5

The surface covers discovery (search), identity (lookup, VAT, professional registries), enrichment (dossier, zone, competitors, risk audit) and orientation (showcase, platform stats) — a coherent read-only lifecycle with no obvious dead ends. Gaps are minor: no batch/bulk lookup and no standalone BORME-acts query outside the aggregate dossier.

Available Tools

15 tools
entity_lookupEntity LookupA
Read-onlyIdempotent
Inspect

FREE (no API key needed). Use when the user asks whether a company exists, who is behind a CIF/NIF, EU VAT or LEI, its registered legal name, city, sector or BORME (Spanish Commercial Registry) status. Look up any business entity by name, CIF/NIF, EU VAT, or LEI. Free callers receive a trace-level identity preview; authenticated callers receive the full paid dossier.

NameRequiredDescriptionDefault
qNoCompany name, CIF/NIF (B82846825), EU VAT (ESB82846825), or LEI (20 chars)
nameNoAlias for `q` — accepted for compatibility with clients that send `name`.
queryNoAlias for `q` — accepted for compatibility with clients that send `query`.

Output Schema

NameRequiredDescription
_metaNo
foundNoTrue only when an identity anchor corroborated the query
queryNo
entityNoVerified identity: legal name, tax id, address, sector
integrityNoTamper-evidence MAC. Not an electronic signature
error_codeNo
provenanceNoPublisher and data sources of this answer
data_coverageNoWhich sources answered and which did not
registry_dataNoOfficial registry payload (BORME/GLEIF/VIES/native)
coherence_errorsNo
economic_profileNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the call is free with no API key, and the response depth is tiered (trace-level identity preview when unauthenticated versus the full paid dossier when authenticated). It stops short of stating rate limits or what the trace-level preview actually contains.

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 short sentences, front-loaded with the strongest differentiator ("FREE (no API key needed)") and then the usage trigger. The identifier list in sentence three partially repeats sentence two, a small redundancy, but nothing else 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?

An output schema exists, so return-shape explanation is not required, and the free-versus-authenticated response tiers are the key thing an agent needs to set user expectations. The remaining gap is disambiguation from the many lookup-adjacent siblings and what happens with no arguments at all.

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 q and its aliases (name, query) are fully documented in the schema, including formats and length bounds. The description restates the same identifier types but adds no syntax, precedence rules for when both q and name are supplied, or guidance on the empty-argument case (zero required params). Baseline 3 applies.

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?

States a concrete verb+resource ("Look up any business entity") plus the accepted identifier types, and enumerates the questions it answers (existence, ownership, legal name, city, sector, BORME status). It does not name or distinguish itself from siblings like search_entities, professional_lookup, or get_full_dossier, which overlap heavily with this space.

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 when the user asks whether a company exists, who is behind a CIF/NIF, EU VAT or LEI..." gives explicit trigger conditions tied to user intent, which is strong. There are no when-not conditions and no named alternatives, so an agent still has to guess whether search_entities or professional_lookup is the better fit.

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

fetchA
Read-onlyIdempotent
Inspect

FREE (no API key needed). Use after search to read one company's free registry preview by its id. Fetch one company's free registry preview by the id returned by search (or a CIF/NIF, EU VAT or LEI). Wraps entity_lookup with the free preview mask. Returns {id,title,text,url,metadata}.

NameRequiredDescriptionDefault
idYesResult id from search, or a CIF/NIF, EU VAT or LEI

Output Schema

NameRequiredDescription
idNo
urlNo
textNo
titleNo
metadataNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuinely useful context beyond that: it is free with no API key required, and it wraps entity_lookup with a preview mask, telling the agent results are a restricted subset rather than the full record. It does not explain how the preview differs in scope (which fields are masked), leaving a small gap.

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 high-value fact (FREE, no API key) is front-loaded and the description is short. However, sentence two largely repeats sentence one's purpose statement ('read one company's free registry preview by its id' vs 'Fetch one company's free registry preview by the id returned by search'), so it is not entirely waste-free.

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 single-parameter, read-only lookup there is little missing: an output schema exists so return values need not be spelled out, and annotations carry the safety profile. The only substantive omission is what the 'free preview mask' actually withholds compared with entity_lookup or get_full_dossier, which would help an agent decide whether to escalate.

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?

The schema already documents the single id parameter at 100% coverage, including the same 'CIF/NIF, EU VAT or LEI' guidance. The description restates that rather than adding format details, so the schema is doing the work and this sits at the baseline.

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

Purpose5/5

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

Names a specific verb and resource ('read one company's free registry preview by its id') and distinguishes itself from siblings: it is used after search, accepts search ids or CIF/NIF/EU VAT/LEI, and is explicitly framed as entity_lookup with the free preview mask. An agent can select it 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 Guidelines4/5

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

The description gives a clear usage chain ('Use after search to read one company's...') and lists acceptable id types, which is effective context. It stops short of explicitly saying when not to use it — e.g., when the paid full record from entity_lookup or get_full_dossier is warranted — so the alternative routing is only implied.

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

get_competitorsGet CompetitorsA
Read-onlyIdempotent
Inspect

PAID (requires BUILD plan or higher, from €99/month). Use when the user asks who competes with a business in a sector and Spanish city. Find real competitors in the same sector and city. Ranked entities with identity + location + sector matching. Spain only on the public surface. sector is a closed vocabulary — see the enum; aliases such as abogados (the slug ENTIA uses in its own Entia Home URLs) resolve to their canonical slug.

NameRequiredDescriptionDefault
cityYesCity name in Spain (Madrid, Barcelona, Valencia, Sevilla, Bilbao)
limitNoMax results (1-30)
sectorYesENTIA sector slug. Canonical: dental, legal, estetica, psicologia, medicos, talleres, veterinarios, reformas, inmobiliarias, asesorias, gimnasios… Aliases (abogados, salud, dentist, beautysalon…) resolve to a canonical slug and the response declares the translation in _meta.sector_resolved_from.

Output Schema

NameRequiredDescription
cityNo
_metaNoCarries sector_resolved_from / sector_resolved_to
countNo
sectorNoCanonical slug actually used after alias resolution
countryNo
competitorsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, idempotent, openWorld), and the description adds genuinely non-derivable context: paid-plan gating (BUILD or higher, €99/month), Spain-only coverage, and that the response declares alias translation in _meta.sector_resolved_from. Missing only things like rate limits or auth token details.

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 pricing gate and the use case, then layers constraints. Dense but every sentence (paid tier, Spain-only, closed vocabulary, alias resolution) carries operational weight. Slightly packed but not wasteful.

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 an output schema present and full parameter documentation in the schema, the description only needs to cover gating, geo scope, and vocabulary behavior — all of which it does. An agent has everything required to decide and call 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 coverage is 100%, so the schema already describes all three parameters including enum values and alias behavior. The description's note that sector is a closed vocabulary and aliases resolve largely restates the schema, adding little beyond it — baseline 3.

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+scope: 'Find real competitors in the same sector and city', with ranked entities and Spain-only restriction. This clearly distinguishes it from siblings like entity_lookup, professional_lookup, and get_identity_verification, which are lookups rather than comparative discovery.

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?

Provides a clear trigger ('Use when the user asks who competes with a business in a sector and Spanish city') plus geo scoping ('Spain only on the public surface'). It does not explicitly name an alternative sibling or state when NOT to use it, keeping it below a 5.

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

get_entia_homeGet Entia HomeA
Read-onlyIdempotent
Inspect

FREE (no API key needed). Use when you already have an Entia Home URL path (country/sector/city/slug) and need that public business page as data. Retrieve the Schema.org JSON-LD @graph for a specific entity's Entia Home (machine layer at /v1/identity/{country}/{sector}/{city}/{slug}.jsonld). Requires country, sector, city, slug path segments — not cif/q. Obtain the path via entity_lookup / showcase (canonical_url). Fail-closed: never returns ENTIA corporate marketing as if it were the entity.

NameRequiredDescriptionDefault
cityYesCity slug (madrid, barcelona, london)
slugYesBusiness slug (clinica-dental-sonrisa)
sectorYesIndustry slug (dental, legal, talleres, …)
countryYesISO 3166-1 alpha-2 (es, gb, fr)

Output Schema

NameRequiredDescription
_metaNo
@graphNoWebPage, Entity, Verification Report and Territorial Profile nodes
@contextNo

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, it discloses cost ('FREE, no API key needed') and a meaningful fail-closed semantic ('never returns ENTIA corporate marketing as if it were the entity'), which is the kind of non-obvious behavior risk an agent must know about. Return shape is covered by 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.

Conciseness4/5

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

Front-loaded with the most decision-relevant fact (free, no API key) and then the usage condition. Dense but every sentence carries information; it is slightly packed with endpoint/path detail that borders on redundant with the schema property descriptions.

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 4-required-param read tool with full annotation coverage, complete schema descriptions, and an output schema, the description supplies the remaining pieces: cost/auth, path acquisition, fail-closed behavior, and the disallowed alternative input. Nothing needed 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 individual parameter documentation is already handled. The description still adds value by giving the segment order and endpoint template and by stating what is NOT accepted (cif/q) and where valid values come from (canonical_url). Marginal gain above baseline, hence 4 rather than 5.

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 Schema.org JSON-LD @graph for a specific entity's Entia Home page. It even names the machine endpoint (/v1/identity/{country}/{sector}/{city}/{slug}.jsonld), which disambiguates it from entity_lookup, showcase, and the projection/dossier siblings.

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 trigger condition ('when you already have an Entia Home URL path and need that public business page as data'), explicit prerequisite ('obtain the path via entity_lookup / showcase (canonical_url)'), and an explicit exclusion ('not cif/q'). An agent knows exactly when to pick this tool over alternatives.

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

get_entity_home_projectionGet Entity Home Projection v1A
Read-onlyIdempotent
Inspect

PAID (requires SIGNAL plan or higher, from €29/month). Use when you need the full structured projection of an Entia Home page (identity, location, verification) for one business. Read the materializer snapshot entia.entity_home_projection.v1 for an Entia Home (claims + projection + policy). Same truth as the public ficha HTML/JSON-LD twin. Serve from R2 sibling .projection.v1.json — no ad-hoc MCP enrichment.

NameRequiredDescriptionDefault
cityYesCity slug (madrid, barcelona)
slugYesBusiness slug (clinica-dental-ceodent)
sectorYesIndustry slug (dental, legal, …)
countryYesISO 3166-1 alpha-2 (es, gb, fr)
include_render_contextNoIf true, keep render_context (large). Default strips it for agents.

Output Schema

NameRequiredDescription
gateNoPUBLISH / PARTIAL / HOLD / REGISTRY_ONLY
_metaNo
claimsNo
policyNo
schemaNo
subjectNo
projectionNo
generated_atNo
corroborationNo
materializer_versionNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, but the description adds information they cannot carry: the SIGNAL-plan paywall, the backing source (the entia.entity_home_projection.v1 materializer snapshot served from R2), and the warning against ad-hoc MCP enrichment. These are exactly the operational facts an agent needs before spending a paid call.

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?

It is front-loaded with the most costly fact, the paid plan requirement, and stays under five sentences. The middle is dense internal jargon (materializer snapshot, R2 sibling .projection.v1.json) that partly obscures rather than clarifies, but nothing is padded.

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?

An output schema exists, so return values need no explanation, and the description still covers the pricing gate, data provenance and the authoritative-source relationship to the public ficha. The one gap is the unresolved relationship with the sibling get_entia_home, which matters for a paid 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%, with patterns and examples documenting each of the four required slugs, so the schema does the heavy lifting and the baseline of 3 applies. The description adds no parameter-level detail beyond implying the payload is structured, and it never explains the include_render_context trade-off itself.

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 names a specific verb and resource: read the full structured projection of one Entia Home page, covering identity, location and verification. An agent can grasp the payload content, but it never contrasts this with the close sibling get_entia_home, so the distinction has to be inferred from the name alone.

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?

'Use when you need the full structured projection ... for one business' gives a usable trigger condition, and the paid-plan preamble is a real gating note. However, no alternative is named and no exclusion is stated, even though get_entia_home and get_full_dossier sit in the same sibling set, leaving overlap unresolved.

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

get_full_dossierGet Full DossierA
Read-onlyIdempotent
Inspect

PAID (requires INTEGRATE plan or higher, from €399/month). Use for due diligence / KYB when the user wants everything about one company in a single call (identity, BORME, VIES, zone). Aggregator — 90+ fields about an entity in one call. Combines 4 ENTIA sources in parallel: identity, zone, BORME, VIES. Killer tool for due diligence/KYB.

NameRequiredDescriptionDefault
queryYesCompany name, CIF/NIF, EU VAT, or LEI

Output Schema

NameRequiredDescription
_metaNo
foundNo
queryNo
entityNo
integrityNo
provenanceNo
trust_scoreNo
verificationNo
data_coverageNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the description earns credit for the extra operational context it adds: a paid plan gate (INTEGRATE, €399/month) and the fact that four upstream sources are queried in parallel. It doesn't discuss latency cost or partial-failure behavior of that fan-out, which would have pushed it higher.

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 pricing gate and the primary use case, which is the right order. However, "Aggregator — 90+ fields" restates the earlier "everything about one company," and the closing "Killer tool for due diligence/KYB" repeats the use case already stated, adding mild 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?

With an output schema present, return values need not be described, and the plan requirement plus source composition cover the key decision inputs. Missing are practical notes on call cost/latency given the four parallel lookups, which matters for an agent choosing between this and cheaper 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?

There is a single parameter with 100% schema coverage and an enumeration of accepted identifier types (name, CIF/NIF, EU VAT, LEI) already in the schema. The description adds no format hints, normalization rules, or disambiguation guidance, 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: aggregates 90+ fields about one company from four named ENTIA sources (identity, zone, BORME, VIES) in a single call. This clearly distinguishes it from narrower siblings such as entity_lookup, verify_vat, or zone_profile, which an agent can rule out 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 Guidelines4/5

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

"Use for due diligence / KYB when the user wants everything about one company in a single call" gives a clear selection condition that implicitly steers away from single-source siblings. It does not name those alternatives explicitly or state when not to use the expensive aggregate, so it falls short of a full 5.

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

get_identity_verificationGet Identity VerificationA
Read-onlyIdempotent
Inspect

PAID (requires SIGNAL plan or higher, from €29/month). Use when the user asks whether a business's identity has been officially verified, not just whether its CIF exists. Read fail-closed identity verification from the exact canonical HOME projection. Existing CIF does not imply official verification.

NameRequiredDescriptionDefault
cityYes
slugYes
sectorYes
countryYes

Output Schema

NameRequiredDescription
canonical_urlNo
identity_verificationNo

TDQS

A3.6/5.0
Behavior4/5

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

Discloses behavior the annotations cannot: a hard plan gate (SIGNAL or higher, from €29/month) and fail-closed semantics, so an agent knows a negative result is meaningful rather than an error. It doesn't say what happens when the plan requirement isn't met (error vs. gated response) or how missing entities surface, which leaves a residual gap.

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 compact sentences with the paid gate and the usage trigger front-loaded, then the fail-closed caveat. Dense and readable, though 'exact canonical HOME projection' is jargon that costs a sentence's worth of clarity without adding usable information.

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?

An output schema exists, so return values needn't be explained, and annotations cover the read-only/idempotent profile. What's missing is any explanation of the composite key that identifies an entity, which is the one thing an agent can get wrong when calling this over a raw schema with no property descriptions.

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

Parameters2/5

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

Schema description coverage is 0% and the description says nothing about the four required parameters. The country/sector/city/slug combination is a composite addressing scheme — an agent must infer from constraints alone that country is a 2-letter code and the rest are slugs, and that all four are mandatory.

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?

States a specific verb and resource — reading a business's official identity-verification status — and explicitly disambiguates it from CIF existence, which is the most likely confusion. The phrase 'canonical HOME projection' is internal jargon that doesn't map to any sibling tool name, so the differentiation from get_entity_home_projection or verify_vat is only implicit.

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 when the user asks whether a business's identity has been officially verified, not just whether its CIF exists' gives a clear triggering condition and a negative case. It stops short of naming the sibling tools an agent should pick instead — e.g. verify_vat for VAT validity or entity_lookup when no verification claim is being made.

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

get_platform_statsGet Platform StatsA
Read-onlyIdempotent
Inspect

FREE (no API key needed). Use when the user asks how much data ENTIA covers (entities, BORME acts). Live platform stats: total entities and BORME acts, counted live. Country and Entia Home counts are null (marked _unverified) until they are measured.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
_metaNo
statusNo
cache_ttlNo
countriesNo
borme_actsNo
_unverifiedNoFigures NOT independently verified — honesty marker, do not quote as verified
last_updatedNo
sources_activeNo
total_entitiesNo
homes_publishedNo
countries_activeNo
jsonld_generatedNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint. The description adds useful behavioral context beyond annotations: it is free/no API key, stats are counted live, and country/Entia Home counts are null and marked _unverified until measured. These are meaningful caveats about data quality and freshness.

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 short and front-loads the most important fact ('FREE (no API key needed)'). There is minor redundancy in 'Live platform stats' and 'counted live,' but otherwise every sentence adds useful information.

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?

An output schema exists, so the description need not explain return values. It covers the key caveat about null _unverified fields and the live-counting behavior, making it complete enough for an agent to call correctly. It could be slightly richer about what counts are included, but nothing essential 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?

There are zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the input schema is empty and fully described.

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 states a specific resource (live platform stats: total entities and BORME acts) and frames it around coverage questions. It is clear what the tool returns, though it does not explicitly differentiate itself from sibling tools beyond the coverage angle.

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 gives a clear usage trigger: 'Use when the user asks how much data ENTIA covers (entities, BORME acts).' It does not name when not to use it or point to alternatives, but the context is unambiguous.

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

get_showcaseGet ShowcaseA
Read-onlyIdempotent
Inspect

FREE (no API key needed). Use to show example records and what ENTIA data looks like before choosing another tool. Curated IBEX35 + EU entity examples. FREE — does not consume quota. Use to explore data depth.

NameRequiredDescriptionDefault
limitNoSample size (default 3, max 5)
categoryNoSubset to sample (default: all)

Output Schema

NameRequiredDescription
_metaNo
unlockNo
checkoutNo
entitiesNo
upgrade_urlNo
access_levelNo
gated_fieldsNo
upgrade_hintNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld. The description adds genuinely new operational context — no API key needed and no quota consumption — which is exactly the kind of cost/access detail annotations cannot express. It does not cover rate limits or sample freshness, keeping it below 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.

Conciseness3/5

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

Short and front-loaded, but 'FREE' is asserted three times across four sentences ('FREE (no API key needed)', 'FREE — does not consume quota'), which is redundant filler. Removing the duplicate would lose nothing.

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?

An output schema exists so return values need not be explained, there are no required parameters, and the access/cost model is disclosed. A preview tool needs little more, though noting which call to follow up with would make it fully self-sufficient.

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 both parameters documented including bounds and enum values, so the schema carries the burden. The description mentions the IBEX35/EU curation but does not map it to the category enum or add syntax beyond the schema.

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?

States a specific action — showing example records to illustrate what ENTIA data looks like — and scopes it to curated IBEX35 + EU entities. It positions itself as a preview step rather than a data operation, but does not name a specific sibling tool it complements.

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 show example records ... before choosing another tool' and 'Use to explore data depth' give a clear trigger context. No explicit when-not conditions or named alternatives are given, so it stops short of full routing guidance.

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

professional_lookupProfessional LookupA
Read-onlyIdempotent
Inspect

PAID (requires ENTERPRISE plan, custom contract). Use when the user asks whether a Spanish health or legal professional is registered (colegiado number, college, specialty). Verify professional registrations across 24 Spanish health/legal/psychology verticals. Returns colegiado number, college, specialty, status.

NameRequiredDescriptionDefault
queryYesProfessional name, colegiado number, or REPS identifier
verticalNoHealthcare/legal vertical (dental, medicos, psicologia, ...)

Output Schema

NameRequiredDescription
_metaNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds the commercially critical fact that this is a paid call requiring an ENTERPRISE contract, which is real value beyond structured fields. It says nothing about not-found behavior or failure modes.

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 tight sentences with the cost constraint front-loaded before the usage trigger. The final sentence restating return fields is mildly redundant given the output schema exists, but it is short enough not to waste space.

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?

Cost gate, trigger condition, vertical coverage, and returned fields are all covered, and the output schema handles the return shape. Missing only edge-case behavior such as no-match results or invalid professional-type handling.

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 both query and vertical are already documented, and the description adds no syntax, format, or enumeration detail (e.g., accepted vertical values) 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 and resource (verify professional registrations) plus scope (24 Spanish health/legal/psychology verticals) and the exact question it answers. This clearly separates it from neighbors like entity_lookup, verify_vat, and get_identity_verification.

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 an explicit trigger: 'Use when the user asks whether a Spanish health or legal professional is registered.' The paid-plan gate further narrows when it is viable. It does not name alternatives or say when not to use it, 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.

run_risk_auditRun Risk AuditA
Read-onlyIdempotent
Inspect

PAID (requires SIGNAL plan or higher, from €29/month). Use when the user asks about the AI-readiness, SEO/LLM visibility or digital risk of a company's website domain. Run comprehensive AI-readiness + digital risk audit on any domain. Analyzes SSL, DNS, structured data, LLM visibility. Returns risk score 0-100. 5 req/min, 30s timeout.

NameRequiredDescriptionDefault
nameNoOptional business name for context
domainYesDomain to audit (clinicadental.es, example.com)
sector_idNoOptional sector hint (dental, legal, talleres, …)

Output Schema

NameRequiredDescription
_metaNo
auditNo
domainNo
job_idNo
statusNo
risk_levelNo
risk_scoreNo
audit_tokenNo

TDQS

A4.5/5.0
Behavior5/5

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

The description adds meaningful operational context beyond annotations: it is a paid tool requiring a SIGNAL plan or higher, has a rate limit of 5 requests per minute, and enforces a 30-second timeout. It also discloses the audit scope and that it returns a 0-100 risk score, which helps the agent understand cost and runtime constraints before invoking it.

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 short and front-loaded: the paid-plan constraint and primary usage trigger appear first, followed by scope, output, and rate-limit details. Every sentence carries useful information without repetition.

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 tool's complexity and paid status, the description covers the essential points an agent needs: when to use it, plan requirement, scope of analysis, return value, rate limit, and timeout. Since an output schema exists, the description need not explain the full response structure.

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 input schema already documents all three parameters thoroughly, including domain format and optional context fields. The description only refers to auditing 'any domain' and does not add parameter-specific meaning beyond the schema. 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 names a specific verb and resource: run a comprehensive AI-readiness and digital risk audit on a domain. It also lists the concrete analysis areas (SSL, DNS, structured data, LLM visibility) and the output (risk score 0-100), making the tool clearly distinguishable from lookup and search siblings.

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 gives clear trigger conditions: use when the user asks about AI-readiness, SEO/LLM visibility, or digital risk for a company's website domain. It also states the paid plan requirement. It does not explicitly name alternatives or when not to use it, but no sibling tool appears to provide an equivalent audit.

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

search_entitiesSearch EntitiesA
Read-onlyIdempotent
Inspect

FREE (no API key needed). Use when the user asks to find or list businesses by name, keyword, sector or city (e.g. 'dentists in Madrid', 'real estate agencies in Valencia'). Search businesses by name, keyword, country, city or sector. Results mix registry-backed companies and public business listings (local directories/maps), so not every result is registry-verified; use entity_lookup or verify_vat to verify one. Answers 'find me a dentist in Madrid' / 'list law firms in Barcelona'. sector is a closed vocabulary — see the enum; aliases such as abogados resolve to their canonical slug. Anonymous callers receive a trace-level preview (name + city); authenticated TRACE+ keys unlock full records.

NameRequiredDescriptionDefault
qYesSearch query — company name or keywords
cityNoCity name (Madrid, Barcelona, Valencia, Sevilla, London)
limitNoMax results (default 10, max 50)
sectorNoSector filter. Canonical: dental, legal, estetica, psicologia, medicos, talleres, veterinarios, reformas, inmobiliarias, asesorias, gimnasios… Aliases (abogados, salud, dentist, beautysalon…) resolve to a canonical slug and the response declares the translation in _meta.sector_resolved_from.
countryNoISO country code (es, gb, fr)

Output Schema

NameRequiredDescription
_metaNoCarries sector_resolved_from when an alias was translated
countNo
filtersNoFilters actually applied — echoes q/sector/city/country
entitiesNoEach carries name, city, sector and canonical Entia Home URL

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, it discloses that results mix registry-backed companies with public listings, that not all results are registry-verified, and that anonymous callers only receive a trace-level preview while authenticated TRACE+ keys unlock full records. These are material behavioral details an agent could not infer from the schema or annotations.

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

Conciseness4/5

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

The text is front-loaded and generally efficient. The repeated natural-language example ('find me a dentist in Madrid') is slightly redundant with the earlier examples, but the description remains readable and purposeful.

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, full schema coverage, and an output schema, the description is complete for correct invocation. It covers result quality, verification routing, sector behavior, and authentication-tier effects.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful sector semantics beyond the schema: the closed vocabulary, alias resolution to canonical slugs, and the response field _meta.sector_resolved_from.

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 ('Search businesses') and enumerates the searchable dimensions: name, keyword, country, city, and sector. It clearly distinguishes this discovery tool from verification siblings by naming entity_lookup and verify_vat.

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 explicitly states when to use the tool, with concrete examples like 'dentists in Madrid' and 'real estate agencies in Valencia'. It also names the alternatives for verification when registry-backed confirmation is needed.

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

verify_vatVerify VATA
Read-onlyIdempotent
Inspect

FREE (no API key needed). Use when the user asks whether an EU VAT number is valid or active (live VIES check). Real-time EU VAT validation via VIES (27 countries). Returns {valid, name, address, vat_number, country, checked_at}. Some Member States (Spain among them) do not disclose name/address through VIES: name/address come back null with name_disclosure=withheld_by_member_state; use entity_lookup for the registered name.

NameRequiredDescriptionDefault
qNoEU VAT number (ESA28015865, A28015865, IE6388047V)
vatNoAlias for `q` — the VAT number.
queryNoAlias for `q`.

Output Schema

NameRequiredDescription
_metaNo
queryNo
resultNoVIES answer: validity, registered name and address
vat_numberNo
country_codeNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover safety (readOnly, idempotent, openWorld), and the description adds meaningful context beyond them: free/no API key, live VIES reach, the exact return shape, and the important caveat that some Member States withhold name/address, yielding name_disclosure=withheld_by_member_state. That disclosure issue is exactly the kind of operational behavior an agent needs.

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

Conciseness5/5

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

Information is dense and front-loaded: pricing/auth, usage trigger, mechanism, return shape, and edge-case caveat in a few sentences. No sentence is filler, and the most decision-relevant facts come first.

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?

Even though an output schema exists, the description still prepares the agent for the response fields and the name-disclosure edge case. Combined with the annotations and schema, an agent has everything needed to call this 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%, so all three alias parameters (q, vat, query) are documented in the schema. The description says 'EU VAT number' but adds no format or alias guidance 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?

Names a specific verb and resource — real-time EU VAT validation via VIES across 27 countries — and explicitly distinguishes itself from entity_lookup for name resolution. An agent can identify the operation 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?

States the triggering condition directly: 'Use when the user asks whether an EU VAT number is valid or active.' It also names the alternative, entity_lookup, for the registered-name case, so routing is unambiguous.

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

zone_profileZone ProfileA
Read-onlyIdempotent
Inspect

PAID (requires SIGNAL plan or higher, from €29/month). Use when the user asks about the income, employment, demographics, business census or real-estate profile of a Spanish postal code. Socioeconomic profile of a Spanish postal code — 17 blocks: income, employment, demographics, business census, real estate, FTTH, poverty, tourism.

NameRequiredDescriptionDefault
postal_codeYesSpanish 5-digit postal code (28013 = Madrid Gran Vía)

Output Schema

NameRequiredDescription
_metaNo
economyNo
provinceNo
income_aeatNo
postal_codeNo
real_estateNo
municipalityNo
employment_sepeNo
businesses_dirceNo
demographics_ineNo
autonomous_communityNo
entia_classificationNo
digital_infrastructureNo
poverty_inequality_ccaaNo

TDQS

A4/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, so the safety profile is covered. The description adds valuable context beyond annotations: it is a paid tool requiring the SIGNAL plan or higher, from €29/month, which is important operational information an agent needs before invoking it.

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 two tightly constructed sentences. It front-loads the paid-plan requirement and usage trigger, then lists the data blocks efficiently with no wasted words.

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 does not need to explain return values in detail. It covers the key prerequisites (paid plan), the use case, and the broad data coverage, though it could clarify sibling alternatives for an agent choosing among the many lookup tools.

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 single postal_code parameter already has a clear description with an example (28013 = Madrid Gran Vía). The tool description adds no additional parameter syntax or constraints beyond what the schema provides, so the baseline of 3 applies.

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 resource: a socioeconomic profile of a Spanish postal code, with 17 blocks including income, employment, demographics, business census, real estate, FTTH, poverty, and tourism. It is specific enough for an agent to know what the tool returns, though it does not explicitly differentiate itself from sibling tools such as entity_lookup or get_full_dossier.

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 gives a clear usage trigger: 'Use when the user asks about the income, employment, demographics, business census or real-estate profile of a Spanish postal code.' It does not mention when not to use the tool or name alternative siblings, so it stops short of a 5.

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

Tool Schema Changelog

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

  1. 2 tool updates
    • Addedfetch
    • Addedsearch
  2. 1 tool update
    • Addedget_identity_verification
  3. 4 tool updates
    • Changedget_entity_home_projection4 fields changed
      • changedInput schema / properties / city / pattern
        Previous value: -"^[a-z0-9-]+$"New value: +"^[A-Za-z0-9-]+$"
      • changedInput schema / properties / country / pattern
        Previous value: -"^[a-z]{2}$"New value: +"^[A-Za-z]{2}$"
      • changedInput schema / properties / sector / pattern
        Previous value: -"^[a-z0-9-]+$"New value: +"^[A-Za-z0-9-]+$"
      • changedInput schema / properties / slug / pattern
        Previous value: -"^[a-z0-9-]+$"New value: +"^[A-Za-z0-9-]+$"
    • Changedget_platform_stats2 fields changed
      • changedOutput schema / properties / countries / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedOutput schema / properties / countries_active / type
        Previous value: -"integer"New value: +[
        +  "integer",
        +  "null"
        +]
    • Changedrun_risk_audit1 field changed
      • changedInput schema / properties / domain / pattern
        Previous value: -"^[a-z0-9]([a-z0-9.-]*[a-z0-9])?\\.[a-z]{2,}$"New value: +"^(?:https?://)?[A-Za-z0-9]([A-Za-z0-9.-]*[A-Za-z0-9])?\\.[A-Za-z]{2,}(?:[/?#].*)?$"
    • Changedzone_profile1 field changed
      • changedInput schema / properties / postal_code / pattern
        Previous value: -"^[0-9]{5}$"New value: +"^[0-9]{4,5}$"
  4. 4 tool updates
    • Changedentity_lookup4 fields changed
      • addedOutput schema / properties / integrity
        Added value: +{
        +  "description": "Tamper-evidence MAC. Not an electronic signature",
        +  "type": "object"
        +}
      • removedOutput schema / properties / legal_framework
        Removed value: -{
        -  "type": "object"
        -}
      • addedOutput schema / properties / provenance
        Added value: +{
        +  "description": "Publisher and data sources of this answer",
        +  "type": "object"
        +}
      • removedOutput schema / properties / signature
        Removed value: -{
        -  "description": "Provenance signature of this answer",
        -  "type": "string"
        -}
    • Changedget_full_dossier4 fields changed
      • addedOutput schema / properties / integrity
        Added value: +{
        +  "type": "object"
        +}
      • removedOutput schema / properties / legal_framework
        Removed value: -{
        -  "type": "object"
        -}
      • addedOutput schema / properties / provenance
        Added value: +{
        +  "type": "object"
        +}
      • removedOutput schema / properties / signature
        Removed value: -{
        -  "type": "string"
        -}
    • Changedget_showcase2 fields changed
      • addedInput schema / properties / category
        Added value: +{
        +  "description": "Subset to sample (default: all)",
        +  "enum": [
        +    "all",
        +    "ibex",
        +    "tech",
        +    "banking",
        +    "energy",
        +    "retail",
        +    "spain",
        +    "eu"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Sample size (default 3, max 5)",
        +  "maximum": 5,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedprofessional_lookup1 field changed
      • addedInput schema / properties / vertical
        Added value: +{
        +  "description": "Healthcare/legal vertical (dental, medicos, psicologia, ...)",
        +  "maxLength": 40,
        +  "type": "string"
        +}
  5. 12 tool updates
    • Changedentity_lookup1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Identity resolution result. `found` is fail-closed: false means no identity anchor was corroborated, not 'try again'.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "coherence_errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "data_coverage": {
        +      "description": "Which sources answered and which did not",
        +      "type": "object"
        +    },
        +    "economic_profile": {
        +      "type": "object"
        +    },
        +    "entity": {
        +      "description": "Verified identity: legal name, tax id, address, sector",
        +      "type": "object"
        +    },
        +    "error_code": {
        +      "type": "string"
        +    },
        +    "found": {
        +      "description": "True only when an identity anchor corroborated the query",
        +      "type": "boolean"
        +    },
        +    "legal_framework": {
        +      "type": "object"
        +    },
        +    "query": {
        +      "type": "string"
        +    },
        +    "registry_data": {
        +      "description": "Official registry payload (BORME/GLEIF/VIES/native)",
        +      "type": "object"
        +    },
        +    "signature": {
        +      "description": "Provenance signature of this answer",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_competitors1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Ranked competitors in the same sector and city. Spain only on the public surface.",
        +  "properties": {
        +    "_meta": {
        +      "description": "Carries sector_resolved_from / sector_resolved_to",
        +      "type": "object"
        +    },
        +    "city": {
        +      "type": "string"
        +    },
        +    "competitors": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "count": {
        +      "type": "integer"
        +    },
        +    "country": {
        +      "type": "string"
        +    },
        +    "sector": {
        +      "description": "Canonical slug actually used after alias resolution",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_entia_home1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Full Schema.org @graph of an Entia Home page — the same truth as its public HTML twin.",
        +  "properties": {
        +    "@context": {
        +      "type": "string"
        +    },
        +    "@graph": {
        +      "description": "WebPage, Entity, Verification Report and Territorial Profile nodes",
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "_meta": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_entity_home_projection1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "entia.entity_home_projection.v1 snapshot: claims, corroboration gate and policy.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "claims": {
        +      "type": "object"
        +    },
        +    "corroboration": {
        +      "type": "object"
        +    },
        +    "gate": {
        +      "description": "PUBLISH / PARTIAL / HOLD / REGISTRY_ONLY",
        +      "type": "string"
        +    },
        +    "generated_at": {
        +      "type": "string"
        +    },
        +    "materializer_version": {
        +      "type": "string"
        +    },
        +    "policy": {
        +      "type": "object"
        +    },
        +    "projection": {
        +      "type": "object"
        +    },
        +    "schema": {
        +      "type": "string"
        +    },
        +    "subject": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_full_dossier1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Aggregated dossier: identity, registry, trust and verification in one call.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "data_coverage": {
        +      "type": "object"
        +    },
        +    "entity": {
        +      "type": "object"
        +    },
        +    "found": {
        +      "type": "boolean"
        +    },
        +    "legal_framework": {
        +      "type": "object"
        +    },
        +    "query": {
        +      "type": "string"
        +    },
        +    "signature": {
        +      "type": "string"
        +    },
        +    "trust_score": {
        +      "type": "object"
        +    },
        +    "verification": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_platform_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Live platform totals. Single source of truth for corpus size.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "_unverified": {
        +      "description": "Figures NOT independently verified — honesty marker, do not quote as verified",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "borme_acts": {
        +      "type": "integer"
        +    },
        +    "cache_ttl": {
        +      "type": "integer"
        +    },
        +    "countries": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "countries_active": {
        +      "type": "integer"
        +    },
        +    "homes_published": {
        +      "type": "integer"
        +    },
        +    "jsonld_generated": {
        +      "type": "integer"
        +    },
        +    "last_updated": {
        +      "type": "string"
        +    },
        +    "sources_active": {
        +      "type": "integer"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "total_entities": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_showcase1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Curated sample entities for evaluation. Fields are gated by tier.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "access_level": {
        +      "type": "string"
        +    },
        +    "checkout": {
        +      "type": "object"
        +    },
        +    "entities": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gated_fields": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "unlock": {
        +      "type": "object"
        +    },
        +    "upgrade_hint": {
        +      "type": "string"
        +    },
        +    "upgrade_url": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedprofessional_lookup1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Professional registration verification across Spanish health, legal and psychology registries. Enterprise DPA required.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_risk_audit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "AI-readiness and digital risk audit of a domain.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "audit": {
        +      "type": "object"
        +    },
        +    "audit_token": {
        +      "type": "string"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "job_id": {
        +      "type": "string"
        +    },
        +    "risk_level": {
        +      "type": "string"
        +    },
        +    "risk_score": {
        +      "type": "number"
        +    },
        +    "status": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsearch_entities1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Paged catalogue search over the verified corpus.",
        +  "properties": {
        +    "_meta": {
        +      "description": "Carries sector_resolved_from when an alias was translated",
        +      "type": "object"
        +    },
        +    "count": {
        +      "type": "integer"
        +    },
        +    "entities": {
        +      "description": "Each carries name, city, sector and canonical Entia Home URL",
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "filters": {
        +      "description": "Filters actually applied — echoes q/sector/city/country",
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_vat1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Real-time VIES validation.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "country_code": {
        +      "type": "string"
        +    },
        +    "query": {
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "VIES answer: validity, registered name and address",
        +      "type": "object"
        +    },
        +    "vat_number": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedzone_profile1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Socioeconomic profile of a Spanish postal code, 17 blocks from official sources.",
        +  "properties": {
        +    "_meta": {
        +      "type": "object"
        +    },
        +    "autonomous_community": {
        +      "type": "string"
        +    },
        +    "businesses_dirce": {
        +      "type": "object"
        +    },
        +    "demographics_ine": {
        +      "type": "object"
        +    },
        +    "digital_infrastructure": {
        +      "type": "object"
        +    },
        +    "economy": {
        +      "type": "object"
        +    },
        +    "employment_sepe": {
        +      "type": "object"
        +    },
        +    "entia_classification": {
        +      "type": "object"
        +    },
        +    "income_aeat": {
        +      "type": "object"
        +    },
        +    "municipality": {
        +      "type": "string"
        +    },
        +    "postal_code": {
        +      "type": "string"
        +    },
        +    "poverty_inequality_ccaa": {
        +      "type": "object"
        +    },
        +    "province": {
        +      "type": "string"
        +    },
        +    "real_estate": {
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
  6. 2 tool updates
    • Changedget_competitors7 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City name (Madrid, Barcelona, London, Paris)"New value: +"City name in Spain (Madrid, Barcelona, Valencia, Sevilla, Bilbao)"
      • addedInput schema / properties / limit / description
        Added value: +"Max results (1-30)"
      • changedInput schema / properties / limit / maximum
        Previous value: -50New value: +30
      • changedInput schema / properties / sector / description
        Previous value: -"ENTIA sector slug (estetica, dental, psicologia, legal, …)"New value: +"ENTIA sector slug. Canonical: dental, legal, estetica, psicologia, medicos, talleres, veterinarios, reformas, inmobiliarias, asesorias, gimnasios… Aliases (abogados, salud, dentist, beautysalon…) resolve to a canonical slug and the response declares the translation in _meta.sector_resolved_from."
      • addedInput schema / properties / sector / enum
        Added value: +[
        +  "abogados",
        +  "accountingservice",
        +  "asesoria",
        +  "asesorias",
        +  "attorney",
        +  "automocion",
        +  "automotivebusiness",
        +  "autorepair",
        +  "barberia",
        +  "barberias",
        +  "beautysalon",
        +  "belleza",
        +  "clinicas",
        +  "construccion",
        +  "consultoria",
        +  "dental",
        +  "dentist",
        +  "dentista",
        +  "ecommerce",
        +  "educacion",
        +  "energia",
        +  "estetica",
        +  "exercisegym",
        +  "farmacia",
        +  "farmacias",
        +  "financial",
        +  "financialservice",
        +  "fisio",
        +  "fisioterapia",
        +  "foodestablishment",
        +  "generalcontractor",
        +  "gestion",
        +  "gestoria",
        +  "gestorias",
        +  "gimnasio",
        +  "gimnasios",
        +  "hairsalon",
        +  "healthandbeautybusiness",
        +  "healthcare",
        +  "healthclub",
        +  "homeandconstructionbusiness",
        +  "hospital",
        +  "hospitality",
        +  "inmobiliaria",
        +  "inmobiliarias",
        +  "insurance",
        +  "insuranceagency",
        +  "legal",
        +  "legalservice",
        +  "medicalbusiness",
        +  "medicalclinic",
        +  "medico",
        +  "medicos",
        +  "nutricion",
        +  "optica",
        +  "opticas",
        +  "optician",
        +  "peluqueria",
        +  "peluquerias",
        +  "pharmacy",
        +  "physician",
        +  "physiotherapyclinic",
        +  "podologia",
        +  "psicologia",
        +  "psychologist",
        +  "realestate",
        +  "realestateagent",
        +  "reformas",
        +  "restauracion",
        +  "restaurant",
        +  "restaurantes",
        +  "rrhh",
        +  "saas",
        +  "salud",
        +  "security",
        +  "seguros",
        +  "sportsactivitylocation",
        +  "taller",
        +  "talleres",
        +  "telecom",
        +  "turismo",
        +  "veterinario",
        +  "veterinarios",
        +  "veterinarycare"
        +]
      • removedInput schema / properties / sector / maxLength
        Removed value: -50
      • removedInput schema / properties / sector / minLength
        Removed value: -2
    • Changedsearch_entities3 fields changed
      • addedInput schema / properties / city
        Added value: +{
        +  "description": "City name (Madrid, Barcelona, Valencia, Sevilla, London)",
        +  "maxLength": 100,
        +  "minLength": 2,
        +  "type": "string"
        +}
      • changedInput schema / properties / sector / description
        Previous value: -"Sector filter (dental, legal, talleres, estetica, …)"New value: +"Sector filter. Canonical: dental, legal, estetica, psicologia, medicos, talleres, veterinarios, reformas, inmobiliarias, asesorias, gimnasios… Aliases (abogados, salud, dentist, beautysalon…) resolve to a canonical slug and the response declares the translation in _meta.sector_resolved_from."
      • addedInput schema / properties / sector / enum
        Added value: +[
        +  "abogados",
        +  "accountingservice",
        +  "asesoria",
        +  "asesorias",
        +  "attorney",
        +  "automocion",
        +  "automotivebusiness",
        +  "autorepair",
        +  "barberia",
        +  "barberias",
        +  "beautysalon",
        +  "belleza",
        +  "clinicas",
        +  "construccion",
        +  "consultoria",
        +  "dental",
        +  "dentist",
        +  "dentista",
        +  "ecommerce",
        +  "educacion",
        +  "energia",
        +  "estetica",
        +  "exercisegym",
        +  "farmacia",
        +  "farmacias",
        +  "financial",
        +  "financialservice",
        +  "fisio",
        +  "fisioterapia",
        +  "foodestablishment",
        +  "generalcontractor",
        +  "gestion",
        +  "gestoria",
        +  "gestorias",
        +  "gimnasio",
        +  "gimnasios",
        +  "hairsalon",
        +  "healthandbeautybusiness",
        +  "healthcare",
        +  "healthclub",
        +  "homeandconstructionbusiness",
        +  "hospital",
        +  "hospitality",
        +  "inmobiliaria",
        +  "inmobiliarias",
        +  "insurance",
        +  "insuranceagency",
        +  "legal",
        +  "legalservice",
        +  "medicalbusiness",
        +  "medicalclinic",
        +  "medico",
        +  "medicos",
        +  "nutricion",
        +  "optica",
        +  "opticas",
        +  "optician",
        +  "peluqueria",
        +  "peluquerias",
        +  "pharmacy",
        +  "physician",
        +  "physiotherapyclinic",
        +  "podologia",
        +  "psicologia",
        +  "psychologist",
        +  "realestate",
        +  "realestateagent",
        +  "reformas",
        +  "restauracion",
        +  "restaurant",
        +  "restaurantes",
        +  "rrhh",
        +  "saas",
        +  "salud",
        +  "security",
        +  "seguros",
        +  "sportsactivitylocation",
        +  "taller",
        +  "talleres",
        +  "telecom",
        +  "turismo",
        +  "veterinario",
        +  "veterinarios",
        +  "veterinarycare"
        +]
  7. 1 tool update
    • Removedai_ready_profile
  8. 2 tool updates
    • Changedget_entia_home1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Removedlookup_by_domain
  9. 1 tool update
    • Addedget_entity_home_projection
  10. 2 tool updates
    • Changedentity_lookup3 fields changed
      • addedInput schema / properties / name
        Added value: +{
        +  "description": "Alias for `q` — accepted for compatibility with clients that send `name`.",
        +  "type": "string"
        +}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Alias for `q` — accepted for compatibility with clients that send `query`.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "q"
        -]New value: +[]
    • Changedverify_vat3 fields changed
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Alias for `q`.",
        +  "type": "string"
        +}
      • addedInput schema / properties / vat
        Added value: +{
        +  "description": "Alias for `q` — the VAT number.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "q"
        -]New value: +[]
  11. 1 tool update
    • Removedborme_lookup
  12. 2 tool updates
    • Removedfull_dossier
    • Addedget_full_dossier
  13. 15 tool updates
    • Changedai_ready_profile3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / query / description
        Previous value: -"Company name or domain. Returns the full AI-ready JSON-LD @graph (4 nodes: Organization, Place, LocalBusiness, PostalAddress)."New value: +"Company name or domain"
    • Changedborme_lookup3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / company / description
        Previous value: -"Company name or CIF to look up in BORME (Boletín Oficial del Registro Mercantil de España). Coverage: 40,345,410 mercantile acts since 2009."New value: +"Company name or CIF"
    • Changedentity_lookup3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / q / description
        Previous value: -"Company name, CIF/NIF (e.g. B82846825), EU VAT ID (e.g. ESB82846825), or LEI code (20 chars). The API auto-detects the input type."New value: +"Company name, CIF/NIF (B82846825), EU VAT (ESB82846825), or LEI (20 chars)"
    • Addedfull_dossier
    • Changedget_competitors5 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / city / description
        Previous value: -"City name in the target country (e.g. Madrid, Barcelona, London, Paris)."New value: +"City name (Madrid, Barcelona, London, Paris)"
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum competitors to return (1-50, default 10)."
      • changedInput schema / properties / sector / description
        Previous value: -"ENTIA sector slug (e.g. estetica, dental, psicologia, legal, inmobiliaria, restaurantes, gimnasios, salud)."New value: +"ENTIA sector slug (estetica, dental, psicologia, legal, …)"
    • Changedget_entia_home6 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / city / description
        Previous value: -"City slug, lowercase with hyphens (e.g. \"madrid\", \"barcelona\", \"london\")"New value: +"City slug (madrid, barcelona, london)"
      • changedInput schema / properties / country / description
        Previous value: -"ISO 3166-1 alpha-2 country code, lowercase (e.g. \"es\", \"gb\", \"fr\")"New value: +"ISO 3166-1 alpha-2 (es, gb, fr)"
      • changedInput schema / properties / sector / description
        Previous value: -"Industry slug (e.g. \"dental\", \"legal\", \"talleres\", \"estetica\", \"inmobiliarias\")"New value: +"Industry slug (dental, legal, talleres, …)"
      • changedInput schema / properties / slug / description
        Previous value: -"URL-safe business name slug (e.g. \"clinica-dental-sonrisa\")"New value: +"Business slug (clinica-dental-sonrisa)"
    • Removedget_full_dossier
    • Changedget_platform_stats2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / required
        Added value: +[]
    • Changedget_showcase2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / required
        Added value: +[]
    • Changedlookup_by_domain3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / domain / description
        Previous value: -"Domain name to look up (e.g. \"example.com\" or \"www.example.com\"). The API normalizes the domain automatically."New value: +"Domain name (example.com or www.example.com)"
    • Changedprofessional_lookup3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / query / description
        Previous value: -"Professional name, colegiado number, or REPS identifier. Covers healthcare professionals (REPS), abogados (CGAE), psicólogos (COP), médicos, enfermería, dentistas, fisioterapeutas, logopedas, dietistas, podólogos, ópticos, veterinarios, terapeutas ocupacionales (17 CCAA)."New value: +"Professional name, colegiado number, or REPS identifier"
    • Changedrun_risk_audit4 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / domain / description
        Previous value: -"Domain to audit (e.g. \"clinicadental.es\", \"example.com\")"New value: +"Domain to audit (clinicadental.es, example.com)"
      • changedInput schema / properties / sector_id / description
        Previous value: -"Optional sector hint for more accurate scoring. Examples: dental, legal, talleres, estetica, inmobiliarias"New value: +"Optional sector hint (dental, legal, talleres, …)"
    • Changedsearch_entities4 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / country / description
        Previous value: -"ISO country code filter (e.g. \"es\", \"gb\", \"fr\")"New value: +"ISO country code (es, gb, fr)"
      • changedInput schema / properties / sector / description
        Previous value: -"Sector filter. Examples: dental, legal, talleres, estetica, inmobiliarias, hosteleria, reformas, veterinarios, asesorias, gimnasios, psicologia, and 24+ more"New value: +"Sector filter (dental, legal, talleres, estetica, …)"
    • Changedverify_vat3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / q / description
        Previous value: -"EU VAT number to validate against VIES. Accepts country prefix or bare number (e.g. ESA28015865, A28015865, IE6388047V)."New value: +"EU VAT number (ESA28015865, A28015865, IE6388047V)"
    • Changedzone_profile4 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / postal_code / description
        Previous value: -"Spanish 5-digit postal code (e.g. 28013 for Madrid Gran Vía). Spain only — UK/FR/etc. return empty."New value: +"Spanish 5-digit postal code (28013 = Madrid Gran Vía)"
      • changedInput schema / properties / postal_code / pattern
        Previous value: -"^\\d{5}$"New value: +"^[0-9]{5}$"

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to access official European business data across 15 EU countries, including company lookups, VAT validation, sanctions screening, and KYB reports.
    7,661 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to look up, resolve, verify and sanctions-screen legal entities across the UK and Europe by merging company registries, GLEIF LEIs and VIES VAT data into one profile with per-field provenance. Supports KYB and due-diligence workflows through name and identifier search, officer and ownership tracing, filings and insolvency checks, and honest reporting of gaps, stale sources or unavailable data.
    9
    Elastic 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    eu-verify lets AI agents verify any European business partner: company existence (official French SIREN registry), insolvency records (BODACC), EU VAT validation before invoicing (VIES), SIRET/IBAN/LEI checks, address and email verification, French business-day deadlines and EU public tenders. 10 paid MCP tools + a free catalog tool, plus 81 HTTP endpoints. Each call costs $0.001-$0.01 in USDC on
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to verify and search business entities across US state and international company registries, providing real-time confirmation of legal existence, status, and filings.
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.