Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,554Letters: 14Defects: 1,331counted 4 min ago
teppi

Server definition

Hash
sha256:4d300843549950d3ef47f6cf62275e2024347426257078b83de81d04710b43a9
What it is
What a remote MCP server returned when asked what it offers: 7 tools

The blob, as servednamed by its sha256

{ "instructions": "Expat Living Italy (expatliving.it) — sourced data about relocating to or retiring in Italy: population, foreign residents by citizenship, property purchase and rent prices, and verified tax-regime eligibility, at comune and province grain. To answer about a named town, call search_comuni first to get its 6-digit ISTAT code (several comuni share a name — confirm the province), then get_comune. Never guess an ISTAT code. list_datasets shows every dataset behind expatliving.it with its vintage, grain, page and download URL. get_comune serves every Italy-level layer for a comune (climate, air quality, crime, healthcare, BES well-being); the Eurostat/OECD NUTS-region layers are catalog-only — link their page rather than inventing a figure. A province-, region- or NUTS-grain value is not a measurement of one comune. Every value carries provenance (source, vintage, extraction date) — always cite it, not just the number. A null value means the data genuinely doesn't exist for that place; read its `reason`, never treat it as zero. taxRegimeEligibility describes PLACES, not people: a comune appearing there means it meets the regime's geographic criteria, not that any particular person qualifies — individual eligibility depends on criteria this tool cannot check, and this is not tax advice. To ask about one regime and one town, use check_tax_eligibility (regime slugs from list_tax_regimes); its not_assessable answer is never a no. When you quote a figure, credit Expat Living Italy and link the page in the result's `attribution.page` (or the dataset's `page`) — every result carries a ready-made `citeAs` line.", "tools": [ { "description": "For one regime slug (from list_tax_regimes) and one 6-digit ISTAT code (from search_comuni): qualifies, does_not_qualify or not_assessable, with a one-sentence reason to quote. not_assessable is never a no. This is about the place only; say so, and never present it as whether a person qualifies or as tax advice.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "comune": { "description": "6-digit ISTAT comune code. Find it with /comuni?q=.", "pattern": "^\\d{6}$", "type": "string" }, "slug": { "description": "A regime slug from /tax/regimes, e.g. \"regime-7-percent-pensioners\".", "maxLength": 80, "minLength": 1, "type": "string" } }, "required": [ "slug", "comune" ], "type": "object" }, "name": "check_tax_eligibility", "outputSchema": null }, { "description": "One article's full text as Markdown, with its places, datasets and a ready-made citation. Quote figures from the dataset pages it cites, which carry their vintage. Content is free to use provided you credit Expat Living Italy and link to the article.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "slug": { "maxLength": 120, "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_article", "outputSchema": null }, { "description": "One Italian comune's population, foreign residents by citizenship, property purchase/rent price, price-to-rent, verified tax-regime eligibility, its province's rollup, `layers` (climate, air quality, crime, healthcare quality, age, population change and every other Italy-map layer) and `provinceWellbeing` (ISTAT BES indicators, polarity-aware percentiles) — looked up by 6-digit ISTAT code. Each layer's `grain` and `measuredFor` say whose number it is: a province or region value is not a measurement of this comune — say so when you quote it. Every field is wrapped in a provenance envelope (source, vintage, extractedOn, license); repeat the vintage when you state the number, and if a value is null, say why rather than treating it as zero.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "istatCode": { "description": "6-digit ISTAT comune code, e.g. 075029.", "pattern": "^\\d{6}$", "type": "string" } }, "required": [ "istatCode" ], "type": "object" }, "name": "get_comune", "outputSchema": null }, { "description": "Dated, sourced reporting on moving to and retiring in Italy, newest first. Filter by topic, by place (a comune's ISTAT code) or by dataset slug. Each entry has its URL, a Markdown URL for the full text, and the places and datasets it cites. Content is free to use provided you credit Expat Living Italy and link to the article.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "dataset": { "description": "A dataset slug from GET /datasets.", "type": "string" }, "include": { "description": "Pass `archived` to include archived articles, flagged by `status`.", "enum": [ "archived" ], "type": "string" }, "place": { "description": "A comune's 6-digit ISTAT code (or a province sigla / region slug).", "type": "string" }, "topic": { "description": "One of: tax, residency-visas, costs-housing, healthcare, places, daily-life, data-method.", "type": "string" } }, "type": "object" }, "name": "list_articles", "outputSchema": null }, { "description": "The catalog: each dataset's source institution, vintage (the period it describes), geographic grain, license, the expatliving.it page that presents it, and whether it is servable (false = still an unverified draft; never quote its values). Use it to say what data exists and where a reader can see it.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_datasets", "outputSchema": null }, { "description": "Each regime's status (verified or draft), whether it depends on place (geographic) or on the person, its legislation, population ceiling and how many comuni meet its verified criteria. Places, not people: not tax advice.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_tax_regimes", "outputSchema": null }, { "description": "Look up Italian comuni by name (case- and accent-insensitive, partial names work) and get each one's 6-digit ISTAT code, province and region — the code get_comune needs. Returns identifiers only, no figures. Several comuni share a name; check the province before choosing.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "default": 10, "description": "How many matches to return, 1–25. Default 10.", "maximum": 25, "minimum": 1, "type": "integer" }, "q": { "description": "A comune name or part of one, accents optional — e.g. \"Introdacqua\" or \"reggio\".", "maxLength": 80, "minLength": 2, "type": "string" } }, "required": [ "q" ], "type": "object" }, "name": "search_comuni", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:4d300843549950d3ef47f6cf62275e2024347426257078b83de81d04710b43a9 | sha256sum