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

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "List the Swiss cantons supported by Joomil's `canton` filter. Returns the exact `name` value to pass to search_classifieds, plus a readable French label. Call this before filtering by canton — the API values are non-obvious (e.g. 'Bern' not 'Berne', 'Geneve' not 'Genève' or 'Geneva').", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_cantons", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "cantons": { "items": { "additionalProperties": false, "properties": { "code": { "type": [ "string", "null" ] }, "label_fr": { "type": "string" }, "name": { "type": "string" }, "region": { "type": "string" } }, "required": [ "name", "label_fr", "code", "region" ], "type": "object" }, "type": "array" }, "total": { "type": "number" } }, "required": [ "cantons", "total" ], "type": "object" } }, { "description": "List active categories of the Joomil.ch marketplace. Returns a flat list with parent_id for hierarchy reconstruction. Omit parent_id for all categories, use parent_id=0 for root categories only, or pass a specific ID to get direct children of that category.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "parent_id": { "description": "Filter to direct children of this category ID. Omit for all categories. Use 0 for root categories only.", "minimum": 0, "type": "integer" } }, "type": "object" }, "name": "get_categories", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "categories": { "items": { "additionalProperties": true, "properties": { "ad_count": { "type": "number" }, "allow_ads": { "type": "boolean" }, "id": { "type": "number" }, "name": { "type": "string" }, "parent_id": { "type": "number" }, "url": { "type": "string" } }, "required": [ "id", "name", "url", "parent_id" ], "type": "object" }, "type": "array" }, "total": { "type": "number" } }, "required": [ "categories", "total" ], "type": "object" } }, { "description": "Get full details of a single classified ad on Joomil.ch by its numeric ID. Returns complete description, all images URLs, category breadcrumb (full_path), vendor info (name, certified status, pro company), expiry date and boost level. Use search_classifieds first to find relevant listing IDs.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "description": "Numeric listing ID — visible in the URL and in search_classifieds results", "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "id" ], "type": "object" }, "name": "get_classified", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "boost": { "type": [ "number", "null" ] }, "category": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "path": { "type": [ "string", "null" ] }, "url": { "type": "string" } }, "required": [ "id", "name", "url", "path" ], "type": "object" }, { "type": "null" } ] }, "created_at": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "expires_at": { "type": [ "string", "null" ] }, "has_picture": { "type": "boolean" }, "id": { "type": "number" }, "images": { "items": { "type": "string" }, "type": "array" }, "location": { "additionalProperties": false, "properties": { "canton": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "country": { "type": [ "string", "null" ] }, "postal_code": { "type": [ "string", "null" ] } }, "required": [ "city", "postal_code", "canton", "country" ], "type": "object" }, "price": { "additionalProperties": false, "properties": { "amount": { "type": [ "number", "null" ] }, "currency": { "const": "CHF", "type": "string" } }, "required": [ "amount", "currency" ], "type": "object" }, "seller": { "additionalProperties": false, "properties": { "certified": { "type": "boolean" }, "company": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "type": { "enum": [ "pro", "private" ], "type": "string" } }, "required": [ "name", "certified", "type", "company" ], "type": "object" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "title", "description", "price", "location", "category", "url", "created_at", "has_picture", "seller", "images", "expires_at", "boost" ], "type": "object" } }, { "description": "Search classified ads on Joomil.ch — Switzerland's leading French-speaking classifieds marketplace (since 2007). Returns a paginated list of public listings with title, description (truncated to 300 chars), price, location, category and vendor info. All parameters are optional — call with no arguments to browse the latest listings. Use get_classified to fetch full details of a specific listing.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "canton": { "description": "Swiss canton filter — strict enum. Use get_cantons for the official list. WARNING: values are API-specific (e.g. 'Bern' not 'Berne', 'Geneve' not 'Genève'/'Geneva'). Supported: Geneve, Vaud, Valais, Fribourg, Neuchatel, Jura, Bern, Argovie, Zurich, Lucerne, Bale-Ville, Etranger.", "enum": [ "Geneve", "Vaud", "Valais", "Fribourg", "Neuchatel", "Jura", "Bern", "Argovie", "Zurich", "Lucerne", "Bale-Ville", "Etranger" ], "type": "string" }, "cat_id": { "description": "Category ID filter — includes subcategories automatically. Use get_categories to browse available categories.", "exclusiveMinimum": 0, "type": "integer" }, "limit": { "description": "Results per page (1–50, default 20)", "maximum": 50, "minimum": 1, "type": "integer" }, "location": { "description": "City name or postal code (NPA) — partial match", "type": "string" }, "offset": { "description": "Pagination offset. Use next_offset from previous response to get next page.", "minimum": 0, "type": "integer" }, "price_max": { "description": "Maximum price in CHF (inclusive)", "minimum": 0, "type": "number" }, "price_min": { "description": "Minimum price in CHF (inclusive)", "minimum": 0, "type": "number" }, "q": { "description": "Full-text search query (searches title and description)", "type": "string" }, "sort": { "description": "Sort order: recent (newest first, default), price_asc, price_desc, views", "enum": [ "recent", "price_asc", "price_desc", "views" ], "type": "string" } }, "type": "object" }, "name": "search_classifieds", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "filtered_out": { "type": "number" }, "has_more": { "type": "boolean" }, "limit": { "type": "number" }, "next_offset": { "type": [ "number", "null" ] }, "offset": { "type": "number" }, "results": { "items": { "additionalProperties": false, "properties": { "category": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "name", "url" ], "type": "object" }, { "type": "null" } ] }, "created_at": { "type": [ "string", "null" ] }, "description": { "type": "string" }, "has_picture": { "type": "boolean" }, "id": { "type": "number" }, "location": { "additionalProperties": false, "properties": { "canton": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "country": { "type": [ "string", "null" ] }, "postal_code": { "type": [ "string", "null" ] } }, "required": [ "city", "postal_code", "canton", "country" ], "type": "object" }, "price": { "additionalProperties": false, "properties": { "amount": { "type": [ "number", "null" ] }, "currency": { "const": "CHF", "type": "string" } }, "required": [ "amount", "currency" ], "type": "object" }, "seller": { "additionalProperties": false, "properties": { "certified": { "type": "boolean" }, "name": { "type": [ "string", "null" ] } }, "required": [ "name", "certified" ], "type": "object" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "title", "price", "location", "category", "url", "created_at", "has_picture", "seller" ], "type": "object" }, "type": "array" }, "total": { "type": "number" } }, "required": [ "results", "total", "limit", "offset", "has_more", "next_offset", "filtered_out" ], "type": "object" } }, { "description": "Infer search_classifieds filters from a natural-language query. Use this before search_classifieds when the user mentions a category, location, canton or price in free text. Returns a ready-to-use filters object, a category confidence score and warnings for uncertain matches.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "query": { "description": "Natural-language search request, e.g. 'appartement 3 pièces à Sion' or 'Tesla Model 3 moins de 25000 CHF'.", "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "suggest_filters", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "category": { "anyOf": [ { "additionalProperties": false, "properties": { "confidence": { "type": "number" }, "id": { "type": "number" }, "name": { "type": "string" }, "parent_id": { "type": "number" }, "reason": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "name", "url", "parent_id", "confidence", "reason" ], "type": "object" }, { "type": "null" } ] }, "confidence": { "type": "number" }, "filters": { "additionalProperties": false, "properties": { "canton": { "anyOf": [ { "enum": [ "Geneve", "Vaud", "Valais", "Fribourg", "Neuchatel", "Jura", "Bern", "Argovie", "Zurich", "Lucerne", "Bale-Ville", "Etranger" ], "type": "string" }, { "type": "null" } ] }, "cat_id": { "type": [ "number", "null" ] }, "limit": { "type": "number" }, "location": { "type": [ "string", "null" ] }, "price_max": { "type": [ "number", "null" ] }, "price_min": { "type": [ "number", "null" ] }, "q": { "type": [ "string", "null" ] }, "sort": { "enum": [ "recent", "price_asc", "price_desc", "views" ], "type": "string" } }, "required": [ "q", "cat_id", "canton", "location", "price_min", "price_max", "sort", "limit" ], "type": "object" }, "next_step": { "type": "string" }, "query": { "type": "string" }, "warnings": { "items": { "type": "string" }, "type": "array" } }, "required": [ "query", "filters", "category", "confidence", "warnings", "next_step" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:4e20e03aac33f302d78e95fc2510b62fccf57d8367d9524b3148600f15d1e6c2 | sha256sum