Skip to main content
Glama

ENTIA Entity Verification MCP

Search Entities

search_entities
Read-onlyIdempotent

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.

Input Schema

TableJSON Schema
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

TableJSON Schema
NameRequiredDescriptionDefault
_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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema 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"
      +}
  2. Changed3 schema 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"
      +]
  3. Changed15 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / city
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "City name (e.g. Madrid, Barcelona, Valencia, Sevilla, London)"
      -}
    • removedInput schema / properties / country / default
      Removed value: -"ES"
    • changedInput schema / properties / country / description
      Previous value: -"ISO country code"New value: +"ISO country code (es, gb, fr)"
    • addedInput schema / properties / country / maxLength
      Added value: +2
    • addedInput schema / properties / country / minLength
      Added value: +2
    • changedInput schema / properties / limit / description
      Previous value: -"Max results (1-50)"New value: +"Max results (default 10, max 50)"
    • changedInput schema / properties / q / description
      Previous value: -"Company name or partial name to search"New value: +"Search query — company name or keywords"
    • addedInput schema / properties / q / maxLength
      Added value: +500
    • addedInput schema / properties / q / minLength
      Added value: +2
    • removedInput schema / properties / sector / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / sector / default
      Removed value: -null
    • changedInput schema / properties / sector / description
      Previous value: -"Business sector filter: dental, legal, estetica, psicologia, talleres, veterinarios, reformas, inmobiliarias, asesorias, gimnasios, medicos, arquitectos, farmacias, opticas, fisioterapia, podologia, logopedia, nutricion, enfermeria..."New value: +"Sector filter (dental, legal, talleres, estetica, …)"
    • addedInput schema / properties / sector / type
      Added value: +"string"
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "type": "object"
      -}New value: +null
  4. First observed

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, open-world and non-destructive behavior, so the safety profile is covered structurally. Beyond that the description does add genuinely useful context – results are a mix of registry-backed companies and unverified public listing data, and output is tier-gated by API key level. Naming the mixed provenance is a real behavioral caveat, though it does not discuss rate limits or pagination.

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

Conciseness5/5

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

Four dense sentences, each carrying a distinct load: capability, result provenance, routing to verification siblings, example queries, then the sector-vocabulary rule and the auth-tier rule. The most decision-relevant information (what it searches, what it returns, which sibling verifies) comes 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?

Five parameters, one enum and an output schema present, and the description still supplies the two things the schema cannot: the reliability of the result set and the auth-dependent result gating. Return-value detail is correctly left to the output schema, and the _meta field is mentioned only where it affects interpretation.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description earns above that by explaining that `sector` is a closed vocabulary, that aliases resolve to canonical slugs, and that the resolution is reported back in `_meta.sector_resolved_from`. That resolves the main ambiguity an agent would hit when it sees 80+ enum values containing both English and Spanish synonyms.

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 (search) plus the resource (businesses) and the facets available (name, keyword, country, city, sector), then explicitly names the alternatives it is NOT (entity_lookup, verify_vat). An agent can separate discovery search from lookup/verification without opening a schema.

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

Usage Guidelines5/5

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

Gives concrete usage contexts ('find me a dentist in Madrid', 'list law firms in Barcelona') and routes the agent to entity_lookup or verify_vat when a single result must be verified. It also states the access precondition: anonymous callers get a trace-level preview while authenticated TRACE+ keys unlock full records.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources