Back to Browse

Google Surf MCP Server

Developer ToolsUse Caution4.2MCP 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.2
Use Caution4.2High Risk

The google-surf-mcp server is a comprehensive web/academic search tool with local knowledge graph storage. While the architecture is sound and most permissions align with its research-focused purpose, there are moderate concerns around browser automation security, local database encryption, and some information disclosure risks through telemetry and error handling. The server requires careful deployment consideration, particularly around private network access and CAPTCHA recovery mechanisms. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.

3 files analyzed · 14 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.

system_info

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 native system Chrome on local desktops.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

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

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 uses minimized system Chrome.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

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_RESEARCH": "your-surf-research-here",
        "SURF_PROFILE_ROOT": "your-surf-profile-root-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_REPO_AUTO_MAX_MB": "your-surf-research-repo-auto-max-mb-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!