Skip to content

Add serpdive extension#6925

Open
edendalexis wants to merge 2 commits into
zed-industries:mainfrom
edendalexis:add-serpdive
Open

Add serpdive extension#6925
edendalexis wants to merge 2 commits into
zed-industries:mainfrom
edendalexis:add-serpdive

Conversation

@edendalexis

@edendalexis edendalexis commented Jul 22, 2026

Copy link
Copy Markdown
  • I've read CONTRIBUTING.md and followed the relevant guidance for adding or updating my extension.

Adds SERPdive as a context server extension: web search for AI agents that returns the extracted, answer-ready content of each source page instead of a list of links, cleaned and sized for a context window. It wraps the serpdive-mcp npm package over stdio, in the same shape as the existing mcp-server-tavily extension.

Measured, not asserted: on a public, replayable 1,000-question benchmark judged blind by an independent model, SERPdive runs at the same speed as Tavily, feeds the LLM 20.2% fewer tokens, and wins 60.7% of decided quality duels against Tavily's default search — methodology and per-question results at https://github.com/edendalexis/serpdive-benchmark.

Extension repository: https://github.com/serpdive/zed-serpdive-mcp (MIT). One tool, serpdive_search, with two retrieval depths (fast key sentences, or full page content) and an optional written answer built from the sources. Free tier: 1,000 credits/month, no card.

Tested locally as a dev extension, per CONTRIBUTING:

  • Builds clean for wasm32-wasip2 (the target this repo's CI uses) with Rust 1.97.
  • Installed into Zed 1.11.3 as a dev extension: the extension host loaded it, ran context_server_command, installed serpdive-mcp@0.1.5 into the extension work directory, and started the server — node .../extensions/work/serpdive/node_modules/serpdive-mcp/bin/serpdive-mcp.js was running with the key from settings.
  • Drove the underlying MCP server through the same invocation the extension uses: initialize returns the server info, tools/list returns serpdive_search.
  • Missing-key path returns the intended error rather than panicking.

In this repo: pnpm sort-extensions (both extensions.toml and .gitmodules are sorted and the sorter is a no-op on re-run), pnpm build, and pnpm test (111 tests) all pass locally.

A key is created at https://serpdive.com/dashboard/keys and the free tier needs no card.

@cla-bot

cla-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown

We require contributors to sign our Contributor License Agreement, and we don't have @edendalexis on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'.

@cla-bot

cla-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown

We require contributors to sign our Contributor License Agreement, and we don't have @edendalexis on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'.

@edendalexis

Copy link
Copy Markdown
Author

@cla-bot check

@cla-bot cla-bot Bot added the cla-signed label Jul 22, 2026
@cla-bot

cla-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown

The cla-bot has been summoned, and re-checked this pull request!

@edendalexis

Copy link
Copy Markdown
Author

Update while this is open: SERPdive now has a free tier, which changes the calculus for this integration.

model: "krill" is free and unlimited under fair use — no card, no credits to spend, no trial clock. It returns about 700 tokens per search (roughly half what the usual alternatives send), one request at a time, at low priority. The paid models are unchanged.

Why it matters here: the usual objection to adding a search provider is that reviewers and users need a paid key just to try it. That objection is gone — anyone can run this integration end to end for free, including whoever reviews this PR.

Nothing in this PR needs to change for that: the default stays mako, and krill is opt-in via the existing model parameter. Happy to add a line to the docs here if you'd like the free tier called out explicitly.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant