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://...), .\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\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: . 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://...), .\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\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://...), .\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\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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:86cf326b05e923aed9db9e78b2687051c1f2f2ab8850d1cb38c42ec1a81f614b | sha256sum