agentCLAWHUBUnverified

tock-fpx

Query Tock (exploretock.com — restaurant discovery, availability, and the signed-in user's reservations) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the tock-mcp server — list metros, search a metro's restaurants, get a venue's bookable calendar, and list reservations, all through a signed-in browser tab. Use when you want Tock data without the MCP, in a script, or on a machine where the MCP isn't installed.

OpenClaw

Rank

62

Safety

84

Downloads

1.1k

Updated

Oct 11, 2026

Version

1.1.8

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 11, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 11, 2026
Adoption signal
1.1K downloadsadoption · observed Oct 11, 2026
Latest release
1.1.8release · observed Oct 9, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:tock-fpx
  1. Install using `clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:tock-fpx` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/chrischall/tock-fpx before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-tock-fpx/snapshot"

Documentation

CLAWHUB

146,995 characters of source documentation, loaded on request.

Extracted files

4 files captured from the source.

SKILL.md

---
name: tock-fpx
description: >-
  Query Tock (exploretock.com — restaurant discovery, availability, and the
  signed-in user's reservations) from a shell with the fpx CLI
  (@fetchproxy/cli) instead of running the tock-mcp server — list metros,
  search a metro's restaurants, get a venue's bookable calendar, and list
  reservations, all through a signed-in browser tab. Use when you want Tock
  data without the MCP, in a script, or on a machine where the MCP isn't
  installed.
---

# Tock via fpx (no MCP)

`www.exploretock.com` sits behind a Cloudflare managed challenge — a plain
`curl`/Node request 403s every path (`cf-mitigated: challenge`, a "Just a
moment..." interstitial), including `/city` and `/{slug}`. There is no
server-side login form and no consumer token exchange. `fpx` routes the
request through the user's own signed-in browser tab (the ContextMint Bridge
extension), which has already cleared the challenge, so the same fetch
succeeds. Browsing (metros, search, venue detail, availability) needs no Tock
login at all — just an open, challenge-cleared tab; only the reservations
list needs the tab **signed in**.

This is the same data the `tock_*` MCP tools return, reached with one-shot CLI
calls instead of a running server. It is **read-only** — see "Why no
booking/cancel" below.

## One-time setup

```sh
npm install -g @fetchproxy/cli              # provides `fpx`
fpx profile add tock --domain exploretock.com
fpx pair -p tock                             # prints a pair code → approve in ContextMint Bridge
```

Requirements: the **ContextMint Bridge** browser extension installed (from
https://github.com/nullnet-app/contextmint-bridge/releases — Chrome: load the chrome zip
unpacked; Safari isn't available yet, so use Chrome for now), with an open
`www.exploretock.com` tab (signed in, for the reservations tool only), and its
Chrome **Site access** allowing `exploretock.com`. Pairing persists — after the
first approval every later `fpx` call reuses it. ContextMint Bridge is the fetchproxy extension under its new name, same maintainer; its source is public at https://github.com/nullnet-app/contextmint-bridge — build it yourself or check a release zip against its published `.sha256` file.

## Two call shapes

Tock has two different backends behind the same bridge:

1. **SSR pages** (`/city`, `/city/{slug}`, `/{slug}`, `/{slug}/search`) — an
   ordinary GET returns full HTML with the entire dataset embedded as a JS
   object-literal assignment: `window.$REDUX_STATE = {"app":{...},
   "consumerPage":{...}, "calendar":{...}, ...}`. It is **not** JSON — absent
   fields are the bare identifier `undefined`, so `jq` can't parse the raw
   response. Use the bundled `references/extract-redux-slice.mjs` (a faithful
   port of the MCP's own `src/redux-state.ts`) to pull one named slice out as
   real JSON, then pipe that to `jq`:

   ```sh
   fpx get 'https://www.exploretock.com/city' -p tock \
     | node references/extract-redux-slice.mjs app \
   

_meta.json

{
  "ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
  "slug": "tock-fpx",
  "version": "1.1.8",
  "publishedAt": 1791588598854
}

references/requests.md

# Tock requests for fpx

All paths are relative to `https://www.exploretock.com` (subdomain `www`).
Field names, slice keys, and the GraphQL document below are transcribed
verbatim from the tock-mcp repo (`docs/TOCK-API.md`, `src/parse.ts`,
`src/graphql-ops.ts`) — not guessed.

Every SSR-page recipe follows the same shape:

```sh
fpx get '<url>' -p tock | node extract-redux-slice.mjs <sliceKey> | jq '<filter>'
```

(`extract-redux-slice.mjs` lives alongside this file — see `SKILL.md` for why
it's needed instead of piping straight to `jq`.)

---

## 1. List metros — `GET /city`

Slice: `app`. The metro directory is the largest array whose items carry
`slug` + `name` + numeric `businessCount`. Many entries have
`businessCount: 0` (inactive) — filter those out for real venues.

```sh
fpx get 'https://www.exploretock.com/city' -p tock \
  | node extract-redux-slice.mjs app \
  | jq -r '
      [.. | arrays | select(length > 0 and (.[0] | type == "object") and (.[0] | has("slug") and has("businessCount")))]
      | max_by(length)[]
      | select(.businessCount > 0)
      | "\(.slug)\t\(.businessCount)\t\(.name)"
    '
```

Fields per metro: `name`, `slug`, `state`, `country`, `businessCount`,
`isActive`, `isFeatured`, `timezone`, `currencyCode`, `lat`, `lng`, `id`.

## 2. Search a metro's restaurants — `GET /city/{slug}[?query=]`

Slice: `consumerPage`. Business listings are nested widget-tree arrays whose
items carry `domainName` + `name`; `?query=` filters server-side.

```sh
fpx get 'https://www.exploretock.com/city/chicago?query=tasting' -p tock \
  | node extract-redux-slice.mjs consumerPage \
  | jq -r '
      [.. | arrays | select(length > 0 and (.[0] | type == "object") and (.[0] | has("domainName") and has("name")))]
      | add
      | unique_by(.domainName)[]
      | "\(.domainName)\t\(.priceRange // "")\t\(.name) — \(.neighborhood // .city // "")"
    '
```

Fields per business: `domainName` (→ the venue's own page slug),
`name`, `description`, `cuisines`, `priceRange` (e.g. `"$$$$"`),
`businessType`, `city`, `state`, `country`, `neighborhood`, `webUrl`,
`timeZone`, `currencyCode`, `locale`,
`location {address city state country zipCode lat lng id}`,
`profileImageUrl`, `heroImageUrl`, `isTockUnlisted`.

A bare `/search?query=X` redirects to a detected metro — always call with an
explicit metro slug instead.

## 3. Venue detail — `GET /{slug}`

Two slices in one fetch: `app` (the venue's own business record — the item
whose `domainName === slug`) and `calendar` (its bookable offerings).

```sh
fpx get 'https://www.exploretock.com/alinea' -p tock > /tmp/tock-venue.html

node extract-redux-slice.mjs app     < /tmp/tock-venue.html > /tmp/tock-app.json
node extract-redux-slice.mjs calendar < /tmp/tock-venue.html > /tmp/tock-cal.json

jq -r '.. | objects | select(.domainName == "alinea") | "\(.name) — \(.cuisines) \(.priceRange)"' /tmp/tock-app.json

jq -r '.offerings.experience[] | "\(.id)\t\(.name)\t\(.pricePerPerson.minCents/100)-\(.pricePerP

skill-card.md

## Description:

Helps agents query Tock restaurants, availability, and a signed-in user's reservations through the fpx CLI and a paired browser tab without running an MCP server.

This skill is ready for commercial/non-commercial use.

## Publisher:

[chrischall](https://clawhub.ai/user/chrischall)

### License/Terms of Use:

MIT-0

## Use Case:

Developers and agents use this skill to find Tock metros and restaurants, inspect venue availability, and look up the signed-in user's reservations from a shell. It provides read-only lookups, not booking or cancellation.

### Deployment Geography for Use:

Global

## Known Risks and Mitigations:

Risk: Reservation results can expose names, email addresses, and itinerary details.

Mitigation: Treat reservation and account details as private; avoid shared temporary files and redact terminal output before sharing it.

Risk: Browser extension pairing grants the CLI access to a Tock tab, including signed-in reservation data.

Mitigation: Pair only a trusted fpx installation and browser extension, and use a signed-in tab only when retrieving reservations.

## Reference(s):

- [ClawHub skill release](https://clawhub.ai/chrischall/skills/tock-fpx)
- [Tock request examples](references/requests.md)
- [Tock response extraction helper](references/extract-redux-slice.mjs)
- [ContextMint Bridge source](https://github.com/nullnet-app/contextmint-bridge)
- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)

## Skill Output:

**Output Type(s):** [Shell commands, Guidance]

**Output Format:** [Markdown with shell commands and JSON query examples]

**Output Parameters:** [1D]

**Other Properties Related to Output:** [Read-only; reservation lookups require a signed-in Tock tab.]

## Skill Version(s):

1.1.8 (source: ClawHub release metadata)

## Ethical Considerations:

Users 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.
Github ReposUpdated 2d agoRank 70

AionUi

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!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

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

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/chrischall/skills/tock-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/skills/tock-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-11T13:52:03.591Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-tock-fpx/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-tock-fpx/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-11T13:52:03.591Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.1K downloads",
      "href": "https://clawhub.ai/chrischall/tock-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/tock-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-11T13:52:03.591Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.1.8",
      "href": "https://clawhub.ai/chrischall/tock-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/tock-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:29:58.854Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-tock-fpx/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-tock-fpx/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.1.8",
      "description": "- Removed the file skill-card.md. - No functional or user-facing changes; documentation and usage remain unchanged.",
      "href": "https://clawhub.ai/chrischall/tock-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/tock-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:29:58.854Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 11, 2026.

Sponsored

Ads related to tock-fpx and adjacent AI workflows.