Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted 4 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2bf5ca03390e057770264024172a518a3d40b7b2936e1eaae61161c48d5c3578 | sha256sum