{"id":"55f886f6-6ba5-486d-a28b-739d65c4a894","entityType":"agent","slug":"clawhub-chrischall-easytable","name":"easytable","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chrischall-easytable","canonicalPath":"/agent/clawhub-chrischall-easytable","generatedAt":"2026-10-10T14:43:23.670Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T12:03:07.104Z","emptyReason":null},"description":"Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations. Skill: easytable Owner: chrischall Summary: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations. Tags: latest:1.2.6 Version history: v1.2.6 | 202","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:easytable","sourceUrl":"https://clawhub.ai/chrischall/easytable","homepage":"https://clawhub.ai/chrischall/skills/easytable","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/chrischall/easytable","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/chrischall/skills/easytable","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.eas"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T12:03:07.104Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T12:03:07.104Z","emptyReason":null},"stars":null,"forks":null,"downloads":1445,"packageName":null,"latestVersion":"1.2.6","tractionLabel":"1.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T12:03:07.091Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T12:03:07.104Z","lastCrawledAt":"2026-10-10T12:03:07.091Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T12:03:07.091Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.6","createdAt":"2026-10-09T23:24:41.796Z","changelog":"easytable 1.2.6 - SKILL.md updated with expanded details on confirmation prompts, specifically describing `MCP_CONFIRM_ELICITATION=off` and stricter bookingId checks for cancels. - Explains that `cancel` verifies the booking under the caller's mobile, and its confirmation preview now shows details of the booking to be cancelled. - Removed redundant skill-card.md file.","fileCount":3,"zipByteSize":3362},{"version":"1.2.5","createdAt":"2026-10-07T13:36:57.295Z","changelog":"- Removed the skill-card.md file. - No functional changes to the skill itself.","fileCount":3,"zipByteSize":3230},{"version":"1.2.4","createdAt":"2026-10-05T02:49:32.340Z","changelog":"- Removed the file: skill-card.md - No changes to functionality or user-facing features.","fileCount":3,"zipByteSize":3227},{"version":"1.2.3","createdAt":"2026-10-03T01:39:57.349Z","changelog":"- Removed the skill-card.md file. - No changes to functionality or user-facing documentation.","fileCount":3,"zipByteSize":3136},{"version":"1.2.2","createdAt":"2026-10-01T18:24:40.957Z","changelog":"- Removed the sample file skill-card.md. - No changes to functionality or documentation.","fileCount":3,"zipByteSize":3183},{"version":"1.2.1","createdAt":"2026-09-28T13:57:53.891Z","changelog":"- Switched setup instructions from the fetchproxy extension to the renamed ContextMint Bridge extension, with updated install links and details. - Clarified that the ContextMint Bridge is the same extension as fetchproxy, now rebranded. - Updated instructions for Chrome and Safari extension installation. - Removed the obsolete skill-card.md file.","fileCount":3,"zipByteSize":3164},{"version":"1.2.0","createdAt":"2026-09-24T15:12:37.681Z","changelog":"- updated 1, removed 1 file(s). - Updated SKILL.md and bundle contents.","fileCount":3,"zipByteSize":3004},{"version":"1.1.3","createdAt":"2026-09-23T21:40:23.526Z","changelog":"- Added detailed handling instructions for unknown outcomes when creating or modifying a booking, including when to use easytable_find_bookings before retrying. - Expanded guidance for modifying bookings: now requires passing through (or clearing) the current email, comment, and company fields, as these cannot be read automatically. - Updated documentation to clarify user steps and dry-run behavior. - Removed the redundant skill-card.md file.","fileCount":3,"zipByteSize":3012}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:easytable","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T14:43:23.669Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-easytable/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T12:03:07.104Z","emptyReason":null},"readme":"Skill: easytable\n\nOwner: chrischall\n\nSummary: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n\nTags: latest:1.2.6\n\nVersion history:\n\nv1.2.6 | 2026-10-09T23:24:41.796Z | auto\n\neasytable 1.2.6\n\n- SKILL.md updated with expanded details on confirmation prompts, specifically describing `MCP_CONFIRM_ELICITATION=off` and stricter bookingId checks for cancels.\n- Explains that `cancel` verifies the booking under the caller's mobile, and its confirmation preview now shows details of the booking to be cancelled.\n- Removed redundant skill-card.md file.\n\nv1.2.5 | 2026-10-07T13:36:57.295Z | auto\n\n- Removed the skill-card.md file.\n- No functional changes to the skill itself.\n\nv1.2.4 | 2026-10-05T02:49:32.340Z | auto\n\n- Removed the file: skill-card.md\n- No changes to functionality or user-facing features.\n\nv1.2.3 | 2026-10-03T01:39:57.349Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or user-facing documentation.\n\nv1.2.2 | 2026-10-01T18:24:40.957Z | auto\n\n- Removed the sample file skill-card.md.\n- No changes to functionality or documentation.\n\nv1.2.1 | 2026-09-28T13:57:53.891Z | auto\n\n- Switched setup instructions from the fetchproxy extension to the renamed ContextMint Bridge extension, with updated install links and details.\n- Clarified that the ContextMint Bridge is the same extension as fetchproxy, now rebranded.\n- Updated instructions for Chrome and Safari extension installation.\n- Removed the obsolete skill-card.md file.\n\nv1.2.0 | 2026-09-24T15:12:37.681Z | auto\n\n- updated 1, removed 1 file(s).\n- Updated SKILL.md and bundle contents.\n\nv1.1.3 | 2026-09-23T21:40:23.526Z | auto\n\n- Added detailed handling instructions for unknown outcomes when creating or modifying a booking, including when to use easytable_find_bookings before retrying.\n- Expanded guidance for modifying bookings: now requires passing through (or clearing) the current email, comment, and company fields, as these cannot be read automatically.\n- Updated documentation to clarify user steps and dry-run behavior.\n- Removed the redundant skill-card.md file.\n\nv1.1.2 | 2026-09-23T16:01:50.787Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or user experience.\n\nv1.1.1 | 2026-09-21T04:14:46.889Z | auto\n\n- Removed the skill-card.md file.\n- No functional changes to the skill itself.\n- Documentation and booking flows remain unchanged.\n\nv1.1.0 | 2026-09-20T02:50:35.857Z | auto\n\n- Removed the sample file skill-card.md.\n- No user-facing changes to skill features or documentation.\n\nv1.0.0 | 2026-09-17T23:35:54.139Z | auto\n\n- Removed the sample file skill-card.md.\n- No changes to functionality or documentation within SKILL.md.\n- Initial 1.0.0 release remains unchanged aside from file cleanup.\n\nv0.4.4 | 2026-09-15T19:24:42.605Z | auto\n\n- Removed the sample file: skill-card.md.\n- No changes to functionality or documentation in SKILL.md.\n\nv0.4.3 | 2026-09-14T14:11:19.876Z | auto\n\n- Removed the sample file: skill-card.md.\n- No changes to user-facing functionality or documentation.\n\nv0.4.2 | 2026-09-10T17:54:13.782Z | auto\n\n- Removed the skill-card.md file.\n- No changes to core functionality or documentation content.\n\nv0.4.1 | 2026-09-09T21:19:39.679Z | auto\n\n- Removed the file skill-card.md. \n- No changes to functionality or documentation in SKILL.md.\n\nv0.4.0 | 2026-09-04T22:23:13.171Z | auto\n\n- Removed the sample file skill-card.md.\n- No changes to functionality or skill description.\n\nv0.2.3 | 2026-08-06T00:42:53.283Z | auto\n\n- Removed the sample file skill-card.md.\n- No changes to functionality or documentation content.\n\nv0.2.2 | 2026-07-30T12:53:59.994Z | auto\n\n- Removed the sample file skill-card.md.\n- No changes made to functionality or documentation in SKILL.md.\n\nv0.2.1 | 2026-07-27T02:56:22.531Z | auto\n\n- Updated skill description and instructions for setup and usage.\n- Clarified flow for listing areas, dates, and times, and for booking, modifying, or cancelling reservations.\n- Added detailed explanation for extension requirements and Cloudflare token handling.\n- Introduced dry-run (preview) step for creating, modifying, and cancelling bookings—requires explicit confirmation to proceed.\n- No API keys or easyTable account needed; all actions performed via user's browser session.\n\nArchive index:\n\nArchive v1.2.6: 3 files, 3362 bytes\n\nFiles: skill-card.md (2086b), SKILL.md (3968b), _meta.json (128b)\n\nFile v1.2.6:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nContextMint Bridge extension (fetchproxy's browser extension); the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the ContextMint Bridge browser extension from\n   https://github.com/nullnet-app/contextmint-bridge/releases (Chrome: load the\n   `contextmint-bridge-chrome-*.zip` unpacked; Safari: ships inside the ContextMint app,\n   no public download yet — use Chrome for now). It is the renamed fetchproxy extension, same maintainer;\n   source is public — build it or verify the zip with its published `.sha256`.\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in ContextMint Bridge.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one (unless the server\nsets `MCP_CONFIRM_ELICITATION=off`). Otherwise the first\ncall sends nothing and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`cancel` looks the booking up first (a read) and refuses a `bookingId` that\nisn't one of that mobile's bookings; its preview's `booking` shows the matching\nrow (date, time, party) so the user can see which reservation they're cancelling.\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the preview lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.2.6:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.6\",\n  \"publishedAt\": 1791588281796\n}\n\nFile v1.2.6:skill-card.md\n\n## Description:\n\nHelps users check availability and create, change, or cancel reservations at restaurants using easyTable.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nRestaurant customers use this skill to find available tables and manage their easyTable reservations through their own browser session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A browser extension paired to the wrong tab could access an unintended session.\n\nMitigation: Verify the ContextMint Bridge release or source and approve pairing only for the intended easyTable tab.\n\nRisk: Creating, changing, or cancelling a reservation may expose guest details or alter a real booking.\n\nMitigation: Check the booking preview and guest details, including name and mobile number, before approving each change.\n\nRisk: Changing a booking can erase existing email, comments, or company details that cannot be read back.\n\nMitigation: Ask the guest for the existing details and preserve them unless the guest explicitly wants to clear them.\n\nRisk: Retrying after an uncertain booking response could create a duplicate reservation.\n\nMitigation: Look up reservations using the guest's mobile number before retrying.\n\n## Reference(s):\n\n- [easytable skill listing](https://clawhub.ai/chrischall/skills/easytable)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Availability results, booking details, and confirmation previews.]\n\n## Skill Version(s):\n\n1.2.6 (source: server-resolved ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.5: 3 files, 3230 bytes\n\nFiles: skill-card.md (2134b), SKILL.md (3682b), _meta.json (128b)\n\nFile v1.2.5:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nContextMint Bridge extension (fetchproxy's browser extension); the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the ContextMint Bridge browser extension from\n   https://github.com/nullnet-app/contextmint-bridge/releases (Chrome: load the\n   `contextmint-bridge-chrome-*.zip` unpacked; Safari: ships inside the ContextMint app,\n   no public download yet — use Chrome for now). It is the renamed fetchproxy extension, same maintainer;\n   source is public — build it or verify the zip with its published `.sha256`.\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in ContextMint Bridge.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one. Otherwise the first\ncall makes no network call and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the preview lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.2.5:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.5\",\n  \"publishedAt\": 1791380217295\n}\n\nFile v1.2.5:skill-card.md\n\n## Description:\n\nHelps users check restaurant availability and create, change, or cancel reservations at restaurants using easyTable.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nRestaurant guests use this skill to view available booking areas, dates, and times and to create, find, modify, or cancel their reservations through easyTable.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: An unverified browser extension or unintended browser pairing could expose the user's booking session.\n\nMitigation: Verify the ContextMint Bridge release and checksum, and approve pairing only for the intended browser session.\n\nRisk: Booking changes affect real reservations and may share the guest's name and mobile number with easyTable.\n\nMitigation: Review each create, modify, or cancel preview and obtain the user's confirmation before proceeding.\n\nRisk: A timed-out booking request may have succeeded, so retrying immediately can create a duplicate reservation.\n\nMitigation: Look up bookings using the guest's mobile number before retrying an uncertain request.\n\nRisk: Modifying a reservation can clear existing email, comments, or company details that cannot be read back.\n\nMitigation: Ask the guest for those existing details and preserve them unless the guest explicitly approves clearing them.\n\n## Reference(s):\n\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Text or Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Availability details and confirmation previews before reservation changes.]\n\n## Skill Version(s):\n\n1.2.5 (source: server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.4: 3 files, 3227 bytes\n\nFiles: skill-card.md (2106b), SKILL.md (3682b), _meta.json (128b)\n\nFile v1.2.4:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nContextMint Bridge extension (fetchproxy's browser extension); the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the ContextMint Bridge browser extension from\n   https://github.com/nullnet-app/contextmint-bridge/releases (Chrome: load the\n   `contextmint-bridge-chrome-*.zip` unpacked; Safari: ships inside the ContextMint app,\n   no public download yet — use Chrome for now). It is the renamed fetchproxy extension, same maintainer;\n   source is public — build it or verify the zip with its published `.sha256`.\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in ContextMint Bridge.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one. Otherwise the first\ncall makes no network call and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the preview lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.2.4:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.4\",\n  \"publishedAt\": 1791168572340\n}\n\nFile v1.2.4:skill-card.md\n\n## Description:\n\nHelps users check easyTable restaurant availability and create, change, or cancel reservations.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPeople booking restaurants through easyTable can check available areas, dates, and times, then create, change, or cancel a reservation with their approval.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The booking flow depends on the ContextMint Bridge browser extension and uses guest details such as name and mobile number in the open booking tab.\n\nMitigation: Install the extension only if trusted and confirm the guest details and restaurant before proceeding.\n\nRisk: Creating, modifying, or cancelling a booking could change the wrong reservation.\n\nMitigation: Review each reservation preview and approve only changes that match the user's intent.\n\nRisk: Retrying after an uncertain booking response could create a duplicate reservation.\n\nMitigation: Look up bookings using the guest's mobile number before retrying.\n\nRisk: Modifying a booking can clear existing email, comments, or company details.\n\nMitigation: Ask the user for existing details to retain and review any fields marked for clearing in the preview.\n\n## Reference(s):\n\n- [easytable skill listing](https://clawhub.ai/chrischall/skills/easytable)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Availability results and reservation previews; booking changes require user confirmation.]\n\n## Skill Version(s):\n\n1.2.4 (source: server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.3: 3 files, 3136 bytes\n\nFiles: skill-card.md (1862b), SKILL.md (3682b), _meta.json (128b)\n\nFile v1.2.3:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nContextMint Bridge extension (fetchproxy's browser extension); the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the ContextMint Bridge browser extension from\n   https://github.com/nullnet-app/contextmint-bridge/releases (Chrome: load the\n   `contextmint-bridge-chrome-*.zip` unpacked; Safari: ships inside the ContextMint app,\n   no public download yet — use Chrome for now). It is the renamed fetchproxy extension, same maintainer;\n   source is public — build it or verify the zip with its published `.sha256`.\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in ContextMint Bridge.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one. Otherwise the first\ncall makes no network call and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the preview lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1790991597349\n}\n\nFile v1.2.3:skill-card.md\n\n## Description:\n\nHelps users check availability and create, change, or cancel restaurant reservations through easyTable booking widgets.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPeople and their assistants use this skill to find restaurant booking slots and manage easyTable reservations, including looking up existing bookings by phone number.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The browser extension uses the user's session on easyTable booking pages.\n\nMitigation: Install only if comfortable using ContextMint Bridge with that browser session.\n\nRisk: Creating, changing, or canceling a booking can affect a real reservation associated with a phone number.\n\nMitigation: Review the booking preview and obtain the user's approval before confirming changes.\n\nRisk: A timeout can leave the outcome of a booking request uncertain.\n\nMitigation: Look up bookings by the guest's phone number before retrying.\n\n## Reference(s):\n\n- [easytable on ClawHub](https://clawhub.ai/chrischall/skills/easytable)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Text with booking options, reservation details, and confirmation previews]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Booking changes require user confirmation.]\n\n## Skill Version(s):\n\n1.2.3 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.2: 3 files, 3183 bytes\n\nFiles: skill-card.md (2023b), SKILL.md (3682b), _meta.json (128b)\n\nFile v1.2.2:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nContextMint Bridge extension (fetchproxy's browser extension); the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the ContextMint Bridge browser extension from\n   https://github.com/nullnet-app/contextmint-bridge/releases (Chrome: load the\n   `contextmint-bridge-chrome-*.zip` unpacked; Safari: ships inside the ContextMint app,\n   no public download yet — use Chrome for now). It is the renamed fetchproxy extension, same maintainer;\n   source is public — build it or verify the zip with its published `.sha256`.\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in ContextMint Bridge.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one. Otherwise the first\ncall makes no network call and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the preview lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.2\",\n  \"publishedAt\": 1790879080957\n}\n\nFile v1.2.2:skill-card.md\n\n## Description:\n\nHelps users check easyTable restaurant availability and create, change, or cancel table reservations through their browser session.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDiners use this skill to check restaurant booking areas, dates, and times, and to make, find, change, or cancel easyTable reservations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The booking flow requires a browser extension with access to the user's booking session.\n\nMitigation: Confirm the ContextMint Bridge extension source is trusted before installing or pairing it.\n\nRisk: Booking actions handle guest names and mobile numbers and may create, change, or cancel reservations.\n\nMitigation: Share contact details only when needed and approve changes only after checking the reservation preview against the request.\n\nRisk: An uncertain booking response can leave a reservation already created, and a modification can clear existing details.\n\nMitigation: Look up the reservation before retrying; confirm any existing email, comments, and company details before modifying it.\n\n## Reference(s):\n\n- [easytable on ClawHub](https://clawhub.ai/chrischall/skills/easytable)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Text with availability details, booking results, and confirmation previews]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reservation changes require user confirmation.]\n\n## Skill Version(s):\n\n1.2.2 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.1: 3 files, 3164 bytes\n\nFiles: skill-card.md (1951b), SKILL.md (3682b), _meta.json (128b)\n\nFile v1.2.1:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nContextMint Bridge extension (fetchproxy's browser extension); the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the ContextMint Bridge browser extension from\n   https://github.com/nullnet-app/contextmint-bridge/releases (Chrome: load the\n   `contextmint-bridge-chrome-*.zip` unpacked; Safari: ships inside the ContextMint app,\n   no public download yet — use Chrome for now). It is the renamed fetchproxy extension, same maintainer;\n   source is public — build it or verify the zip with its published `.sha256`.\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in ContextMint Bridge.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one. Otherwise the first\ncall makes no network call and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the preview lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.1\",\n  \"publishedAt\": 1790603873891\n}\n\nFile v1.2.1:skill-card.md\n\n## Description:\n\nHelps users check availability and create, change, or cancel reservations at restaurants using easyTable.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPeople booking restaurants through easyTable can check available areas, dates, and times, look up bookings by mobile number, and request confirmed reservation changes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Installing or pairing an unverified browser extension could expose the user's booking session.\n\nMitigation: Verify the ContextMint Bridge extension source or release checksum, and pair it only when intending to manage an easyTable booking.\n\nRisk: Creating, changing, or canceling a reservation affects a real booking.\n\nMitigation: Review the reservation details and obtain the user's explicit approval before confirming each change.\n\nRisk: An uncertain booking response could lead to a duplicate reservation if retried.\n\nMitigation: Look up the booking by the guest's mobile number before retrying an uncertain create or modify request.\n\n## Reference(s):\n\n- [easytable skill on ClawHub](https://clawhub.ai/chrischall/skills/easytable)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Text or Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Availability and reservation details, with approval previews for booking changes.]\n\n## Skill Version(s):\n\n1.2.1 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.0: 3 files, 3004 bytes\n\nFiles: skill-card.md (2044b), SKILL.md (3306b), _meta.json (128b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nfetchproxy bridge; the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the fetchproxy browser extension (https://github.com/chrischall/fetchproxy).\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in the extension.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one. Otherwise the first\ncall makes no network call and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the preview lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1790262757681\n}\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nUse when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to check easyTable restaurant availability, find existing bookings by mobile number, and create, modify, or cancel table reservations through the user's browser session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Create, modify, and cancel actions can change real restaurant reservations.\n\nMitigation: Require user confirmation and show the reservation preview before submitting any write action.\n\nRisk: Modifying a booking can clear email, comment, or company fields if the user does not provide them.\n\nMitigation: Ask the user for the current email, comment, and company values, pass them through unchanged when appropriate, and only clear a field intentionally.\n\nRisk: The skill depends on the user's browser session through the fetchproxy extension and an open easyTable booking tab.\n\nMitigation: Use only with a loaded easyTable booking tab and install the extension only when the user accepts that browser-session dependency.\n\n## Reference(s):\n\n- [fetchproxy browser extension](https://github.com/chrischall/fetchproxy)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, configuration]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes setup guidance, tool-use flow, and confirmation requirements for reservation write actions.]\n\n## Skill Version(s):\n\n1.2.0 (source: evidence.release.version)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.3: 3 files, 3012 bytes\n\nFiles: skill-card.md (2439b), SKILL.md (2935b), _meta.json (128b)\n\nFile v1.1.3:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nfetchproxy bridge; the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the fetchproxy browser extension (https://github.com/chrischall/fetchproxy).\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in the extension.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirm-gated\n\n`create`, `modify`, and `cancel` do nothing without `confirm: true` — they\nreturn a dry-run preview first. Re-run with `confirm: true` to apply.\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\nIf a create/modify comes back with an unknown outcome (a timeout, or a reply\neasyTable didn't clearly accept or reject), the booking may already exist —\nrun `easytable_find_bookings` with the guest mobile before retrying.\n`cancel` needs no token.\n\n`modify` replaces the whole booking, and easyTable offers no way to read an\nexisting booking's email or comment back. Ask the user for the booking's current\nemail, comment (special requests, allergy notes) and company and pass them\nthrough unchanged, or pass `''` to clear one on purpose; the dry run lists what\nwill be cleared.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.1.3\",\n  \"publishedAt\": 1790199623526\n}\n\nFile v1.1.3:skill-card.md\n\n## Description:\n\nHelps agents check easyTable restaurant availability and guide users through creating, modifying, finding, or cancelling reservations through an open book.easytable.com booking widget.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents assisting them use this skill to inspect easyTable availability and manage restaurant reservations in the user's own browser session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Confirmed create, modify, or cancel actions can change a real restaurant reservation.\n\nMitigation: Review the dry-run preview before confirming and act only on reservations the user is authorized to manage.\n\nRisk: A create or modify attempt can have an unknown outcome after a timeout or unclear easyTable response.\n\nMitigation: Search for the booking by the guest mobile number before retrying the write action.\n\nRisk: Modifying a booking replaces the whole booking, while easyTable does not expose the existing email, comment, or company values.\n\nMitigation: Ask the user for current values to pass through unchanged, or intentionally pass an empty value when the user wants a field cleared.\n\nRisk: The workflow depends on the fetchproxy browser extension and an open easyTable booking tab.\n\nMitigation: Install and pair the extension only if the user accepts that browser-based workflow, and provide booking details only for reservations they are authorized to manage.\n\n## Reference(s):\n\n- [ClawHub easytable skill page](https://clawhub.ai/chrischall/skills/easytable)\n- [fetchproxy browser extension](https://github.com/chrischall/fetchproxy)\n\n## Skill Output:\n\n**Output Type(s):** [text, guidance, configuration]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reservation write actions require dry-run review and explicit confirmation; create and modify actions also require an open, loaded easyTable browser tab through fetchproxy.]\n\n## Skill Version(s):\n\n1.1.3 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.2: 3 files, 2604 bytes\n\nFiles: skill-card.md (2008b), SKILL.md (2381b), _meta.json (128b)\n\nFile v1.1.2:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nfetchproxy bridge; the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the fetchproxy browser extension (https://github.com/chrischall/fetchproxy).\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in the extension.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirm-gated\n\n`create`, `modify`, and `cancel` do nothing without `confirm: true` — they\nreturn a dry-run preview first. Re-run with `confirm: true` to apply.\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\n`cancel` needs no token.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.1.2\",\n  \"publishedAt\": 1790179310787\n}\n\nFile v1.1.2:skill-card.md\n\n## Description:\n\nUse when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget).\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to check easyTable restaurant availability and manage reservations through a user's own browser session. It covers listing booking areas, dates, and times, finding bookings by phone number, and creating, modifying, or cancelling reservations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The workflow depends on a browser extension bridge and an open, loaded easyTable booking tab.\n\nMitigation: Only pair the extension intentionally and keep the relevant booking widget tab open when confirming booking creation or modification.\n\nRisk: Create, modify, and cancel actions can change a restaurant reservation.\n\nMitigation: Review dry-run previews carefully and use confirm:true only when the user intends to create, change, or cancel the reservation.\n\n## Reference(s):\n\n- [fetchproxy browser extension](https://github.com/chrischall/fetchproxy)\n- [ClawHub skill page](https://clawhub.ai/chrischall/skills/easytable)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, text, API Calls]\n\n**Output Format:** [Markdown or plain text with tool-call guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Write operations are confirm-gated and should be previewed before applying reservation changes.]\n\n## Skill Version(s):\n\n1.1.2 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.1: 3 files, 2689 bytes\n\nFiles: skill-card.md (2278b), SKILL.md (2381b), _meta.json (128b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nfetchproxy bridge; the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the fetchproxy browser extension (https://github.com/chrischall/fetchproxy).\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in the extension.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirm-gated\n\n`create`, `modify`, and `cancel` do nothing without `confirm: true` — they\nreturn a dry-run preview first. Re-run with `confirm: true` to apply.\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must\nbe open and loaded when you confirm. The token is single-use and expires after\na few minutes; if a create fails on the token, reload the tab and retry.\n`cancel` needs no token.\n\n## Notes\n\n- Times are HH:MM; the widget internally uses minute-of-day.\n- All reads and the whole booking flow are the user's own actions on their own\n  browser session — no easyTable account or API key is involved.\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1789964086889\n}\n\nFile v1.1.1:skill-card.md\n\n## Description:\n\nUse when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through an easyTable widget, including listing booking areas, dates, times, and existing bookings by phone.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to inspect easyTable restaurant availability and manage table reservations through the user's own browser session after pairing the fetchproxy extension.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill uses a browser bridge and the user's active browser session to read availability and manage bookings.\n\nMitigation: Verify the fetchproxy extension source and approve pairing only for the booking tab the user intends to use.\n\nRisk: Creating, modifying, or canceling a reservation can change a real booking using the name and mobile number supplied by the user.\n\nMitigation: Review the dry-run preview and set confirm:true only after verifying the restaurant, booking details, name, and mobile number.\n\nRisk: Create and modify actions depend on a single-use Cloudflare Turnstile token from the loaded widget tab.\n\nMitigation: Keep the intended easyTable widget tab open and reload it before retrying if a token-related create or modify action fails.\n\n## Reference(s):\n\n- [easytable ClawHub listing](https://clawhub.ai/chrischall/skills/easytable)\n- [fetchproxy browser extension](https://github.com/chrischall/fetchproxy)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, API Calls, Configuration]\n\n**Output Format:** [Text guidance with structured tool-call parameters]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reservation-changing actions are dry-run previews until the user confirms with confirm:true.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: easytable Owner: chrischall Summary: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations. Tags: latest:1.2.6 Version history: v1.2.6 | 202","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: easytable\ndescription: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations.\n---\n\n# easyTable reservations\n\neasyTable is a restaurant table-booking system. Each restaurant has a public\nbooking widget at `https://book.easytable.com/book/?id=<restaurantId>` — the\n`id` is the only identifier (there's no login). This MCP drives that widget\nthrough the user's own signed-in, Cloudflare-cleared browser tab via the\nContextMint Bridge extension (fetchproxy's browser extension); the site blocks any server-side request.\n\n## Setup (one time)\n\n1. Install the ContextMint Bridge browser extension from\n   https://github.com/nullnet-app/contextmint-bridge/releases (Chrome: load the\n   `contextmint-bridge-chrome-*.zip` unpacked; Safari: ships inside the ContextMint app,\n   no public download yet — use Chrome for now). It is the renamed fetchproxy extension, same maintainer;\n   source is public — build it or verify the zip with its published `.sha256`.\n2. Open a booking widget in Chrome: `https://book.easytable.com/book/?id=<restaurantId>`.\n   Let the page finish loading — its Cloudflare Turnstile check solves itself.\n3. The first tool call prints a one-time pair code; approve it in ContextMint Bridge.\n\n## Typical flow\n\n1. `easytable_list_types` — the restaurant's booking areas (e.g. indoor, bar);\n   note the `type` id.\n2. `easytable_list_dates` — bookable dates for that `type` + party size.\n3. `easytable_list_times` — time slots (HH:MM) for a chosen date.\n4. `easytable_create_booking` — make the reservation (needs name + mobile).\n\nTo change or cancel, first `easytable_find_bookings` with the mobile the\nbooking was made under, then `easytable_modify_booking` /\n`easytable_cancel_booking` with the returned booking id.\n\n## Writes are confirmed first\n\n`create`, `modify`, and `cancel` ask the user to confirm before anything is\nsent: a confirmation prompt where the client supports one (unless the server\nsets `MCP_CONFIRM_ELICITATION=off`). Otherwise the first\ncall sends nothing and returns `status: \"confirmation-required\"` with a\npreview and a `confirmToken` — show the user the preview, and only after they\napprove it in chat call again with the same arguments plus that `confirmToken`.\nThe token is single-use; a changed argument is refused as `DRAFT_CHANGED` with a\nfresh preview (see `MCP_CONFIRM_MODE`).\n\n`cancel` looks the booking up first (a read) and refuses a `bookingId` that\nisn't one of that mobile's bookings; its preview's `booking` shows the matching\nrow (date, time, party) so the user can see which reservation they're cancelling.\n\n`create` and `modify` submit a Cloudflare Turnstile token the MCP reads from\nthe widget tab's hidden input, so a `book.easytable.com/book/?id=<id>` tab must"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"easytable\",\n  \"version\": \"1.2.6\",\n  \"publishedAt\": 1791588281796\n}"},{"path":"skill-card.md","content":"## Description:\n\nHelps users check availability and create, change, or cancel reservations at restaurants using easyTable.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nRestaurant customers use this skill to find available tables and manage their easyTable reservations through their own browser session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A browser extension paired to the wrong tab could access an unintended session.\n\nMitigation: Verify the ContextMint Bridge release or source and approve pairing only for the intended easyTable tab.\n\nRisk: Creating, changing, or cancelling a reservation may expose guest details or alter a real booking.\n\nMitigation: Check the booking preview and guest details, including name and mobile number, before approving each change.\n\nRisk: Changing a booking can erase existing email, comments, or company details that cannot be read back.\n\nMitigation: Ask the guest for the existing details and preserve them unless the guest explicitly wants to clear them.\n\nRisk: Retrying after an uncertain booking response could create a duplicate reservation.\n\nMitigation: Look up reservations using the guest's mobile number before retrying.\n\n## Reference(s):\n\n- [easytable skill listing](https://clawhub.ai/chrischall/skills/easytable)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Availability results, booking details, and confirmation previews.]\n\n## Skill Version(s):\n\n1.2.6 (source: server-resolved ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations. Skill: easytable Owner: chrischall Summary: Use when the user wants to check restaurant availability or make, change, or cancel a table reservation at a restaurant that books through easyTable (a book.easytable.com/book/?id=<id> widget). Covers listing booking areas, dates and times, looking up existing bookings by phone, and creating/modifying/cancelling reservations. Tags: latest:1.2.6 Version history: v1.2.6 | 202","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1318,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T12:03:07.104Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T12:03:07.104Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:43:23.670Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}