Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,524Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:a37e941705aa930dcf71da894f7a8ce42aa990c0bc4e792b3d1a6bf6d2ec198f
What it is
What a remote MCP server returned when asked what it offers: 9 tools

The blob, as servednamed by its sha256

{ "instructions": "Déstaire (https://destaire.com) is a curated guide to exceptional hotels and private stays, with travel writing. Start with search_stays (plain words work, with filters for country, destination, collection, amenities, and a nightly budget), then get_stay for one stay's details. Every answer holds the URL of its page on https://destaire.com: give the reader that link. Rates are \"from\" prices shown in euros, checked each week. Déstaire also sells paid city guides, each on its page on https://destaire.com; these tools give a guide's public shop page only, never its contents. With buy_guide, the user can also buy a guide in this conversation.", "tools": [ { "description": "Buy a city guide for the user, paid inside this conversation. Gives a pay link that takes an MPP payment (a Stripe Shared Payment Token from your wallet, such as Link). Confirm the user's email first: the guide goes to that account, and the purchase is final.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "email": { "description": "The user's email address: the guide goes to this Déstaire account.", "format": "email", "maxLength": 254, "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" }, "slug": { "description": "The guide's slug, the last part of its URL.", "maxLength": 120, "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "slug", "email" ], "type": "object" }, "name": "buy_guide", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "email": { "type": "string" }, "guide": { "additionalProperties": {}, "properties": { "city": { "type": "string" }, "country": { "type": "string" }, "cover": { "anyOf": [ { "format": "uri", "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "title", "url", "city", "country", "cover" ], "type": "object" }, "instructions": { "additionalProperties": {}, "properties": { "afterPaying": { "type": "string" }, "agent": { "type": "string" }, "beforePaying": { "type": "string" }, "browser": { "type": "string" } }, "required": [ "beforePaying", "agent", "afterPaying", "browser" ], "type": "object" }, "paymentLink": { "format": "uri", "type": "string" }, "price": { "type": "string" } }, "required": [ "paymentLink", "guide", "price", "email", "instructions" ], "type": "object" } }, { "description": "One article: its opening paragraphs, or with detail \"full\" its whole text with every list of places.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "detail": { "default": "concise", "description": "\"concise\" (the default): the start of the answer and a count, to save context; \"full\": all of it.", "enum": [ "concise", "full" ], "type": "string" }, "slug": { "description": "The article's slug, the last part of its URL.", "maxLength": 120, "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_article", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "author": { "type": "string" }, "category": { "type": "string" }, "note": { "type": "string" }, "photo": { "format": "uri", "type": "string" }, "published": { "type": "string" }, "standfirst": { "type": "string" }, "text": { "type": "string" }, "title": { "type": "string" }, "truncated": { "type": "boolean" }, "url": { "format": "uri", "type": "string" } }, "required": [ "title", "url", "standfirst", "author", "category", "published", "photo", "text", "truncated" ], "type": "object" } }, { "description": "One destination and its stays: the first 10 and the total, or all of them with detail \"full\".", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "country": { "description": "The country, when two destinations share a slug.", "maxLength": 60, "type": "string" }, "detail": { "default": "concise", "description": "\"concise\" (the default): the start of the answer and a count, to save context; \"full\": all of it.", "enum": [ "concise", "full" ], "type": "string" }, "slug": { "description": "The destination's slug, the last part of its URL.", "maxLength": 120, "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_destination", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "country": { "type": "string" }, "name": { "type": "string" }, "note": { "type": "string" }, "stays": { "items": { "additionalProperties": {}, "properties": { "country": { "type": "string" }, "destination": { "additionalProperties": {}, "properties": { "name": { "type": "string" }, "slug": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url", "slug" ], "type": "object" }, "kind": { "description": "A hotel, or a private stay: a whole house or estate that one party rents.", "enum": [ "hotel", "private stay" ], "type": "string" }, "lede": { "type": "string" }, "name": { "type": "string" }, "photo": { "anyOf": [ { "format": "uri", "type": "string" }, { "type": "null" } ], "description": "A card-size photo of the stay (3:2)." }, "rate": { "additionalProperties": {}, "description": "The \"from\" rate: the lowest nightly price over the next six months, checked each week.", "properties": { "amount": { "description": "The \"from\" rate in euros, rounded to 10.", "type": [ "number", "null" ] }, "checked": { "anyOf": [ { "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "type": "string" }, { "type": "null" } ], "description": "The day the rate was last read on the hotel's own booking engine (YYYY-MM-DD). Null when no date is recorded." }, "currency": { "anyOf": [ { "const": "EUR", "type": "string" }, { "type": "null" } ] }, "per": { "anyOf": [ { "enum": [ "night", "week" ], "type": "string" }, { "type": "null" } ] }, "text": { "description": "As the site shows it: \"from €950/night\", or \"Price on request\".", "type": "string" } }, "required": [ "text", "amount", "currency", "per", "checked" ], "type": "object" }, "slug": { "type": "string" }, "town": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "slug", "url", "kind", "town", "destination", "country", "lede", "rate", "photo" ], "type": "object" }, "type": "array" }, "total": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url", "country", "total", "stays" ], "type": "object" } }, { "description": "One city guide's public shop page: its standfirst, what it holds, its price, and photo URLs. The guide itself is sold on its page.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "slug": { "description": "The guide's slug, the last part of its URL.", "maxLength": 120, "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_guide", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "buyInChat": { "description": "True when buy_guide can buy this guide in this conversation.", "type": "boolean" }, "city": { "type": "string" }, "country": { "type": "string" }, "cover": { "description": "The cover at 3:4.", "format": "uri", "type": "string" }, "onSale": { "type": "boolean" }, "photos": { "items": { "format": "uri", "type": "string" }, "type": "array" }, "price": { "type": "string" }, "sections": { "items": { "additionalProperties": {}, "properties": { "text": { "type": "string" }, "title": { "type": "string" } }, "required": [ "title", "text" ], "type": "object" }, "type": "array" }, "standfirst": { "type": "string" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "title", "url", "city", "country", "standfirst", "onSale", "price", "sections", "cover", "buyInChat", "photos" ], "type": "object" } }, { "description": "One stay as its page shows it: description, address, location, website, \"from\" rate, amenities, collections, and photo URLs.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "slug": { "description": "The stay's slug, the last part of its URL.", "maxLength": 120, "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_stay", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "address": { "type": "string" }, "amenities": { "items": { "additionalProperties": {}, "properties": { "description": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name", "description" ], "type": "object" }, "type": "array" }, "collections": { "items": { "additionalProperties": {}, "properties": { "name": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url" ], "type": "object" }, "type": "array" }, "country": { "type": "string" }, "description": { "type": "string" }, "destination": { "additionalProperties": {}, "properties": { "name": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url" ], "type": "object" }, "hero": { "description": "The main photo at 2:1.", "format": "uri", "type": "string" }, "kind": { "description": "A hotel, or a private stay: a whole house or estate that one party rents.", "enum": [ "hotel", "private stay" ], "type": "string" }, "lede": { "type": "string" }, "location": { "additionalProperties": {}, "properties": { "latitude": { "type": "number" }, "longitude": { "type": "number" } }, "required": [ "latitude", "longitude" ], "type": "object" }, "name": { "type": "string" }, "photos": { "items": { "format": "uri", "type": "string" }, "type": "array" }, "rate": { "additionalProperties": {}, "description": "The \"from\" rate: the lowest nightly price over the next six months, checked each week.", "properties": { "amount": { "description": "The \"from\" rate in euros, rounded to 10.", "type": [ "number", "null" ] }, "checked": { "anyOf": [ { "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "type": "string" }, { "type": "null" } ], "description": "The day the rate was last read on the hotel's own booking engine (YYYY-MM-DD). Null when no date is recorded." }, "currency": { "anyOf": [ { "const": "EUR", "type": "string" }, { "type": "null" } ] }, "per": { "anyOf": [ { "enum": [ "night", "week" ], "type": "string" }, { "type": "null" } ] }, "text": { "description": "As the site shows it: \"from €950/night\", or \"Price on request\".", "type": "string" } }, "required": [ "text", "amount", "currency", "per", "checked" ], "type": "object" }, "town": { "type": "string" }, "url": { "format": "uri", "type": "string" }, "website": { "format": "uri", "type": "string" } }, "required": [ "name", "url", "kind", "lede", "description", "town", "destination", "country", "address", "location", "website", "rate", "amenities", "collections", "hero", "photos" ], "type": "object" } }, { "description": "The travel writing, newest first: title, standfirst, author, category, date, and page URL.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "category": { "description": "Only this category.", "maxLength": 60, "type": "string" }, "limit": { "default": 20, "description": "The most articles to give.", "maximum": 100, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_articles", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "articles": { "items": { "additionalProperties": {}, "properties": { "author": { "type": "string" }, "category": { "type": "string" }, "published": { "type": "string" }, "slug": { "type": "string" }, "standfirst": { "type": "string" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "title", "slug", "url", "standfirst", "author", "category", "published" ], "type": "object" }, "type": "array" }, "total": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "total", "articles" ], "type": "object" } }, { "description": "The countries and destinations that have stays, and the collections (Coast, City, Mountain…), each with its number of stays. Their names and slugs are the filters of search_stays.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "country": { "description": "Only this country: a name or an ISO code.", "maxLength": 60, "type": "string" } }, "type": "object" }, "name": "list_destinations", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "collections": { "items": { "additionalProperties": {}, "properties": { "name": { "type": "string" }, "slug": { "type": "string" }, "stays": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url", "slug", "stays" ], "type": "object" }, "type": "array" }, "countries": { "items": { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "destinations": { "items": { "additionalProperties": {}, "properties": { "name": { "type": "string" }, "slug": { "type": "string" }, "stays": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url", "slug", "stays" ], "type": "object" }, "type": "array" }, "name": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url", "code", "destinations" ], "type": "object" }, "type": "array" } }, "required": [ "countries", "collections" ], "type": "object" } }, { "description": "The city guides on sale: city, standfirst, price, and the URL of the page where a reader can buy the guide.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_guides", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "guides": { "items": { "additionalProperties": {}, "properties": { "city": { "type": "string" }, "country": { "type": "string" }, "price": { "type": "string" }, "slug": { "type": "string" }, "standfirst": { "type": "string" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "title", "slug", "url", "city", "country", "standfirst", "price" ], "type": "object" }, "type": "array" } }, "required": [ "guides" ], "type": "object" } }, { "description": "Find hotels and private stays by plain words, with optional filters for country, destination, collection, amenities, and a nightly budget in euros. Best matches first. Gives each stay's page URL, place, short description, and \"from\" rate.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "amenities": { "description": "Only stays that have each of these, by word: \"spa\", \"pool\", \"beach\", \"tennis\".", "items": { "maxLength": 40, "type": "string" }, "maxItems": 5, "type": "array" }, "collection": { "description": "Only this collection: a name or a slug, such as \"Coast\". list_destinations lists them.", "maxLength": 60, "type": "string" }, "country": { "description": "Only this country: a name or an ISO code, such as \"France\" or \"FR\".", "maxLength": 60, "type": "string" }, "destination": { "description": "Only this destination: a name or a slug, such as \"Provence\".", "maxLength": 60, "type": "string" }, "limit": { "default": 10, "description": "The most stays to give.", "maximum": 50, "minimum": 1, "type": "integer" }, "max_rate": { "description": "Only stays whose \"from\" rate is at most this many euros a night (a week rate counts a seventh). Stays with no rate are left out.", "exclusiveMinimum": 0, "type": "number" }, "query": { "description": "What the reader wants, in plain words: \"quiet hotel on Lake Como with a spa\". Stays that match more words come first.", "maxLength": 200, "type": "string" }, "sort": { "default": "relevance", "description": "\"relevance\" (best match first) or \"rate\" (lowest rate first).", "enum": [ "relevance", "rate" ], "type": "string" } }, "type": "object" }, "name": "search_stays", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "note": { "type": "string" }, "stays": { "items": { "additionalProperties": {}, "properties": { "country": { "type": "string" }, "destination": { "additionalProperties": {}, "properties": { "name": { "type": "string" }, "slug": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "url", "slug" ], "type": "object" }, "kind": { "description": "A hotel, or a private stay: a whole house or estate that one party rents.", "enum": [ "hotel", "private stay" ], "type": "string" }, "lede": { "type": "string" }, "name": { "type": "string" }, "photo": { "anyOf": [ { "format": "uri", "type": "string" }, { "type": "null" } ], "description": "A card-size photo of the stay (3:2)." }, "rate": { "additionalProperties": {}, "description": "The \"from\" rate: the lowest nightly price over the next six months, checked each week.", "properties": { "amount": { "description": "The \"from\" rate in euros, rounded to 10.", "type": [ "number", "null" ] }, "checked": { "anyOf": [ { "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "type": "string" }, { "type": "null" } ], "description": "The day the rate was last read on the hotel's own booking engine (YYYY-MM-DD). Null when no date is recorded." }, "currency": { "anyOf": [ { "const": "EUR", "type": "string" }, { "type": "null" } ] }, "per": { "anyOf": [ { "enum": [ "night", "week" ], "type": "string" }, { "type": "null" } ] }, "text": { "description": "As the site shows it: \"from €950/night\", or \"Price on request\".", "type": "string" } }, "required": [ "text", "amount", "currency", "per", "checked" ], "type": "object" }, "slug": { "type": "string" }, "town": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "name", "slug", "url", "kind", "town", "destination", "country", "lede", "rate", "photo" ], "type": "object" }, "type": "array" }, "total": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "total", "stays" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a37e941705aa930dcf71da894f7a8ce42aa990c0bc4e792b3d1a6bf6d2ec198f | sha256sum