Server definition
- Hash
- sha256:2bf5ca03390e057770264024172a518a3d40b7b2936e1eaae61161c48d5c3578
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": "ENTIA — identidad empresarial verificada contra registros oficiales (BORME,\nGLEIF, VIES, Wikidata, INE/AEAT/SEPE). Sin scraping.\n\nTOOLS (12, todas operativas):\n- entity_lookup([q], [query], [name]) [sin clave] Look up any business entity by name, CIF/NIF, EU VAT, or LEI.\n- search_entities(q, [country], [city], [sector], [limit]) [sin clave] Search verified entities across 10 countries by name, keyword, country, city or sector.\n- verify_vat([q], [vat], [query]) [sin clave] Real-time EU VAT validation via VIES (27 countries).\n- zone_profile(postal_code) [requiere SIGNAL+] Socioeconomic profile of a Spanish postal code — 17 blocks: income, employment, demographics, business census, real estate, FTTH, poverty, tourism.\n- get_competitors(sector, city, [limit]) [requiere BUILD+] Find real competitors in the same sector and city.\n- get_showcase([category], [limit]) [sin clave] Curated IBEX35 + EU entity examples.\n- professional_lookup(query, [vertical]) [requiere ENTERPRISE+] Verify professional registrations across 24 Spanish health/legal/psychology verticals.\n- get_full_dossier(query) [requiere INTEGRATE+] Aggregator — 90+ fields about an entity in one call.\n- get_platform_stats() [sin clave] Live platform stats: entities count, countries, sources, homes published.\n- run_risk_audit(domain, [sector_id], [name]) [requiere SIGNAL+] Run comprehensive AI-readiness + digital risk audit on any domain.\n- get_entia_home(country, sector, city, slug) [sin clave] Retrieve the Schema.org JSON-LD @graph for a specific entity's Entia Home (machine layer at /v1/identity/{country}/{sector}/{city}/{slug}.jsonld).\n- get_entity_home_projection(country, sector, city, slug, [include_render_context]) [requiere SIGNAL+] Read the materializer snapshot entia.entity_home_projection.v1 for an Entia Home (claims + projection + policy).\n\nCOMO LEER LAS RESPUESTAS — importa mas que la lista de tools:\n- `found:false` es FAIL-CLOSED: significa que ninguna fuente corroboro la\n identidad, no 'reintenta con otra grafia'.\n- Un campo ausente esta ausente. NO lo interpretes como cero ni lo rellenes.\n- `verification.*` y `linkage_verified` son el producto: distingue VERIFIED\n de UNVERIFIED antes de afirmar nada al usuario, y cita `sources` cuando\n atribuyas un dato.\n- `integrity` es tamper-evidence con MAC simetrica: NO es firma electronica\n ni sello cualificado. No lo presentes como tal.\n- Los campos `signature` y `legal_framework` son alias DEPRECADOS de\n `integrity` y `provenance`; se retiran despues del 2026-11-30.\n\nSin clave se sirve una vista TRACE (identidad basica). Un 402 trae la URL de\ncheckout del tier exacto que falta: https://entia.systems/mcp-setup",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"name": {
"description": "Alias for `q` — accepted for compatibility with clients that send `name`.",
"type": "string"
},
"q": {
"description": "Company name, CIF/NIF (B82846825), EU VAT (ESB82846825), or LEI (20 chars)",
"maxLength": 500,
"minLength": 2,
"type": "string"
},
"query": {
"description": "Alias for `q` — accepted for compatibility with clients that send `query`.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "entity_lookup",
"outputSchema": {
"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"
},
"integrity": {
"description": "Tamper-evidence MAC. Not an electronic signature",
"type": "object"
},
"provenance": {
"description": "Publisher and data sources of this answer",
"type": "object"
},
"query": {
"type": "string"
},
"registry_data": {
"description": "Official registry payload (BORME/GLEIF/VIES/native)",
"type": "object"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"city": {
"description": "City name in Spain (Madrid, Barcelona, Valencia, Sevilla, Bilbao)",
"maxLength": 100,
"minLength": 2,
"type": "string"
},
"limit": {
"default": 10,
"description": "Max results (1-30)",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"sector": {
"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.",
"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"
],
"type": "string"
}
},
"required": [
"sector",
"city"
],
"type": "object"
},
"name": "get_competitors",
"outputSchema": {
"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"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"city": {
"description": "City slug (madrid, barcelona, london)",
"maxLength": 100,
"minLength": 1,
"pattern": "^[a-z0-9-]+$",
"type": "string"
},
"country": {
"description": "ISO 3166-1 alpha-2 (es, gb, fr)",
"maxLength": 2,
"minLength": 2,
"pattern": "^[a-z]{2}$",
"type": "string"
},
"sector": {
"description": "Industry slug (dental, legal, talleres, …)",
"maxLength": 50,
"minLength": 2,
"pattern": "^[a-z0-9-]+$",
"type": "string"
},
"slug": {
"description": "Business slug (clinica-dental-sonrisa)",
"maxLength": 200,
"minLength": 1,
"pattern": "^[a-z0-9-]+$",
"type": "string"
}
},
"required": [
"country",
"sector",
"city",
"slug"
],
"type": "object"
},
"name": "get_entia_home",
"outputSchema": {
"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"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"city": {
"description": "City slug (madrid, barcelona)",
"maxLength": 100,
"minLength": 1,
"pattern": "^[a-z0-9-]+$",
"type": "string"
},
"country": {
"description": "ISO 3166-1 alpha-2 (es, gb, fr)",
"maxLength": 2,
"minLength": 2,
"pattern": "^[a-z]{2}$",
"type": "string"
},
"include_render_context": {
"default": false,
"description": "If true, keep render_context (large). Default strips it for agents.",
"type": "boolean"
},
"sector": {
"description": "Industry slug (dental, legal, …)",
"maxLength": 50,
"minLength": 2,
"pattern": "^[a-z0-9-]+$",
"type": "string"
},
"slug": {
"description": "Business slug (clinica-dental-ceodent)",
"maxLength": 200,
"minLength": 1,
"pattern": "^[a-z0-9-]+$",
"type": "string"
}
},
"required": [
"country",
"sector",
"city",
"slug"
],
"type": "object"
},
"name": "get_entity_home_projection",
"outputSchema": {
"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"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"query": {
"description": "Company name, CIF/NIF, EU VAT, or LEI",
"maxLength": 200,
"minLength": 2,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "get_full_dossier",
"outputSchema": {
"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"
},
"integrity": {
"type": "object"
},
"provenance": {
"type": "object"
},
"query": {
"type": "string"
},
"trust_score": {
"type": "object"
},
"verification": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Live platform stats: entities count, countries, sources, homes published.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_platform_stats",
"outputSchema": {
"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"
}
},
{
"description": "Curated IBEX35 + EU entity examples. FREE — does not consume quota. Use to explore data depth.",
"inputSchema": {
"properties": {
"category": {
"description": "Subset to sample (default: all)",
"enum": [
"all",
"ibex",
"tech",
"banking",
"energy",
"retail",
"spain",
"eu"
],
"type": "string"
},
"limit": {
"description": "Sample size (default 3, max 5)",
"maximum": 5,
"minimum": 1,
"type": "integer"
}
},
"required": [],
"type": "object"
},
"name": "get_showcase",
"outputSchema": {
"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"
}
},
{
"description": "Verify professional registrations across 24 Spanish health/legal/psychology verticals. Returns colegiado number, college, specialty, status.",
"inputSchema": {
"properties": {
"query": {
"description": "Professional name, colegiado number, or REPS identifier",
"maxLength": 500,
"minLength": 2,
"type": "string"
},
"vertical": {
"description": "Healthcare/legal vertical (dental, medicos, psicologia, ...)",
"maxLength": 40,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "professional_lookup",
"outputSchema": {
"additionalProperties": true,
"description": "Professional registration verification across Spanish health, legal and psychology registries. Enterprise DPA required.",
"properties": {
"_meta": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"domain": {
"description": "Domain to audit (clinicadental.es, example.com)",
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-z0-9]([a-z0-9.-]*[a-z0-9])?\\.[a-z]{2,}$",
"type": "string"
},
"name": {
"description": "Optional business name for context",
"type": "string"
},
"sector_id": {
"description": "Optional sector hint (dental, legal, talleres, …)",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "run_risk_audit",
"outputSchema": {
"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"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"city": {
"description": "City name (Madrid, Barcelona, Valencia, Sevilla, London)",
"maxLength": 100,
"minLength": 2,
"type": "string"
},
"country": {
"description": "ISO country code (es, gb, fr)",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"limit": {
"default": 10,
"description": "Max results (default 10, max 50)",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Search query — company name or keywords",
"maxLength": 500,
"minLength": 2,
"type": "string"
},
"sector": {
"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.",
"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"
],
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "search_entities",
"outputSchema": {
"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"
}
},
{
"description": "Real-time EU VAT validation via VIES (27 countries). Returns {valid, name, address, vat_number, country}.",
"inputSchema": {
"properties": {
"q": {
"description": "EU VAT number (ESA28015865, A28015865, IE6388047V)",
"maxLength": 20,
"minLength": 4,
"type": "string"
},
"query": {
"description": "Alias for `q`.",
"type": "string"
},
"vat": {
"description": "Alias for `q` — the VAT number.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "verify_vat",
"outputSchema": {
"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"
}
},
{
"description": "Socioeconomic profile of a Spanish postal code — 17 blocks: income, employment, demographics, business census, real estate, FTTH, poverty, tourism.",
"inputSchema": {
"properties": {
"postal_code": {
"description": "Spanish 5-digit postal code (28013 = Madrid Gran Vía)",
"pattern": "^[0-9]{5}$",
"type": "string"
}
},
"required": [
"postal_code"
],
"type": "object"
},
"name": "zone_profile",
"outputSchema": {
"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"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:2bf5ca03390e057770264024172a518a3d40b7b2936e1eaae61161c48d5c3578 | sha256sum