Back to Browse

Google Surf MCP Server

Developer ToolsUse Caution4.4MCP RegistryLocal
Free

Server data from the Official MCP Registry

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

About

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

Security Report

4.4
Use Caution4.4High Risk

google-surf-mcp is a Developer Tools server providing Google/SearchApi web search, extraction, and a local project-memory knowledge graph, with permissions largely consistent with its stated purpose (network_http, file_write for local DB, browser control, process_spawn for native Chrome). Key items to review are the broad filesystem access for indexing local project roots and GitHub downloads, the auto-capture of search results into persistent memory, and the Codex hook that executes shell output processing, but the visible code shows no exfiltration or hardcoded secrets and the score reflects only moderate, purpose-aligned concerns. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.

6 files analyzed · 11 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

env_vars

Check that this permission is expected for this type of plugin.

process_spawn

Check that this permission is expected for this type of plugin.

database

Check that this permission is expected for this type of plugin.

clipboard

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

SearchApi API key. Required only for SearchApi primary or fallback modes.Required

Environment variable: SEARCH_API

Provider for search and search_parallel: browser, searchapi, or fallback. Defaults to browser.Optional

Environment variable: SURF_SEARCH_PROVIDER

Provider for scholar_search: browser, searchapi, or fallback. Defaults to browser.Optional

Environment variable: SURF_SCHOLAR_PROVIDER

Browser engine: auto, native, or playwright. Auto uses one hidden native Chrome broker shared across local MCP sessions.Optional

Environment variable: SURF_BROWSER_ENGINE

Absolute path to the Chrome binary. Auto-detected on Windows/macOS/Linux when omitted.Optional

Environment variable: CHROME_PATH

Directory for the warm Chrome profile. Defaults to ~/.google-surf-mcp.Optional

Environment variable: SURF_PROFILE_ROOT

Enable local project memory and hybrid retrieval. Defaults to true.Optional

Environment variable: SURF_RESEARCH

Shared route for search and search_parallel: live or hybrid. Defaults to hybrid.Optional

Environment variable: SURF_RETRIEVAL_MODE

Embedded SurrealDB data directory. Defaults to <profile>/research.Optional

Environment variable: SURF_RESEARCH_ROOT

Local model for HNSW retrieval and shared reranking. Defaults to Xenova/multilingual-e5-small; use off to disable.Optional

Environment variable: SURF_RESEARCH_VECTOR_MODEL

Disable ONNX CPU memory arena and memory pattern. Defaults to true.Optional

Environment variable: SURF_RESEARCH_VECTOR_LOW_MEMORY

ONNX intra-op thread count from 1 to 16. Defaults to 4.Optional

Environment variable: SURF_RESEARCH_VECTOR_THREADS

Sparse-index at most one eligible small GitHub repository per search call. Defaults to true.Optional

Environment variable: SURF_RESEARCH_REPO_AUTO

Maximum searchable repository source-text size in MB. Assets are excluded. Defaults to 20.Optional

Environment variable: SURF_RESEARCH_REPO_AUTO_MAX_MB

Maximum repository source file count for automatic indexing. Defaults to 2000.Optional

Environment variable: SURF_RESEARCH_REPO_AUTO_MAX_FILES

Shared research broker idle lifetime in milliseconds. Defaults to 60000.Optional

Environment variable: SURF_RESEARCH_BROKER_IDLE_MS

Maximum concurrent research broker reads. Defaults to 4.Optional

Environment variable: SURF_RESEARCH_READ_CONCURRENCY

Timeout per embedded SurrealDB query in milliseconds. Defaults to 120000; timed-out retrieval lanes are reported as partial.Optional

Environment variable: SURF_RESEARCH_QUERY_TIMEOUT_MS

Optional token that raises GitHub API limits for repository inspection.Required

Environment variable: GITHUB_TOKEN

Browser locale, e.g. en-US.Optional

Environment variable: SURF_LOCALE

IANA timezone, e.g. America/New_York. Defaults to system timezone.Optional

Environment variable: SURF_TZ

Controls Playwright extraction, compatibility, and recovery paths. Native search hides normal system Chrome and shows it only for CAPTCHA recovery.Optional

Environment variable: SURF_HEADLESS

Idle ms before closing the sequential ctx and pool. 0 disables idle auto-close. Defaults to 30000.Optional

Environment variable: SURF_IDLE_CLOSE_MS

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.Optional

Environment variable: SURF_ALLOW_PRIVATE

Enable the optional workflow-only LLM selector repair path. Defaults to false.Optional

Environment variable: SURF_LLM_HEAL

LLM selector repair provider: anthropic or orcarouter. Defaults to anthropic.Optional

Environment variable: SURF_LLM_PROVIDER

Optional model override. OrcaRouter defaults to orcarouter/auto.Optional

Environment variable: SURF_LLM_MODEL

Anthropic API key for optional LLM-assisted selector repair.Required

Environment variable: ANTHROPIC_API_KEY

OrcaRouter API key for optional LLM-assisted selector repair.Required

Environment variable: ORCAROUTER_API_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-harimxchoi-google-surf-mcp": {
      "env": {
        "SURF_TZ": "your-surf-tz-here",
        "SEARCH_API": "your-search-api-here",
        "CHROME_PATH": "your-chrome-path-here",
        "SURF_LOCALE": "your-surf-locale-here",
        "GITHUB_TOKEN": "your-github-token-here",
        "SURF_HEADLESS": "your-surf-headless-here",
        "SURF_LLM_HEAL": "your-surf-llm-heal-here",
        "SURF_RESEARCH": "your-surf-research-here",
        "SURF_LLM_MODEL": "your-surf-llm-model-here",
        "ANTHROPIC_API_KEY": "your-anthropic-api-key-here",
        "SURF_LLM_PROVIDER": "your-surf-llm-provider-here",
        "SURF_PROFILE_ROOT": "your-surf-profile-root-here",
        "ORCAROUTER_API_KEY": "your-orcarouter-api-key-here",
        "SURF_ALLOW_PRIVATE": "your-surf-allow-private-here",
        "SURF_IDLE_CLOSE_MS": "your-surf-idle-close-ms-here",
        "SURF_RESEARCH_ROOT": "your-surf-research-root-here",
        "SURF_BROWSER_ENGINE": "your-surf-browser-engine-here",
        "SURF_RETRIEVAL_MODE": "your-surf-retrieval-mode-here",
        "SURF_SEARCH_PROVIDER": "your-surf-search-provider-here",
        "SURF_SCHOLAR_PROVIDER": "your-surf-scholar-provider-here",
        "SURF_RESEARCH_REPO_AUTO": "your-surf-research-repo-auto-here",
        "SURF_RESEARCH_VECTOR_MODEL": "your-surf-research-vector-model-here",
        "SURF_RESEARCH_BROKER_IDLE_MS": "your-surf-research-broker-idle-ms-here",
        "SURF_RESEARCH_VECTOR_THREADS": "your-surf-research-vector-threads-here",
        "SURF_RESEARCH_QUERY_TIMEOUT_MS": "your-surf-research-query-timeout-ms-here",
        "SURF_RESEARCH_READ_CONCURRENCY": "your-surf-research-read-concurrency-here",
        "SURF_RESEARCH_REPO_AUTO_MAX_MB": "your-surf-research-repo-auto-max-mb-here",
        "SURF_RESEARCH_VECTOR_LOW_MEMORY": "your-surf-research-vector-low-memory-here",
        "SURF_RESEARCH_REPO_AUTO_MAX_FILES": "your-surf-research-repo-auto-max-files-here"
      },
      "args": [
        "-y",
        "google-surf-mcp"
      ],
      "command": "npx"
    }
  }
}

Reviews

No reviews yet

Be the first to review this server!