npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gemini-webtools-mcp

v1.0.5

Published

MCP server providing web search and fetch tools via Gemini's grounded search, drop-in replacement for Claude Code native web tools

Readme

gemini-webtools-mcp

TL;DR: MCP server that gives Claude Code web search and fetch capabilities via Gemini's grounded search.

Constraint: Claude Code on Vertex AI has its native WebSearch and WebFetch tools disabled by org policy.

Objective: Provide a drop-in MCP replacement that matches or exceeds native tool quality, with zero Anthropic API dependency.

Overview

This server exposes two MCP tools — gemini_web_search and gemini_web_fetch — that mirror the native Claude Code web tools' input schemas and output formats. Claude Code already prefers MCP-provided tools over its native equivalents, so registration is all that's needed.

  • Search uses Gemini's googleSearch grounding tool with inline citations and numbered source attribution. Supports allowed_domains / blocked_domains filtering.
  • Fetch retrieves a URL, strips HTML boilerplate (~88% token reduction), and processes content against a user prompt via Gemini. Includes cross-host redirect detection and raw markdown passthrough.
  • Both tools share a 15-minute content cache with FIFO eviction, matching native cache behavior. Connection warm-up on startup eliminates cold-start latency.
  • Default model is gemini-2.5-flash-lite (configurable via GEMINI_MODEL). Selected after benchmarking 5 Gemini models — best accuracy/speed trade-off.

Setup

claude mcp add gemini-web -e GEMINI_API_KEY=your-api-key -- npx -y gemini-webtools-mcp

Then restart Claude Code. The tools will be available automatically.

| Variable | Required | Default | Description | |---|---|---|---| | GEMINI_API_KEY | Yes | — | Google AI API key | | GEMINI_MODEL | No | gemini-2.5-flash-lite | Gemini model to use | | NODE_EXTRA_CA_CERTS | No | — | Custom CA certificate bundle |

Benchmark

Run the included benchmark (bench.mjs) with GEMINI_API_KEY=... node bench.mjs. Tests 25 search queries across 4 categories and 3 fetch URLs.

Search

| Metric | gemini-webtools-mcp | Native Claude Code | MCPBench Bing | MCPBench Brave | |---|---|---|---|---| | SimpleQA Accuracy | 80% (8/10) | ___ | — | — | | FreshQA Factual | 100% (5/5) | ___ | — | — | | FreshQA False-Premise | 100% (5/5) | ___ | — | — | | Coding QA | 100% (5/5) | ___ | — | — | | Overall Accuracy | 92% (23/25) | ___ | 64% | 48% | | Calibration | 95.8% | ___ | — | — | | Mean Latency | ~1.4s | ___ | — | — | | P95 Latency | ~1.7s | ___ | — | — |

Fetch

| Metric | gemini-webtools-mcp | Native Claude Code | |---|---|---| | Accuracy | 100% (3/3) | ___ | | Mean Latency | ~0.5s | ___ |

Releasing

GitHub and npm are synced automatically via GitHub Actions. When you create a release on GitHub, the workflow publishes to npm.

# 1. Make changes, commit, push
git add -A && git commit -m "description" && git push

# 2. Bump version (patch/minor/major)
npm version patch --no-git-tag-version
git add package.json package-lock.json && git commit -m "v$(node -p 'require(\"./package.json\").version')"

# 3. Tag and push
git tag "v$(node -p 'require("./package.json").version')"
git push && git push --tags

# 4. Create release (triggers npm publish)
gh release create "v$(node -p 'require("./package.json").version')" --generate-notes

The workflow requires an NPM_TOKEN secret (Granular Access Token with read-write on this package) in the repo settings.

License

MIT