Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,536Letters: 14Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:86cf326b05e923aed9db9e78b2687051c1f2f2ab8850d1cb38c42ec1a81f614b
What it is
What a remote MCP server returned when asked what it offers: 15 tools

The blob, as servednamed by its sha256

{ "instructions": "Access-sheet API. Subscribe via x402 on Base (15 / 79 / 250 USDC / 30 days), then Authorization: Bearer. Extra sheets: 0.50 USDC (Agent) or 0.25 (Fleet). Fleet/Platform: webhooks. Photos: https URLs (host app can upload to GCS).\n\nMarkdown flip-book shown to the guest (this field).\nCover (map, name, formattedAddress, accessCode) is generated — do not repeat it here.\nSplit pages with a line containing only --- .\nSupported: # ## ### headings, paragraphs, **bold**, *italic*, - / 1. lists, [label](https://...), ![alt](https://...).\nPhotos: https URLs (GCS via the host app, or your own CDN). Agents send URLs, no file upload.\nNever put wifiPassword in Markdown; it is unlocked only within 150 m via GPS.\nIntent hrefs: sesapp:wifi (needs wifiName + wifiPassword) and sesapp:contact (needs phoneNumber). Guest-facing labels: [Ajouter le WiFi] / [Ajouter le contact].\nIf you omit those links but set the fields, SesApp appends WiFi/contact pages.\nExample:\n# Bienvenue\nParking au fond à gauche.\n\n![Façade](https://example.com/facade.jpg)\n\n---\n\n## Arrivée\nSonnette à gauche.\n\n[Itinéraire](https://maps.google.com/?q=48.8566,2.3522)\n\n---\n\n[Ajouter le WiFi](sesapp:wifi)\n\n---\n\n[Ajouter le contact](sesapp:contact)\n\nREST: https://sesapp.fr/openapi.json — GEO playbook: https://sesapp.fr/llms.txt", "tools": [ { "description": "Create an access sheet. Write the guest flip-book in `instructions` (Markdown; guest language, usually French). Cover (map/name/address/accessCode) is auto. Pages: --- . Photos: ![alt](https://...). Intents: [Add WiFi](sesapp:wifi) or [Ajouter le WiFi](sesapp:wifi) + wifiName/wifiPassword; [Add contact](sesapp:contact) or [Ajouter le contact](sesapp:contact) + phoneNumber. Never put wifiPassword in Markdown (150 m GPS). Optional `locale` fr|en for guest chrome. Playbook: GET /llms.txt. Requires Bearer. Beyond quota, retry with PAYMENT-SIGNATURE (0.50 USDC on Agent, 0.25 on Fleet).", "inputSchema": { "properties": { "accessCode": { "description": "Shown on the generated cover.", "type": "string" }, "formattedAddress": { "type": "string" }, "instructions": { "description": "Markdown flip-book shown to the guest (this field).\nCover (map, name, formattedAddress, accessCode) is generated — do not repeat it here.\nSplit pages with a line containing only --- .\nSupported: # ## ### headings, paragraphs, **bold**, *italic*, - / 1. lists, [label](https://...), ![alt](https://...).\nPhotos: https URLs (GCS via the host app, or your own CDN). Agents send URLs, no file upload.\nNever put wifiPassword in Markdown; it is unlocked only within 150 m via GPS.\nIntent hrefs: sesapp:wifi (needs wifiName + wifiPassword) and sesapp:contact (needs phoneNumber). Guest-facing labels: [Ajouter le WiFi] / [Ajouter le contact].\nIf you omit those links but set the fields, SesApp appends WiFi/contact pages.\nExample:\n# Bienvenue\nParking au fond à gauche.\n\n![Façade](https://example.com/facade.jpg)\n\n---\n\n## Arrivée\nSonnette à gauche.\n\n[Itinéraire](https://maps.google.com/?q=48.8566,2.3522)\n\n---\n\n[Ajouter le WiFi](sesapp:wifi)\n\n---\n\n[Ajouter le contact](sesapp:contact)", "type": "string" }, "lat": { "description": "Cover map + WiFi geofence (150 m).", "type": "number" }, "locale": { "description": "Guest chrome language. Markdown stays as written. Omit to follow Accept-Language / ?lang=.", "enum": [ "fr", "en" ], "type": "string" }, "lon": { "description": "Cover map + WiFi geofence (150 m).", "type": "number" }, "name": { "type": "string" }, "phoneNumber": { "description": "Required for sesapp:contact. E.164 preferred.", "type": "string" }, "wifiName": { "description": "SSID for sesapp:wifi. Hidden until 150 m if wifiPassword is set.", "type": "string" }, "wifiPassword": { "description": "Do not put in instructions. Unlocked within 150 m.", "type": "string" } }, "required": [ "name", "formattedAddress" ], "type": "object" }, "name": "create_fiche", "outputSchema": null }, { "description": "Delete an owned access sheet and its share links. Requires Bearer.", "inputSchema": { "properties": { "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "delete_fiche", "outputSchema": null }, { "description": "Delete a webhook endpoint. Fleet/Platform. Requires Bearer.", "inputSchema": { "properties": { "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "delete_webhook", "outputSchema": null }, { "description": "Resolve a postal address to formattedAddress + lat/lon for create_fiche (cover map and 150 m WiFi geofence). Optional country ISO2. Requires Bearer.", "inputSchema": { "properties": { "country": { "description": "Optional ISO 3166-1 alpha-2, e.g. fr", "type": "string" }, "query": { "description": "Address search, min 3 characters", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "geocode", "outputSchema": null }, { "description": "Get one owned access sheet by id (same fields as list_fiches). Requires Bearer.", "inputSchema": { "properties": { "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "get_fiche", "outputSchema": null }, { "description": "List access sheets owned by the authenticated agent. Requires Authorization: Bearer.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_fiches", "outputSchema": null }, { "description": "List guest links for a fiche (token, url, expiresAt, viewCount, createdAt). Requires Bearer.", "inputSchema": { "properties": { "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "list_shares", "outputSchema": null }, { "description": "List webhook endpoints (secret is never returned). Fleet/Platform. Requires Bearer.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_webhooks", "outputSchema": null }, { "description": "Fleet/Platform only. Register an HTTPS endpoint. Events: fiche.viewed, share.created, share.revoked, wifi.unlocked, quota.warning. HMAC SHA-256 in X-SesApp-Signature (t=unix,v1=hex of timestamp.body). Secret returned once. Max 5 endpoints. Requires Bearer.", "inputSchema": { "properties": { "events": { "description": "Subset of events. Default: all.", "items": { "type": "string" }, "type": "array" }, "url": { "description": "HTTPS URL (http://127.0.0.1 allowed in DEV)", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "register_webhook", "outputSchema": null }, { "description": "Revoke a guest share token. Optional delayDays (1–365) keeps the link until then (soft revoke). Requires Bearer.", "inputSchema": { "properties": { "delayDays": { "description": "If set, the link expires after N days instead of being deleted now.", "type": "number" }, "token": { "type": "string" } }, "required": [ "token" ], "type": "object" }, "name": "revoke_share", "outputSchema": null }, { "description": "Create a revocable guest link. Optional expiresAt (ISO). WiFi password is never in Markdown: guests unlock it within 150 m of lat/lon. Requires Bearer.", "inputSchema": { "properties": { "expiresAt": { "description": "ISO datetime, optional. Omit for no expiry.", "type": "string" }, "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "share_fiche", "outputSchema": null }, { "description": "Current agent plan, expiry, fichesCount, maxFiches, overageUsdc. Requires Authorization: Bearer.", "inputSchema": { "properties": {}, "type": "object" }, "name": "status", "outputSchema": null }, { "description": "Subscribe or renew. plan=agent (15 USDC, 20 sheets), fleet (79 USDC, 200), platform (250 USDC, fair-use). Send PAYMENT-SIGNATURE (x402 v2). Returns a Bearer JWT.", "inputSchema": { "properties": { "plan": { "description": "SKU to purchase. Default agent.", "enum": [ "agent", "fleet", "platform" ], "type": "string" } }, "type": "object" }, "name": "subscribe", "outputSchema": null }, { "description": "Update an owned access sheet. Same fields as create_fiche. Typical: update instructions with photos/links. Requires Bearer.", "inputSchema": { "properties": { "accessCode": { "description": "Shown on the generated cover.", "type": "string" }, "formattedAddress": { "type": "string" }, "id": { "type": "string" }, "instructions": { "description": "Markdown flip-book shown to the guest (this field).\nCover (map, name, formattedAddress, accessCode) is generated — do not repeat it here.\nSplit pages with a line containing only --- .\nSupported: # ## ### headings, paragraphs, **bold**, *italic*, - / 1. lists, [label](https://...), ![alt](https://...).\nPhotos: https URLs (GCS via the host app, or your own CDN). Agents send URLs, no file upload.\nNever put wifiPassword in Markdown; it is unlocked only within 150 m via GPS.\nIntent hrefs: sesapp:wifi (needs wifiName + wifiPassword) and sesapp:contact (needs phoneNumber). Guest-facing labels: [Ajouter le WiFi] / [Ajouter le contact].\nIf you omit those links but set the fields, SesApp appends WiFi/contact pages.\nExample:\n# Bienvenue\nParking au fond à gauche.\n\n![Façade](https://example.com/facade.jpg)\n\n---\n\n## Arrivée\nSonnette à gauche.\n\n[Itinéraire](https://maps.google.com/?q=48.8566,2.3522)\n\n---\n\n[Ajouter le WiFi](sesapp:wifi)\n\n---\n\n[Ajouter le contact](sesapp:contact)", "type": "string" }, "lat": { "description": "Cover map + WiFi geofence (150 m).", "type": "number" }, "locale": { "description": "Guest chrome language. Markdown stays as written. Omit to follow Accept-Language / ?lang=.", "enum": [ "fr", "en" ], "type": "string" }, "lon": { "description": "Cover map + WiFi geofence (150 m).", "type": "number" }, "name": { "type": "string" }, "phoneNumber": { "description": "Required for sesapp:contact. E.164 preferred.", "type": "string" }, "wifiName": { "description": "SSID for sesapp:wifi. Hidden until 150 m if wifiPassword is set.", "type": "string" }, "wifiPassword": { "description": "Do not put in instructions. Unlocked within 150 m.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "update_fiche", "outputSchema": null }, { "description": "Update url, events, or active. Fleet/Platform. Requires Bearer.", "inputSchema": { "properties": { "active": { "type": "boolean" }, "events": { "items": { "type": "string" }, "type": "array" }, "id": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "update_webhook", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:86cf326b05e923aed9db9e78b2687051c1f2f2ab8850d1cb38c42ec1a81f614b | sha256sum