Skip to content

Add Octen plugin — web search, multi-query research, and content extraction - #150

Open
dongxu0413 wants to merge 6 commits into
xai-org:mainfrom
Octen-Team:add-octen-plugin
Open

Add Octen plugin — web search, multi-query research, and content extraction#150
dongxu0413 wants to merge 6 commits into
xai-org:mainfrom
Octen-Team:add-octen-plugin

Conversation

@dongxu0413

@dongxu0413 dongxu0413 commented Jul 28, 2026

Copy link
Copy Markdown

What this PR does

Adds the official Octen plugin to the Grok Build Plugin Marketplace. Supersedes #149.

  • Plugin name: octen
  • Type: remote source
  • Source URL + pinned SHA: https://github.com/Octen-Team/octen-grok-plugin.git @ 825363e074f6aa835368ab8358ff6be9fa050f1f
  • Homepage: https://octen.ai
  • License: MIT

Why another search plugin

The catalog already has good semantic-search and scraping options. Octen is here for a different
axis: latency and retrieval width, which is what a coding agent actually spends its budget on.

  • Fast enough to call repeatedly. Octen serves web search at a P50 of 62 ms (measured on SealQA
    Hard) — inside the budget to call search several times within a single agent turn.
  • Retrieval quality is measured, not asserted. We score it with a public, re-runnable eval harness:
    SimpleQA and FreshQA through the official graders, plus a blind, position-debiased pairwise judge that
    reports the per-competitor gaps, including where competitors beat us. Octen scores 95.2% on SimpleQA
    and 55.8% on FreshQA there; scores and per-set latency all regenerate from run artifacts:
    https://github.com/Octen-Team/search-eval
  • broad_search is a server-side primitive, not a client loop. Give it the user's full question and
    Octen decomposes it into concurrent sub-queries, returning results grouped per sub-query. Every other
    search plugin in this catalog makes the agent plan the fan-out itself, which costs extra turns and
    extra tokens before a single result comes back. One broad_search call replaces a
    plan-then-N-searches round trip.
  • Classification on every result. Each extracted page carries a topical category and a
    page_structure typology, so a skill can distinguish docs from forum from product page without a
    second model call.

Tools

Tool What it does
search Search the live web for focused, current information and sources.
news_search Search recent events, announcements, and time-sensitive reporting.
broad_search Decompose a research question into concurrent sub-queries and return broad, grouped coverage.
extract Turn known URLs into clean, LLM-ready content with optional highlights and page labels.

The plugin includes the octen-web skill, which picks the smallest tool that fits the
request and preserves returned source URLs.

Credentials

Octen uses a stdio MCP server with an OCTEN_API_KEY read from the user's local environment.
Unlike a hosted MCP server, no request is proxied through a third party — the key and the query go
from the user's machine straight to api.octen.ai.

Sign up at https://octen.ai to get an API key; new accounts start with $5 in free credit.

A hosted MCP server with browser OAuth is on our roadmap.

Ownership

  • I own this plugin or have the right to distribute it.
  • The source repository is published under our official organization.

The plugin source is maintained at https://github.com/Octen-Team/octen-grok-plugin under the official
Octen-Team organization, licensed MIT. I'm an engineer at Octen.

Checklist

  • Added exactly one entry in .grok-plugin/marketplace.json with a unique, kebab-case name.
  • Remote source pins a public, reachable, full 40-character lowercase commit SHA.
  • Regenerated and committed .grok-plugin/plugin-index.json.
  • python3 scripts/validate-catalog.py passes locally.
  • python3 scripts/generate-plugin-index.py --check passes locally.
  • Homepage, clear description, and Octen-owned domains are set.
  • The plugin has a README and a valid plugin manifest.
  • License is stated as MIT.

Catalog diff is limited to the single octen entry — no formatting or unrelated changes to other
entries in marketplace.json, and plugin-index.json differs only by the regenerated octen block.

Keywords are brand-scoped so the plugin CTA doesn't fire on generic search or extract requests:

["octen", "octen search", "octen ai"]

Security

  • No curl | bash, postinstall hook, remote-binary download/execute, eval, obfuscation, or
    minified payload.
  • No lifecycle hooks, agents, shell-execution tools, or filesystem access.
  • No telemetry or undisclosed network traffic.
  • No reading or exfiltration of .env files, SSH material, tokens, or unrelated environment
    variables.
  • MCP scope: one stdio server named octen, exposing exactly the four tools listed above
    (Beta image_search/video_search are disabled via OCTEN_ENABLE_BETA_TOOLS=false).
  • Network endpoint: https://api.octen.ai — the only host the plugin contacts.
  • Credentials: OCTEN_API_KEY, supplied by the user from their local environment. No key is
    embedded in the repository, the marketplace entry, or the plugin documentation.

Validation

$ python3 scripts/validate-catalog.py
Catalog OK (.grok-plugin/marketplace.json)

$ python3 scripts/generate-plugin-index.py --check
Plugin index OK (.grok-plugin/plugin-index.json)

$ git ls-remote https://github.com/Octen-Team/octen-grok-plugin.git HEAD refs/heads/main
825363e074f6aa835368ab8358ff6be9fa050f1f	HEAD
825363e074f6aa835368ab8358ff6be9fa050f1f	refs/heads/main

Notes for reviewers

Verified against the pinned build (825363e): the plugin's MCP command —
npx -y octen-mcp@0.3.6 with OCTEN_ENABLE_BETA_TOOLS=false — completes the MCP initialize
handshake and lists exactly the four tools above; no Beta tool is exposed. Catalog and index
validators pass locally (see Validation).

To verify against this PR directly, point xAI Official at the merge ref in ~/.grok/config.toml:

branch = "refs/pull/150/merge"

then refresh /marketplaces and confirm the octen MCP server and the octen-web skill
appear and resolve. Happy to rebase or adjust keywords and description on request.

cc @ykeremy

@dongxu0413
dongxu0413 requested a review from a team July 28, 2026 02:43
dongxu0413 and others added 3 commits July 28, 2026 10:51
Update the octen source pin to 825363e (octen-grok-plugin with
octen-mcp@0.3.6 and OCTEN_ENABLE_BETA_TOOLS=false), so the plugin exposes
only the four generally-available tools. Drop the "Beta image/video search"
clause from the catalog description and regenerate the plugin index.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dongxu0413 dongxu0413 changed the title feat: add Octen Grok Build plugin Add Octen plugin — web search, multi-query research, and content extraction Jul 28, 2026
@dongxu0413

Copy link
Copy Markdown
Author

Hi @ykeremy — requesting review when you have a moment.

This adds the official octen plugin under our Octen-Team org (MIT), structured the same as the merged Tavily (#106) and Firecrawl (#30) entries: one remote-source catalog entry pinned to a full 40-char commit SHA, a regenerated plugin-index.json, and a single stdio MCP server exposing exactly four GA tools (search, news_search, broad_search, extract).

  • python3 scripts/validate-catalog.py and python3 scripts/generate-plugin-index.py --check both pass locally.
  • Catalog diff is limited to the single octen entry — no unrelated formatting changes.
  • Keywords are brand-scoped (octen, octen search, octen ai) so the CTA doesn't fire on generic search/extract.
  • Supersedes feat: add Octen Grok Build plugin #149.

Happy to rebase or adjust keywords/description on request. Thanks!

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