SesApp Access Sheets
Housing access sheets behind revocable guest links. x402 on Base.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"fiches": {
"url": "https://sesapp.fr/mcp"
}
}
}遠端端點
https://sesapp.fr/mcpstreamable-http它能做什麼
工具清單
工具(15)
🟡subscribe(plan)
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.
輸入結構描述
{
"type": "object",
"properties": {
"plan": {
"type": "string",
"enum": [
"agent",
"fleet",
"platform"
],
"description": "SKU to purchase. Default agent."
}
}
}⚪status
Current agent plan, expiry, fichesCount, maxFiches, overageUsdc. Requires Authorization: Bearer.
輸入結構描述
{
"type": "object",
"properties": {}
}🟡geocode(query, country)
Resolve a postal address to formattedAddress + lat/lon for create_fiche (cover map and 150 m WiFi geofence). Optional country ISO2. Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Address search, min 3 characters"
},
"country": {
"type": "string",
"description": "Optional ISO 3166-1 alpha-2, e.g. fr"
}
},
"required": [
"query"
]
}🟢list_fiches
List access sheets owned by the authenticated agent. Requires Authorization: Bearer.
輸入結構描述
{
"type": "object",
"properties": {}
}🟡create_fiche(name, formattedAddress, instructions, lat, lon, ...)
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).
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"formattedAddress": {
"type": "string"
},
"instructions": {
"type": "string",
"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)"
},
"lat": {
"type": "number",
"description": "Cover map + WiFi geofence (150 m)."
},
"lon": {
"type": "number",
"description": "Cover map + WiFi geofence (150 m)."
},
"wifiName": {
"type": "string",
"description": "SSID for sesapp:wifi. Hidden until 150 m if wifiPassword is set."
},
"wifiPassword": {
"type": "string",
"description": "Do not put in instructions. Unlocked within 150 m."
},
"accessCode": {
"type": "string",
"description": "Shown on the generated cover."
},
"phoneNumber": {
"type": "string",
"description": "Required for sesapp:contact. E.164 preferred."
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
],
"description": "Guest chrome language. Markdown stays as written. Omit to follow Accept-Language / ?lang=."
}
},
"required": [
"name",
"formattedAddress"
]
}🟢get_fiche(id)
Get one owned access sheet by id (same fields as list_fiches). Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}🟡update_fiche(id, name, formattedAddress, instructions, lat, ...)
Update an owned access sheet. Same fields as create_fiche. Typical: update instructions with photos/links. Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"formattedAddress": {
"type": "string"
},
"instructions": {
"type": "string",
"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)"
},
"lat": {
"type": "number",
"description": "Cover map + WiFi geofence (150 m)."
},
"lon": {
"type": "number",
"description": "Cover map + WiFi geofence (150 m)."
},
"wifiName": {
"type": "string",
"description": "SSID for sesapp:wifi. Hidden until 150 m if wifiPassword is set."
},
"wifiPassword": {
"type": "string",
"description": "Do not put in instructions. Unlocked within 150 m."
},
"accessCode": {
"type": "string",
"description": "Shown on the generated cover."
},
"phoneNumber": {
"type": "string",
"description": "Required for sesapp:contact. E.164 preferred."
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
],
"description": "Guest chrome language. Markdown stays as written. Omit to follow Accept-Language / ?lang=."
}
},
"required": [
"id"
]
}🔴delete_fiche(id)
Delete an owned access sheet and its share links. Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}🟡share_fiche(id, expiresAt)
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.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"expiresAt": {
"type": "string",
"description": "ISO datetime, optional. Omit for no expiry."
}
},
"required": [
"id"
]
}🟢list_shares(id)
List guest links for a fiche (token, url, expiresAt, viewCount, createdAt). Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}⚪revoke_share(token, delayDays)
Revoke a guest share token. Optional delayDays (1–365) keeps the link until then (soft revoke). Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"delayDays": {
"type": "number",
"description": "If set, the link expires after N days instead of being deleted now."
}
},
"required": [
"token"
]
}⚪register_webhook(url, events)
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.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "HTTPS URL (http://127.0.0.1 allowed in DEV)"
},
"events": {
"type": "array",
"items": {
"type": "string"
},
"description": "Subset of events. Default: all."
}
},
"required": [
"url"
]
}🟢list_webhooks
List webhook endpoints (secret is never returned). Fleet/Platform. Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {}
}🟡update_webhook(id, url, events, active)
Update url, events, or active. Fleet/Platform. Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"active": {
"type": "boolean"
}
},
"required": [
"id"
]
}🔴delete_webhook(id)
Delete a webhook endpoint. Fleet/Platform. Requires Bearer.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}社群
證據