Repository navigation
Add Zenrows plugin - #1706
Open
tedi-z wants to merge 1 commit into
Open
Add Zenrows plugin#1706tedi-z wants to merge 1 commit into
tedi-z wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
Zenrows gives Grok live web data: fetch a page as markdown, pull structured fields from it, run batch jobs over many URLs, crawl from a start page, and drive a hosted browser for pages that need clicks, logins or pagination.
Ownership
sourcerepo is published under our official org.Checklist
.grok-plugin/marketplace.json(valid JSON, kebab-casename).sha, public and reachable..grok-plugin/plugin-index.json.python3 scripts/validate-catalog.pypasses locally.python3 scripts/generate-plugin-index.py --checkpasses locally.homepage+ cleardescriptionset.Security
curl | bash, remote-code download/exec, orpostinstallRCE..env, or env vars.Network endpoints this plugin calls (and why):
mcp.zenrows.com— the hosted MCP server itself, over HTTP. Every tool call goes here.app.zenrows.com— OAuth only: authorization, token exchange and dynamic client registration.Pages the user asks for are fetched by Zenrows, so the plugin makes no direct request to the target site.
Credentials/permissions it requires (and why):
An OAuth token for the user's Zenrows account, scope
api, obtained through the browser flow on first connection and stored by Grok in~/.grok/mcp_credentials.json. The plugin never reads or writes that file.No API key, no environment variables, no hooks, and no code Grok runs. What Grok loads is a
.mcp.jsonpointing at the hosted server plus nine Markdown skills. The repository also carriesscripts/validate-plugin.py, a development-time check run by our own CI; Grok neither loads nor executes it.Two skills suggest saving large result sets under
./.zenrows/in the working directory, and only when the user asked for the data. Grok's own file-write permissions apply.Notes for reviewers
Submitted by the Zenrows team (contact: success@zenrows.com).
We ran both gates locally against this SHA:
validate-catalog.pyandgenerate-plugin-index.py --checkboth pass, and the diff is additive only (63 insertions, 0 deletions).We also installed and exercised the plugin end to end in Grok Build 1.0.70:
grok plugin install ZenRows/grok-zenrows@v0.1.2 --trust/skillslists the ninezenrows-*skills;/mcpsshows the server readyscrapereturned the four out-of-stock products on a test catalogextractreturned the 16 products and prices on page 1, without paging furtherbrowser_navigate→browser_get_accessibility_tree→browser_batch→browser_closefound a price behind a "Load more" clickSkill names carry a
zenrows-prefix because Grok loads skills from every enabled plugin into one namespace; bare names likebatchormapwould collide with plugins already in this catalog.