Skip to content

Add Grok Build plugin - #24

Merged
Zechereh merged 7 commits into
mainfrom
add-grok-plugin
Jul 27, 2026
Merged

Add Grok Build plugin#24
Zechereh merged 7 commits into
mainfrom
add-grok-plugin

Conversation

@Zechereh

Copy link
Copy Markdown
Contributor

Summary

Adds a Grok Build plugin under grok/, a sibling of claude/, bringing TinyFish to the xAI plugin marketplace. Backed by the hosted TinyFish MCP server (agent.tinyfish.ai/mcp, OAuth — no API key). Markdown + JSON only; nothing executes.

The layout matches what Grok expects, verified against the marketplace spec and two accepted peer plugins (Firecrawl, Exa): manifest at .grok-plugin/plugin.json, .mcp.json at root, skills/<name>/SKILL.md + references/, and a non-loaded rules/security.md.

Skills

  • tinyfish-web — router that picks the right tool (and keeps free reads off metered automation)
  • tinyfish-research — search + fetch research orchestrator with subagent fan-out
  • tinyfish-automation — goal-driven browser automation
  • tinyfish-authenticated — logged-in sites via Browser Context Profiles + Vault
  • tinyfish-browser — remote CDP browser sessions

Scope trimmed vs. the source plugin

  • Batch automation removedbatch_create/batch_status/batch_cancel and the references/batch.md doc are gone from the plugin's loaded surface.
  • Big search removed — no run_big_search/get_search_result references remain.
  • Generic "batch" guidance that is not the metered feature (fetch's 10-URLs-per-call, grouping seeds per subagent) is retained.

Also documents the previously-unlisted LangChain, Google ADK, and n8n integrations in the top-level README.

Not included (deliberate)

The xAI marketplace catalog entry is a separate follow-up — it must pin this branch's merge SHA and reference the plugin via a remote url source with "path": "grok" (the pattern Railway/Stripe use for monorepos).

docs/RESEARCH.md is kept as a dated design-rationale snapshot (non-loaded); it still describes the original tool scope as historical record.

Verification

  • .grok-plugin/plugin.json and .mcp.json parse
  • ✅ All 5 SKILL.md front-matter names match their directories
  • ✅ No dangling links to the deleted batch.md; no batch_create/big_search references remain in loaded components
  • ✅ No secrets, stray SHAs, or .DS_Store files

🤖 Generated with Claude Code

Zechereh and others added 2 commits July 27, 2026 11:59
Copy the TinyFish Grok Build plugin into the integrations monorepo as
grok/, a sibling of claude/. Ships five skills (web router, research,
automation, authenticated, browser) plus reference docs and a security
rules doc, backed by the hosted TinyFish MCP server (OAuth, no API key).

Also document the previously-unlisted LangChain, Google ADK, and n8n
integrations in the top-level README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop the batch web-automation feature (batch_create/batch_status/
batch_cancel) and all big-search references (run_big_search/
get_search_result) from the plugin's loaded surface:

- Delete skills/tinyfish-automation/references/batch.md
- Remove batch_create rows from the tinyfish-web and tinyfish-automation
  decision tables, and the batch-run guidance in goals.md and
  structured-output.md
- Drop the "Don't call run_big_search" section and the research skill's
  big-search instruction
- Trim the batch tool row from README and the batch tools from the
  .mcp.json note

Generic "batch" guidance that is not the metered feature — fetch_content
taking up to 10 URLs per call, grouping seeds per subagent — is retained.

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

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 19 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4789b9c3-5cf6-4f79-8c25-7022280a7879

📥 Commits

Reviewing files that changed from the base of the PR and between 166bd89 and 88ca9fd.

📒 Files selected for processing (9)
  • grok/.mcp.json
  • grok/README.md
  • grok/rules/security.md
  • grok/skills/tinyfish-automation/SKILL.md
  • grok/skills/tinyfish-automation/references/goals.md
  • grok/skills/tinyfish-browser/SKILL.md
  • grok/skills/tinyfish-research/SKILL.md
  • grok/skills/tinyfish-research/references/fetching.md
  • grok/skills/tinyfish-research/references/searching.md
📝 Walkthrough

Walkthrough

Adds a complete Grok Build integration for TinyFish, including plugin metadata, MCP configuration, licensing, marketplace documentation, safety rules, and skills for web tool selection, automation, authenticated browsing, remote browser sessions, and research workflows. The README also expands the repository integrations table with Grok, LangChain, Google ADK, and n8n entries.

Suggested reviewers: londondavila

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately reflects the main change: adding a Grok Build plugin.
Description check ✅ Passed The description is clearly related to the plugin additions and documentation changes in the PR.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-grok-plugin

Comment @coderabbitai help to get the list of available commands.

The design-rationale snapshot still described batch_* as in-scope and
discussed run_big_search/get_search_result. Those tools are removed from
the plugin, so drop the doc to keep grok/ consistent with the shipped
scope. Provenance remains in git history.

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@grok/README.md`:
- Around line 81-82: Update the Network endpoints statement in the README to
describe only the plugin’s direct connection to https://agent.tinyfish.ai/mcp,
and remove the absolute claim that no other endpoint is contacted. Keep the
existing endpoint purpose description intact.

In `@grok/rules/security.md`:
- Line 24: Update the URL handling rule in the security guidance to state that
shell quoting alone is insufficient sanitization. Require a fixed HTTP client
with URLs passed as separate arguments; if shell execution is unavoidable,
require http/https scheme validation and structured argument passing instead of
interpolating untrusted URLs into shell source.

In `@grok/skills/tinyfish-automation/references/goals.md`:
- Around line 85-92: Update the contact-form example near “Submit the form” to
explicitly require user confirmation before submission, either by adding a
confirmation step or stating that confirmation must already be obtained;
preserve the existing form details and submission flow.

In `@grok/skills/tinyfish-browser/SKILL.md`:
- Around line 30-38: Update the Playwright usage example around the browser
interaction to wrap page navigation and title retrieval in try/finally, and call
browser.close() in the finally block so the remote browser is closed on both
normal completion and exceptions.

In `@grok/skills/tinyfish-research/references/fetching.md`:
- Around line 7-37: Update the fetching guide to document only the parameters
exposed by TinyFishFetchInput: urls, format, links, and image_links. Remove
purpose guidance, ttl, per_url_timeout_ms, include_selectors, exclude_selectors,
and any conditional-request fields from the examples and parameter table, while
preserving the batch-fetch guidance.

In `@grok/skills/tinyfish-research/SKILL.md`:
- Around line 101-102: Update the source-counting instructions in SKILL.md so
fetched URLs from search results are not double-counted; require
sources_reviewed to report unique source URLs across searches, retries, and
fetched pages, or replace it with separate search_results_seen and pages_fetched
metrics while preserving the exact final-line format.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c0608da9-3df7-4e67-927b-7210e7ef7394

📥 Commits

Reviewing files that changed from the base of the PR and between 07d1fa1 and 166bd89.

📒 Files selected for processing (18)
  • README.md
  • grok/.grok-plugin/plugin.json
  • grok/.mcp.json
  • grok/LICENSE
  • grok/README.md
  • grok/rules/security.md
  • grok/skills/tinyfish-authenticated/SKILL.md
  • grok/skills/tinyfish-automation/SKILL.md
  • grok/skills/tinyfish-automation/references/anti-bot.md
  • grok/skills/tinyfish-automation/references/goals.md
  • grok/skills/tinyfish-automation/references/structured-output.md
  • grok/skills/tinyfish-browser/SKILL.md
  • grok/skills/tinyfish-research/SKILL.md
  • grok/skills/tinyfish-research/references/fan-out.md
  • grok/skills/tinyfish-research/references/fetching.md
  • grok/skills/tinyfish-research/references/searching.md
  • grok/skills/tinyfish-research/references/synthesis.md
  • grok/skills/tinyfish-web/SKILL.md

Comment thread grok/README.md Outdated
Comment thread grok/rules/security.md Outdated
Comment thread grok/skills/tinyfish-automation/references/goals.md Outdated
Comment thread grok/skills/tinyfish-browser/SKILL.md
Comment thread grok/skills/tinyfish-research/references/fetching.md Outdated
Comment thread grok/skills/tinyfish-research/SKILL.md Outdated
Zechereh and others added 2 commits July 27, 2026 13:41
Two corrections to the Grok plugin's tool surface:

- The MCP server exposes close_browser_session (idempotent, takes a
  session_id) on the default endpoint. Fix the tinyfish-browser skill,
  which wrongly claimed there was no terminate tool, and document it in
  the README and .mcp.json note.
- Restore batch_status and batch_cancel (only batch_create is removed).
  They poll or cancel several runs at once by ID and pair with
  run_web_automation_async; the plugin still does not start batches.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add an explicit Tools table to the tinyfish-browser skill listing
create_browser_session, list_browser_sessions, and close_browser_session,
and surface close_browser_session in the usage flow so it reads as a
first-class exposed tool rather than an aside.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Zechereh
Zechereh requested a review from londondavila July 27, 2026 20:48
- README: scope the network-endpoints declaration to the plugin's single
  declared MCP connection instead of an absolute "no other endpoint"
  claim (OAuth and CDP sessions are carried out by TinyFish).
- rules/security.md: strengthen URL handling — don't build shell commands
  from untrusted search/fetch output; quoting is not sufficient
  sanitization. Prefer a fixed HTTP client with the URL as an argument.
- goals.md: note that the contact-form example needs prior user
  confirmation (submitting sends a message on the user's behalf), and
  label the fenced block.
- tinyfish-browser: close the remote browser in the usage example via
  try/finally so the session isn't leaked on error.
- tinyfish-research: count unique source URLs in sources_reviewed so a
  fetched search result isn't double-counted.

Not applied: the fetching.md "unsupported parameters" finding — it was
validated against the LangChain TinyFishFetchInput wrapper, but this
plugin calls the MCP fetch_content tool, whose schema does expose
purpose, ttl, per_url_timeout_ms, and selector scoping.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Zechereh
Zechereh requested a review from KateZhang98 July 27, 2026 21:02

@KateZhang98 KateZhang98 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there any way to we link the docs instead of rewriting the docs?

…ng param tables

The reference files re-tabulated the Search/Fetch API parameters, which
duplicated the MCP tool schema and docs.tinyfish.ai and risked drift
(the source of an earlier false "unsupported params" review flag).

Replace the exhaustive parameter tables with a link to the canonical
reference plus the "tool schema is authoritative" note, and keep only
guidance the docs don't carry — query craft, filter combination traps,
selector behaviors/failure handling, response handling, and the
habit-forming params (purpose, ttl:0, format).

- searching.md → links https://docs.tinyfish.ai/api-reference/search-the-web
- fetching.md  → links https://docs.tinyfish.ai/api-reference/fetch-and-extract-content-from-urls

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Zechereh
Zechereh merged commit 89457fb into main Jul 27, 2026
3 checks passed
@Zechereh
Zechereh deleted the add-grok-plugin branch July 27, 2026 22:28
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.

3 participants