ENTIA Entity Verification
11.3M entities, 10 countries, 12 tools. EU VAT (VIES), BORME, GLEIF, KYB. Free: 100 req/month.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"entity-verification": {
"url": "https://mcp.entia.systems/mcp"
}
}
}Remote-Endpunkte
https://mcp.entia.systems/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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.
Eingabe-Schema
{
"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": []
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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}.
Eingabe-Schema
{
"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": []
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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": []
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Company name, CIF/NIF, EU VAT, or LEI"
}
},
"required": [
"query"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": []
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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
}Community
Nachweis