Skip to content

Add flightclaw plugin - #529

Open
jackculpan wants to merge 2 commits into
xai-org:mainfrom
jackculpan:add-flightclaw
Open

Add flightclaw plugin#529
jackculpan wants to merge 2 commits into
xai-org:mainfrom
jackculpan:add-flightclaw

Conversation

@jackculpan

Copy link
Copy Markdown

What this PR does

Adds one new entry: flightclaw — flight search, price tracking and booking over MCP. Search Google Flights, watch a route and get an alert when the fare drops, then book and pay through Duffel. It remembers travellers, companions, loyalty programmes, cards and cabin preferences, so options come back ranked for the person asking.

  • Plugin name: flightclaw
  • Type: remote source
  • Source URL + pinned SHA: https://github.com/jackculpan/flightclaw.git @ 8866fc070549eb137bcc43911ca7d2b422a84b68
  • Homepage: https://flightclaw.com

Ownership

  • I own this plugin or have the right to distribute it.
  • The source repo is published under our official org (see notes below).

Checklist

  • Added exactly one entry in .grok-plugin/marketplace.json (valid JSON, kebab-case name).
  • Remote source pins a full 40-char lowercase commit sha, and that commit is public + reachable on master.
  • Regenerated .grok-plugin/plugin-index.json.
  • python3 scripts/validate-catalog.py passes locally.
  • python3 scripts/generate-plugin-index.py --check passes locally.
  • homepage + clear description set.
  • License is stated: MIT (LICENSE in the source repo, and license in .grok-plugin/plugin.json).

Security

  • No curl | bash, remote-code download/exec, or postinstall RCE. Nothing runs at install time. The connector launches server.py through uv run, which resolves pinned dependencies at start-up.
  • No reading or exfiltration of secrets, tokens, .env, or env vars. The server reads only its own FLIGHTCLAW_* and KIWI_* variables.
  • Hooks and MCP scope are least-privilege. The plugin ships one stdio MCP server and no hooks, no commands, no agents.

Network endpoints this plugin calls (and why):

Endpoint Purpose
google.com/travel/flights (via the fli library) Flight search and price tracking
The private flightclaw-api Worker at FLIGHTCLAW_API_URL Traveller profiles, preferences, cards, groups, trip history, Duffel booking and Link virtual-card payment
api.tequila.kiwi.com, with hand-off links to kiwi.com and skyscanner.net Optional bookability check

Credentials/permissions it requires (and why):

Search and price tracking need no credentials at all. Everything else stays inactive until the user sets the variable:

Variable Effect when unset
FLIGHTCLAW_API_URL, FLIGHTCLAW_API_KEY Profile, booking and payment tools report "not configured"
KIWI_API_KEY, KIWI_AFFILID Kiwi coverage is skipped

The full table is in the source repo's README. Price history is written only to the plugin's own data/ directory.

Notes for reviewers

On the personal-account source: flightclaw is a solo open-source project, not a company product. jackculpan/flightclaw is the first-party home of the brand — the same account owns https://flightclaw.com, which the manifest and the catalog entry both point at. There is no org to move it under.

Category: I used travel, which is new to the catalog. Happy to fold it into an existing category if you would rather not add one.

Verified before submitting: the server starts over stdio through the exact .mcp.json command and lists 32 tools (search_flights, search_dates, track_flight, check_prices, recommend_flights, book_flight, …).

🤖 Generated with Claude Code

Flight search, price tracking and booking over MCP. Remote source pinned
to jackculpan/flightclaw@8866fc0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jackculpan
jackculpan requested a review from a team September 2, 2026 21:12
Picks up the Claude Code, Cursor and Gemini CLI manifests and moves
.mcp.json to ${CLAUDE_PLUGIN_ROOT}, which grok-build also expands.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jackculpan

Copy link
Copy Markdown
Author

Bumped the pin to bc90b58dd385302d6cdc5c1426d041c1b16ae9ab (current master). The source repo now also carries Claude Code, Cursor and Gemini CLI manifests, and .mcp.json moved from ${GROK_PLUGIN_ROOT} to ${CLAUDE_PLUGIN_ROOT} so one file serves both clients — substitute_plugin_tokens expands either token. Validator and index check still pass locally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant