MCPLow riskUnclaimed
google-surf-mcp
Web, academic and code search with graph RAG, data lineage, ontology and cross-project schema links.
HarimxChoiharimxchoi/google-surf-mcp
server.json
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.HarimxChoi/google-surf-mcp",
"description": "Web, academic and code search with graph RAG, data lineage, ontology and cross-project schema links.",
"repository": {
"url": "https://github.com/HarimxChoi/google-surf-mcp",
"source": "github"
},
"version": "1.1.3",
"packages": [
{
"registryType": "npm",
"identifier": "google-surf-mcp",
"version": "1.1.3",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "SearchApi API key. Required only for SearchApi primary or fallback modes.",
"format": "string",
"isSecret": true,
"name": "SEARCH_API"
},
{
"description": "Provider for search and search_parallel: browser, searchapi, or fallback. Defaults to browser.",
"format": "string",
"name": "SURF_SEARCH_PROVIDER"
},
{
"description": "Provider for scholar_search: browser, searchapi, or fallback. Defaults to browser.",
"format": "string",
"name": "SURF_SCHOLAR_PROVIDER"
},
{
"description": "Browser engine: auto, native, or playwright. Auto uses one hidden native Chrome broker shared across local MCP sessions.",
"format": "string",
"name": "SURF_BROWSER_ENGINE"
},
{
"description": "Absolute path to the Chrome binary. Auto-detected on Windows/macOS/Linux when omitted.",
"format": "string",
"name": "CHROME_PATH"
},
{
"description": "Directory for the warm Chrome profile. Defaults to ~/.google-surf-mcp.",
"format": "string",
"name": "SURF_PROFILE_ROOT"
},
{
"description": "Enable local project memory and hybrid retrieval. Defaults to true.",
"format": "string",
"name": "SURF_RESEARCH"
},
{
"description": "Shared route for search and search_parallel: live or hybrid. Defaults to hybrid.",
"format": "string",
"name": "SURF_RETRIEVAL_MODE"
},
{
"description": "Embedded SurrealDB data directory. Defaults to <profile>/research.",
"format": "string",
"name": "SURF_RESEARCH_ROOT"
},
{
"description": "Local model for HNSW retrieval and shared reranking. Defaults to Xenova/multilingual-e5-small; use off to disable.",
"format": "string",
"name": "SURF_RESEARCH_VECTOR_MODEL"
},
{
"description": "Disable ONNX CPU memory arena and memory pattern. Defaults to true.",
"format": "string",
"name": "SURF_RESEARCH_VECTOR_LOW_MEMORY"
},
{
"description": "ONNX intra-op thread count from 1 to 16. Defaults to 4.",
"format": "string",
"name": "SURF_RESEARCH_VECTOR_THREADS"
},
{
"description": "Sparse-index at most one eligible small GitHub repository per search call. Defaults to true.",
"format": "string",
"name": "SURF_RESEARCH_REPO_AUTO"
},
{
"description": "Maximum searchable repository source-text size in MB. Assets are excluded. Defaults to 20.",
"format": "string",
"name": "SURF_RESEARCH_REPO_AUTO_MAX_MB"
},
{
"description": "Maximum repository source file count for automatic indexing. Defaults to 2000.",
"format": "string",
"name": "SURF_RESEARCH_REPO_AUTO_MAX_FILES"
},
{
"description": "Shared research broker idle lifetime in milliseconds. Defaults to 60000.",
"format": "string",
"name": "SURF_RESEARCH_BROKER_IDLE_MS"
},
{
"description": "Maximum concurrent research broker reads. Defaults to 4.",
"format": "string",
"name": "SURF_RESEARCH_READ_CONCURRENCY"
},
{
"description": "Timeout per embedded SurrealDB query in milliseconds. Defaults to 120000; timed-out retrieval lanes are reported as partial.",
"format": "string",
"name": "SURF_RESEARCH_QUERY_TIMEOUT_MS"
},
{
"description": "Optional token that raises GitHub API limits for repository inspection.",
"format": "string",
"isSecret": true,
"name": "GITHUB_TOKEN"
},
{
"description": "Browser locale, e.g. en-US.",
"format": "string",
"name": "SURF_LOCALE"
},
{
"description": "IANA timezone, e.g. America/New_York. Defaults to system timezone.",
"format": "string",
"name": "SURF_TZ"
},
{
"description": "Controls Playwright extraction, compatibility, and recovery paths. Native search hides normal system Chrome and shows it only for CAPTCHA recovery.",
"format": "string",
"name": "SURF_HEADLESS"
},
{
"description": "Idle ms before closing the sequential ctx and pool. 0 disables idle auto-close. Defaults to 30000.",
"format": "string",
"name": "SURF_IDLE_CLOSE_MS"
},
{
"description": "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.",
"format": "string",
"name": "SURF_ALLOW_PRIVATE"
},
{
"description": "Enable the optional workflow-only LLM selector repair path. Defaults to false.",
"format": "string",
"name": "SURF_LLM_HEAL"
},
{
"description": "LLM selector repair provider: anthropic or orcarouter. Defaults to anthropic.",
"format": "string",
"name": "SURF_LLM_PROVIDER"
},
{
"description": "Optional model override. OrcaRouter defaults to orcarouter/auto.",
"format": "string",
"name": "SURF_LLM_MODEL"
},
{
"description": "Anthropic API key for optional LLM-assisted selector repair.",
"format": "string",
"isSecret": true,
"name": "ANTHROPIC_API_KEY"
},
{
"description": "OrcaRouter API key for optional LLM-assisted selector repair.",
"format": "string",
"isSecret": true,
"name": "ORCAROUTER_API_KEY"
}
]
}
]
}Permissions
DeclaredDetected
Runs code—
nodeInstalls—
npm:google-surf-mcp@1.1.3Runs install scripts—None
NetworkNoneNone
Needs credentials
ANTHROPIC_API_KEYGITHUB_TOKENORCAROUTER_API_KEYSEARCH_APIANTHROPIC_API_KEYGITHUB_TOKENORCAROUTER_API_KEYSEARCH_APIOutside the workspace—None
Agent tools—None
Checks
Low risk · Nothing worth a warning was found.
Not reviewed by a person · Checked by rules; the model review is not switched on yet.
Versions
- #11.1.3latestOct 7, 2026
google-surf-mcpOpen in Codeg