Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Google Surf MCP

by HarimxChoiversion 1.1.6i★ –iRuns on your computer
Registry nameio.github.HarimxChoi/google-surf-mcp

Install

Overview

Description from the maker (original English)

Web, academic and code search with graph RAG, data lineage, ontology and cross-project schema links.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Search & AI memory
  • You need to fill in: SEARCH_API, GITHUB_TOKEN, ANTHROPIC_API_KEY, ORCAROUTER_API_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: SEARCH_API, SURF_SEARCH_PROVIDER, SURF_SCHOLAR_PROVIDER, SURF_BROWSER_ENGINE, CHROME_PATH, SURF_PROFILE_ROOT, SURF_RESEARCH, SURF_RETRIEVAL_MODE, SURF_RESEARCH_ROOT, SURF_RESEARCH_VECTOR_MODEL, SURF_RESEARCH_VECTOR_LOW_MEMORY, SURF_RESEARCH_VECTOR_THREADS, SURF_RESEARCH_REPO_AUTO, SURF_RESEARCH_REPO_AUTO_MAX_MB, SURF_RESEARCH_REPO_AUTO_MAX_FILES, SURF_RESEARCH_BROKER_IDLE_MS, SURF_RESEARCH_READ_CONCURRENCY, SURF_RESEARCH_QUERY_TIMEOUT_MS, GITHUB_TOKEN, SURF_LOCALE, SURF_TZ, SURF_HEADLESS, SURF_IDLE_CLOSE_MS, SURF_ALLOW_PRIVATE, SURF_LLM_HEAL, SURF_LLM_PROVIDER, SURF_LLM_MODEL, ANTHROPIC_API_KEY, ORCAROUTER_API_KEY

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "google-surf": {
      "command": "npx",
      "args": [
        "-y",
        "google-surf-mcp"
      ],
      "env": {
        "SEARCH_API": "your-value",
        "SURF_SEARCH_PROVIDER": "your-value",
        "SURF_SCHOLAR_PROVIDER": "your-value",
        "SURF_BROWSER_ENGINE": "your-value",
        "CHROME_PATH": "your-value",
        "SURF_PROFILE_ROOT": "your-value",
        "SURF_RESEARCH": "your-value",
        "SURF_RETRIEVAL_MODE": "your-value",
        "SURF_RESEARCH_ROOT": "your-value",
        "SURF_RESEARCH_VECTOR_MODEL": "your-value",
        "SURF_RESEARCH_VECTOR_LOW_MEMORY": "your-value",
        "SURF_RESEARCH_VECTOR_THREADS": "your-value",
        "SURF_RESEARCH_REPO_AUTO": "your-value",
        "SURF_RESEARCH_REPO_AUTO_MAX_MB": "your-value",
        "SURF_RESEARCH_REPO_AUTO_MAX_FILES": "your-value",
        "SURF_RESEARCH_BROKER_IDLE_MS": "your-value",
        "SURF_RESEARCH_READ_CONCURRENCY": "your-value",
        "SURF_RESEARCH_QUERY_TIMEOUT_MS": "your-value",
        "GITHUB_TOKEN": "your-value",
        "SURF_LOCALE": "your-value",
        "SURF_TZ": "your-value",
        "SURF_HEADLESS": "your-value",
        "SURF_IDLE_CLOSE_MS": "your-value",
        "SURF_ALLOW_PRIVATE": "your-value",
        "SURF_LLM_HEAL": "your-value",
        "SURF_LLM_PROVIDER": "your-value",
        "SURF_LLM_MODEL": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "ORCAROUTER_API_KEY": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add google-surf --env SEARCH_API=your-value --env SURF_SEARCH_PROVIDER=your-value --env SURF_SCHOLAR_PROVIDER=your-value --env SURF_BROWSER_ENGINE=your-value --env CHROME_PATH=your-value --env SURF_PROFILE_ROOT=your-value --env SURF_RESEARCH=your-value --env SURF_RETRIEVAL_MODE=your-value --env SURF_RESEARCH_ROOT=your-value --env SURF_RESEARCH_VECTOR_MODEL=your-value --env SURF_RESEARCH_VECTOR_LOW_MEMORY=your-value --env SURF_RESEARCH_VECTOR_THREADS=your-value --env SURF_RESEARCH_REPO_AUTO=your-value --env SURF_RESEARCH_REPO_AUTO_MAX_MB=your-value --env SURF_RESEARCH_REPO_AUTO_MAX_FILES=your-value --env SURF_RESEARCH_BROKER_IDLE_MS=your-value --env SURF_RESEARCH_READ_CONCURRENCY=your-value --env SURF_RESEARCH_QUERY_TIMEOUT_MS=your-value --env GITHUB_TOKEN=your-value --env SURF_LOCALE=your-value --env SURF_TZ=your-value --env SURF_HEADLESS=your-value --env SURF_IDLE_CLOSE_MS=your-value --env SURF_ALLOW_PRIVATE=your-value --env SURF_LLM_HEAL=your-value --env SURF_LLM_PROVIDER=your-value --env SURF_LLM_MODEL=your-value --env ANTHROPIC_API_KEY=your-value --env ORCAROUTER_API_KEY=your-value -- npx -y google-surf-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "google-surf": {
      "command": "npx",
      "args": [
        "-y",
        "google-surf-mcp"
      ],
      "env": {
        "SEARCH_API": "your-value",
        "SURF_SEARCH_PROVIDER": "your-value",
        "SURF_SCHOLAR_PROVIDER": "your-value",
        "SURF_BROWSER_ENGINE": "your-value",
        "CHROME_PATH": "your-value",
        "SURF_PROFILE_ROOT": "your-value",
        "SURF_RESEARCH": "your-value",
        "SURF_RETRIEVAL_MODE": "your-value",
        "SURF_RESEARCH_ROOT": "your-value",
        "SURF_RESEARCH_VECTOR_MODEL": "your-value",
        "SURF_RESEARCH_VECTOR_LOW_MEMORY": "your-value",
        "SURF_RESEARCH_VECTOR_THREADS": "your-value",
        "SURF_RESEARCH_REPO_AUTO": "your-value",
        "SURF_RESEARCH_REPO_AUTO_MAX_MB": "your-value",
        "SURF_RESEARCH_REPO_AUTO_MAX_FILES": "your-value",
        "SURF_RESEARCH_BROKER_IDLE_MS": "your-value",
        "SURF_RESEARCH_READ_CONCURRENCY": "your-value",
        "SURF_RESEARCH_QUERY_TIMEOUT_MS": "your-value",
        "GITHUB_TOKEN": "your-value",
        "SURF_LOCALE": "your-value",
        "SURF_TZ": "your-value",
        "SURF_HEADLESS": "your-value",
        "SURF_IDLE_CLOSE_MS": "your-value",
        "SURF_ALLOW_PRIVATE": "your-value",
        "SURF_LLM_HEAL": "your-value",
        "SURF_LLM_PROVIDER": "your-value",
        "SURF_LLM_MODEL": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "ORCAROUTER_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "google-surf": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "google-surf-mcp"
      ],
      "env": {
        "SEARCH_API": "your-value",
        "SURF_SEARCH_PROVIDER": "your-value",
        "SURF_SCHOLAR_PROVIDER": "your-value",
        "SURF_BROWSER_ENGINE": "your-value",
        "CHROME_PATH": "your-value",
        "SURF_PROFILE_ROOT": "your-value",
        "SURF_RESEARCH": "your-value",
        "SURF_RETRIEVAL_MODE": "your-value",
        "SURF_RESEARCH_ROOT": "your-value",
        "SURF_RESEARCH_VECTOR_MODEL": "your-value",
        "SURF_RESEARCH_VECTOR_LOW_MEMORY": "your-value",
        "SURF_RESEARCH_VECTOR_THREADS": "your-value",
        "SURF_RESEARCH_REPO_AUTO": "your-value",
        "SURF_RESEARCH_REPO_AUTO_MAX_MB": "your-value",
        "SURF_RESEARCH_REPO_AUTO_MAX_FILES": "your-value",
        "SURF_RESEARCH_BROKER_IDLE_MS": "your-value",
        "SURF_RESEARCH_READ_CONCURRENCY": "your-value",
        "SURF_RESEARCH_QUERY_TIMEOUT_MS": "your-value",
        "GITHUB_TOKEN": "your-value",
        "SURF_LOCALE": "your-value",
        "SURF_TZ": "your-value",
        "SURF_HEADLESS": "your-value",
        "SURF_IDLE_CLOSE_MS": "your-value",
        "SURF_ALLOW_PRIVATE": "your-value",
        "SURF_LLM_HEAL": "your-value",
        "SURF_LLM_PROVIDER": "your-value",
        "SURF_LLM_MODEL": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "ORCAROUTER_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • SEARCH_API secret env
    SearchApi API key. Required only for SearchApi primary or fallback modes.
  • SURF_SEARCH_PROVIDER env
    Provider for search and search_parallel: browser, searchapi, or fallback. Defaults to browser.
  • SURF_SCHOLAR_PROVIDER env
    Provider for scholar_search: browser, searchapi, or fallback. Defaults to browser.
  • SURF_BROWSER_ENGINE env
    Browser engine: auto, native, or playwright. Auto uses one hidden native Chrome broker shared across local MCP sessions.
  • CHROME_PATH env
    Absolute path to the Chrome binary. Auto-detected on Windows/macOS/Linux when omitted.
  • SURF_PROFILE_ROOT env
    Directory for the warm Chrome profile. Defaults to ~/.google-surf-mcp.
  • SURF_RESEARCH env
    Enable Google Surf Auto Ontology: local project memory, evidence capture, and hybrid retrieval. Defaults to true. The SURF_RESEARCH setting name is unchanged.
  • SURF_RETRIEVAL_MODE env
    Shared route for search and search_parallel: live or hybrid. Defaults to hybrid.
  • SURF_RESEARCH_ROOT env
    Embedded SurrealDB data directory. Defaults to /research.
  • SURF_RESEARCH_VECTOR_MODEL env
    Local model for HNSW retrieval and shared reranking. Defaults to Xenova/multilingual-e5-small; use off to disable.
  • SURF_RESEARCH_VECTOR_LOW_MEMORY env
    Disable ONNX CPU memory arena and memory pattern. Defaults to true.
  • SURF_RESEARCH_VECTOR_THREADS env
    ONNX intra-op thread count from 1 to 16. Defaults to 4.
  • SURF_RESEARCH_REPO_AUTO env
    Sparse-index at most one eligible small GitHub repository per search call. Defaults to true.
  • SURF_RESEARCH_REPO_AUTO_MAX_MB env
    Maximum searchable repository source-text size in MB. Assets are excluded. Defaults to 20.
  • SURF_RESEARCH_REPO_AUTO_MAX_FILES env
    Maximum repository source file count for automatic indexing. Defaults to 2000.
  • SURF_RESEARCH_BROKER_IDLE_MS env
    Shared Auto Ontology broker idle lifetime in milliseconds. Defaults to 60000.
  • SURF_RESEARCH_READ_CONCURRENCY env
    Maximum concurrent Auto Ontology broker reads. Defaults to 4.
  • SURF_RESEARCH_QUERY_TIMEOUT_MS env
    Timeout per embedded SurrealDB query in milliseconds. Defaults to 120000; timed-out retrieval lanes are reported as partial.
  • GITHUB_TOKEN secret env
    Optional token that raises GitHub API limits for repository inspection.
  • SURF_LOCALE env
    Browser locale, e.g. en-US.
  • SURF_TZ env
    IANA timezone, e.g. America/New_York. Defaults to system timezone.
  • SURF_HEADLESS env
    Controls Playwright extraction, compatibility, and recovery paths. Native search hides normal system Chrome and shows it only for CAPTCHA recovery.
  • SURF_IDLE_CLOSE_MS env
    Idle ms before closing the sequential ctx and pool. 0 disables idle auto-close. Defaults to 30000.
  • SURF_ALLOW_PRIVATE env
    Set to 'true' to allow extract on private/loopback addresses (localhost, 10.x, 192.168.x, 169.254.x, etc). Default blocks them as an SSRF guard.
  • SURF_LLM_HEAL env
    Enable the optional workflow-only LLM selector repair path. Defaults to false.
  • SURF_LLM_PROVIDER env
    LLM selector repair provider: anthropic or orcarouter. Defaults to anthropic.
  • SURF_LLM_MODEL env
    Optional model override. OrcaRouter defaults to orcarouter/auto.
  • ANTHROPIC_API_KEY secret env
    Anthropic API key for optional LLM-assisted selector repair.
  • ORCAROUTER_API_KEY secret env
    OrcaRouter API key for optional LLM-assisted selector repair.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account HarimxChoi, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 5727 servers in this category
  • Published to the registry more recently than 95% of the other 5727 servers in this category
  • Basic checks equal to or better than 100% of the other 5727 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Google Surf MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: SEARCH_API, GITHUB_TOKEN, ANTHROPIC_API_KEY, ORCAROUTER_API_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.1.6) reached the registry yesterday.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

by upstashWidely used↓ 972.7K/wk★ 64.2KUpdated 2 days ago

Computer or cloud

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

by DeusDataWidely used↓ 18K/wk★ 48.1KUpdated 22 days ago

Runs on your computer

Exa

Connect AI agents to Exa for web search, content fetching, and multi-step research.

by exa-labsWidely used★ 5.2KUpdated 2 months ago

Runs in the cloud✓ exa.ai

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

google-surf-mcp

English | Korean

Google Surf MCP searches the web, papers, and codebases, then uses Auto Ontology to organize what you read into a local knowledge graph. Start without an API key or a separate database server, and build a personal knowledge base from connected sources and project records.

Sponsored by SearchApi

Core features

  • Search and read: Find web pages, papers, PDFs, GitHub repositories, and indexed local code. Tree-sitter links files, code symbols, imports, and function calls.
  • Auto Ontology: Organize sources and project records into a typed knowledge graph with evidence and data lineage.
  • Cross-project search: Find stored sources across selected projects using exact-match, keyword, semantic, and graph retrieval, with RRF fusion and a shared reranker.
  • Explore and export: Browse PKM, lineage, and ontology views; export HTML, PNG, JSON, Graphviz DOT, and Neo4j import bundles.

Stack: TypeScript, Chrome/Playwright, LiteParse, Tree-sitter, SurrealDB, Multilingual E5, and Graphology. Architecture

Quick start

Requires Node.js 22.12+ and Chrome or Chromium for browser search. CI covers Node 22 and 24 on Linux and Windows.

Register the server in your MCP client:

{

"mcpServers": { "google-surf": { "command": "npx", "args": ["-y", "google-surf-mcp@latest"] } } }

Restart the client. Auto Ontology is enabled by default; the local embedding model may be downloaded when you first index content. For search and extraction without the database or embedding model, set SURF_RESEARCH=false in the server environment.

Client setup, local installation, and SearchApi configuration

Search

  • Search through system Chrome without an API key
  • Dedicated logged-out profile; your personal Chrome profile is never read or copied
  • Multi-strategy SERP parsing with geometric verification
  • Removal of sponsored results and knowledge panels
  • CAPTCHA detection and environment-specific recovery
  • Parser self-healing and context fallback

Browser search is the default. SearchApi is an optional primary provider or fallback; it requires your own account, key, and credits.

Supported AI providers and gateways

Optional LLM-assisted repair and OrcaRouter setup

Tools

Seven tools are available with Auto Ontology enabled:

ToolUse
search / search_parallelDiscover new web sources and read them in the same call with extract_mode.
scholar_searchFind paper-specific Google Scholar metadata.
extractRead a web page, PDF, or repository from an already-known URL.
project_memory_searchLocal-only search of indexed project knowledge; no live web search.
project_memoryManage projects, save research records, index user-approved local folders, and export graphs.
healthInspect search and local runtime status.

Providing project_id to web search does not make it local-only. Use project_memory_search for stored knowledge.

Tool parameters, limits, follow-up reads, and repeatable source collection

Google Surf Auto Ontology

Search and extraction results are saved automatically. Plans, experiments, failures, and decisions are linked when your agent records them through project_memory.

Web + papers + code + project records

| Local knowledge graph | Hybrid retrieval + source-backed evidence

Projects stay separate by default. Selected projects can link knowledge using matching DOIs, repository URLs, or explicitly registered aliases; original records are not merged or moved.

Create a standalone graph explorer for one project:

project_memory(action="export", project_id="my-project", export_format="html", export_view="graph")

The HTML explorer includes PKM, lineage, and ontology views with PNG/JSON downloads. DOT and Neo4j exports are also available. The feature was renamed from Research to Auto Ontology; existing SURF_RESEARCH* settings, project_memory* tools, CLI names, and storage paths still work.

Ontology, lineage, code indexing, and export details

Benchmark

Live web result ranking on 32 held-out queries:

RankingnDCG@5MRRPrecision@5
Original provider ranking0.89490.82030.6375
BM25 + RRF0.89710.82030.6500

Evaluation conditions, retrieval results, and resource measurements

Documentation

GuideContents
Getting startedInstallation, clients, browser search, SearchApi setup
Tools and workflowsTool parameters, limits, evidence responses, source collection
Auto OntologyStorage, code structure, graph retrieval, lineage, exports
ConfigurationEnvironment variables, resource settings, OrcaRouter
Operations and securityCAPTCHA, cache cleanup, CLI, privacy, optional Codex hooks
BenchmarksMeasurements, conditions, and evaluation boundaries

Contributing · Changelog · MIT License

Ask PopNx