ENTIA Entity Verification
11.3M entities, 10 countries, 12 tools. EU VAT (VIES), BORME, GLEIF, KYB. Free: 100 req/month.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"entity-verification": {
"url": "https://mcp.entia.systems/mcp"
}
}
}Puntos de conexión remotos
https://mcp.entia.systems/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (12)
🟢entity_lookup(q, query, name)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 2,
"maxLength": 500,
"description": "Company name, CIF/NIF (B82846825), EU VAT (ESB82846825), or LEI (20 chars)"
},
"query": {
"type": "string",
"description": "Alias for `q` — accepted for compatibility with clients that send `query`."
},
"name": {
"type": "string",
"description": "Alias for `q` — accepted for compatibility with clients that send `name`."
}
},
"required": []
}Esquema de salida
{
"type": "object",
"properties": {
"found": {
"type": "boolean",
"description": "True only when an identity anchor corroborated the query"
},
"query": {
"type": "string"
},
"entity": {
"type": "object",
"description": "Verified identity: legal name, tax id, address, sector"
},
"registry_data": {
"type": "object",
"description": "Official registry payload (BORME/GLEIF/VIES/native)"
},
"economic_profile": {
"type": "object"
},
"data_coverage": {
"type": "object",
"description": "Which sources answered and which did not"
},
"provenance": {
"type": "object",
"description": "Publisher and data sources of this answer"
},
"coherence_errors": {
"type": "array",
"items": {
"type": "string"
}
},
"integrity": {
"type": "object",
"description": "Tamper-evidence MAC. Not an electronic signature"
},
"error_code": {
"type": "string"
},
"_meta": {
"type": "object"
}
},
"description": "Identity resolution result. `found` is fail-closed: false means no identity anchor was corroborated, not 'try again'.",
"additionalProperties": true
}🟢search_entities(q, country, city, sector, limit)
Search verified entities across 10 countries by name, keyword, country, city or sector. 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.
Esquema de entrada
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 2,
"maxLength": 500,
"description": "Search query — company name or keywords"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO country code (es, gb, fr)"
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "City name (Madrid, Barcelona, Valencia, Sevilla, London)"
},
"sector": {
"type": "string",
"enum": [
"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"
],
"description": "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."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "Max results (default 10, max 50)"
}
},
"required": [
"q"
]
}Esquema de salida
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"entities": {
"type": "array",
"items": {
"type": "object"
},
"description": "Each carries name, city, sector and canonical Entia Home URL"
},
"filters": {
"type": "object",
"description": "Filters actually applied — echoes q/sector/city/country"
},
"_meta": {
"type": "object",
"description": "Carries sector_resolved_from when an alias was translated"
}
},
"description": "Paged catalogue search over the verified corpus.",
"additionalProperties": true
}🟢verify_vat(q, vat, query)
Real-time EU VAT validation via VIES (27 countries). Returns {valid, name, address, vat_number, country}.
Esquema de entrada
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 4,
"maxLength": 20,
"description": "EU VAT number (ESA28015865, A28015865, IE6388047V)"
},
"vat": {
"type": "string",
"description": "Alias for `q` — the VAT number."
},
"query": {
"type": "string",
"description": "Alias for `q`."
}
},
"required": []
}Esquema de salida
{
"type": "object",
"properties": {
"vat_number": {
"type": "string"
},
"country_code": {
"type": "string"
},
"query": {
"type": "string"
},
"result": {
"type": "object",
"description": "VIES answer: validity, registered name and address"
},
"_meta": {
"type": "object"
}
},
"description": "Real-time VIES validation.",
"additionalProperties": true
}🟢zone_profile(postal_code)
Socioeconomic profile of a Spanish postal code — 17 blocks: income, employment, demographics, business census, real estate, FTTH, poverty, tourism.
Esquema de entrada
{
"type": "object",
"properties": {
"postal_code": {
"type": "string",
"pattern": "^[0-9]{5}$",
"description": "Spanish 5-digit postal code (28013 = Madrid Gran Vía)"
}
},
"required": [
"postal_code"
]
}Esquema de salida
{
"type": "object",
"properties": {
"postal_code": {
"type": "string"
},
"municipality": {
"type": "string"
},
"province": {
"type": "string"
},
"autonomous_community": {
"type": "string"
},
"income_aeat": {
"type": "object"
},
"employment_sepe": {
"type": "object"
},
"demographics_ine": {
"type": "object"
},
"businesses_dirce": {
"type": "object"
},
"real_estate": {
"type": "object"
},
"digital_infrastructure": {
"type": "object"
},
"poverty_inequality_ccaa": {
"type": "object"
},
"economy": {
"type": "object"
},
"entia_classification": {
"type": "object"
},
"_meta": {
"type": "object"
}
},
"description": "Socioeconomic profile of a Spanish postal code, 17 blocks from official sources.",
"additionalProperties": true
}🟢get_competitors(sector, city, limit)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"sector": {
"type": "string",
"enum": [
"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"
],
"description": "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."
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "City name in Spain (Madrid, Barcelona, Valencia, Sevilla, Bilbao)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"default": 10,
"description": "Max results (1-30)"
}
},
"required": [
"sector",
"city"
]
}Esquema de salida
{
"type": "object",
"properties": {
"sector": {
"type": "string",
"description": "Canonical slug actually used after alias resolution"
},
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"count": {
"type": "integer"
},
"competitors": {
"type": "array",
"items": {
"type": "object"
}
},
"_meta": {
"type": "object",
"description": "Carries sector_resolved_from / sector_resolved_to"
}
},
"description": "Ranked competitors in the same sector and city. Spain only on the public surface.",
"additionalProperties": true
}🟢get_showcase(category, limit)
Curated IBEX35 + EU entity examples. FREE — does not consume quota. Use to explore data depth.
Esquema de entrada
{
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"all",
"ibex",
"tech",
"banking",
"energy",
"retail",
"spain",
"eu"
],
"description": "Subset to sample (default: all)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Sample size (default 3, max 5)"
}
},
"required": []
}Esquema de salida
{
"type": "object",
"properties": {
"entities": {
"type": "array",
"items": {
"type": "object"
}
},
"access_level": {
"type": "string"
},
"gated_fields": {
"type": "array",
"items": {
"type": "string"
}
},
"unlock": {
"type": "object"
},
"upgrade_url": {
"type": "string"
},
"upgrade_hint": {
"type": "string"
},
"checkout": {
"type": "object"
},
"_meta": {
"type": "object"
}
},
"description": "Curated sample entities for evaluation. Fields are gated by tier.",
"additionalProperties": true
}🟢professional_lookup(query, vertical)
Verify professional registrations across 24 Spanish health/legal/psychology verticals. Returns colegiado number, college, specialty, status.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 500,
"description": "Professional name, colegiado number, or REPS identifier"
},
"vertical": {
"type": "string",
"maxLength": 40,
"description": "Healthcare/legal vertical (dental, medicos, psicologia, ...)"
}
},
"required": [
"query"
]
}Esquema de salida
{
"type": "object",
"properties": {
"_meta": {
"type": "object"
}
},
"description": "Professional registration verification across Spanish health, legal and psychology registries. Enterprise DPA required.",
"additionalProperties": true
}🟢get_full_dossier(query)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Company name, CIF/NIF, EU VAT, or LEI"
}
},
"required": [
"query"
]
}Esquema de salida
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"query": {
"type": "string"
},
"entity": {
"type": "object"
},
"trust_score": {
"type": "object"
},
"verification": {
"type": "object"
},
"data_coverage": {
"type": "object"
},
"provenance": {
"type": "object"
},
"integrity": {
"type": "object"
},
"_meta": {
"type": "object"
}
},
"description": "Aggregated dossier: identity, registry, trust and verification in one call.",
"additionalProperties": true
}🟢get_platform_stats
Live platform stats: entities count, countries, sources, homes published.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}Esquema de salida
{
"type": "object",
"properties": {
"total_entities": {
"type": "integer"
},
"countries_active": {
"type": "integer"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
},
"borme_acts": {
"type": "integer"
},
"homes_published": {
"type": "integer"
},
"jsonld_generated": {
"type": "integer"
},
"sources_active": {
"type": "integer"
},
"last_updated": {
"type": "string"
},
"status": {
"type": "string"
},
"cache_ttl": {
"type": "integer"
},
"_unverified": {
"type": "array",
"items": {
"type": "string"
},
"description": "Figures NOT independently verified — honesty marker, do not quote as verified"
},
"_meta": {
"type": "object"
}
},
"description": "Live platform totals. Single source of truth for corpus size.",
"additionalProperties": true
}🟢run_risk_audit(domain, sector_id, name)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"pattern": "^[a-z0-9]([a-z0-9.-]*[a-z0-9])?\\.[a-z]{2,}$",
"description": "Domain to audit (clinicadental.es, example.com)"
},
"sector_id": {
"type": "string",
"description": "Optional sector hint (dental, legal, talleres, …)"
},
"name": {
"type": "string",
"description": "Optional business name for context"
}
},
"required": [
"domain"
]
}Esquema de salida
{
"type": "object",
"properties": {
"domain": {
"type": "string"
},
"risk_score": {
"type": "number"
},
"risk_level": {
"type": "string"
},
"audit": {
"type": "object"
},
"audit_token": {
"type": "string"
},
"job_id": {
"type": "string"
},
"status": {
"type": "string"
},
"_meta": {
"type": "object"
}
},
"description": "AI-readiness and digital risk audit of a domain.",
"additionalProperties": true
}🟢get_entia_home(country, sector, city, slug)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$",
"description": "ISO 3166-1 alpha-2 (es, gb, fr)"
},
"sector": {
"type": "string",
"minLength": 2,
"maxLength": 50,
"pattern": "^[a-z0-9-]+$",
"description": "Industry slug (dental, legal, talleres, …)"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9-]+$",
"description": "City slug (madrid, barcelona, london)"
},
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[a-z0-9-]+$",
"description": "Business slug (clinica-dental-sonrisa)"
}
},
"required": [
"country",
"sector",
"city",
"slug"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"@context": {
"type": "string"
},
"@graph": {
"type": "array",
"items": {
"type": "object"
},
"description": "WebPage, Entity, Verification Report and Territorial Profile nodes"
},
"_meta": {
"type": "object"
}
},
"description": "Full Schema.org @graph of an Entia Home page — the same truth as its public HTML twin.",
"additionalProperties": true
}🟢get_entity_home_projection(country, sector, city, slug, include_render_context)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$",
"description": "ISO 3166-1 alpha-2 (es, gb, fr)"
},
"sector": {
"type": "string",
"minLength": 2,
"maxLength": 50,
"pattern": "^[a-z0-9-]+$",
"description": "Industry slug (dental, legal, …)"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9-]+$",
"description": "City slug (madrid, barcelona)"
},
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[a-z0-9-]+$",
"description": "Business slug (clinica-dental-ceodent)"
},
"include_render_context": {
"type": "boolean",
"default": false,
"description": "If true, keep render_context (large). Default strips it for agents."
}
},
"required": [
"country",
"sector",
"city",
"slug"
]
}Esquema de salida
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"subject": {
"type": "object"
},
"claims": {
"type": "object"
},
"projection": {
"type": "object"
},
"corroboration": {
"type": "object"
},
"gate": {
"type": "string",
"description": "PUBLISH / PARTIAL / HOLD / REGISTRY_ONLY"
},
"policy": {
"type": "object"
},
"generated_at": {
"type": "string"
},
"materializer_version": {
"type": "string"
},
"_meta": {
"type": "object"
}
},
"description": "entia.entity_home_projection.v1 snapshot: claims, corroboration gate and policy.",
"additionalProperties": true
}Comunidad
Evidencia