
Google Surf Mcp
A headless Chrome solution that runs real Google searches without API keys or proxies. Uses Playwright with a persistent browser profile to avoid rate limits, and drops sponsored results through geometric verification. Five tools cover sequential search, parallel batch queries, URL extraction with Mozilla Readability, and combined search-extract workflows. Academic PDFs from arXiv, Nature, PubMed and others get inline text extraction. When Google throws a CAPTCHA, it can pop open a visible Chrome window for manual solving, preserving the profile's reputation for future queries. Default abstract mode pulls 1500 chars per result for quick relevance checks before committing to full extraction. Designed for local desktop use but includes a cloud mode that fails fast instead of waiting on human intervention.
- GitHub stars
- 291
- tools
- 7
- auth
- Secret needed
- transport
- STDIO
- env vars
- 24
- last updated
- Nov 7, 2026
Tools
7 toolsPublic tool metadata for what this MCP can expose to an agent.
searchPrimary single-query tool for live discovery and reading of web sources.
Primary single-query tool for live discovery and reading of web sources.
No parameter schema in public metadata yet.
scholar_searchGoogle Scholar metadata search, max 10 papers.
Google Scholar metadata search, max 10 papers.
No parameter schema in public metadata yet.
search_parallelPrimary multi-query tool for broad live discovery and reading through a continuous four-tab queue.
Primary multi-query tool for broad live discovery and reading through a continuous four-tab queue.
No parameter schema in public metadata yet.
extractSecondary extraction tool for an exact public URL when no new discovery is required.
Secondary extraction tool for an exact public URL when no new discovery is required.
No parameter schema in public metadata yet.
project_memory_searchSearches stored local knowledge only, with query variants, RRF fusion, graph expansion and reranking.
Searches stored local knowledge only, with query variants, RRF fusion, graph expansion and reranking.
No parameter schema in public metadata yet.
project_memoryManages durable project knowledge through actions such as search, project_update, context, get, show, record, query_status, query_cancel and export.
Manages durable project knowledge through actions such as search, project_update, context, get, show, record, query_status, query_cancel and export.
No parameter schema in public metadata yet.
healthReturns server status, including the local research runtime.
Returns server status, including the local research runtime.
No parameter schema in public metadata yet.
Sponsors
Configuration
SEARCH_APIsecretSearchApi API key. Required only for SearchApi primary or fallback modes.
SURF_SEARCH_PROVIDERProvider for search and search_parallel: browser, searchapi, or fallback. Defaults to browser.
SURF_SCHOLAR_PROVIDERProvider for scholar_search: browser, searchapi, or fallback. Defaults to browser.
SURF_BROWSER_ENGINEBrowser engine: auto, native, or playwright. Auto uses one hidden native Chrome broker shared across local MCP sessions.
CHROME_PATHAbsolute path to the Chrome binary. Auto-detected on Windows/macOS/Linux when omitted.
SURF_PROFILE_ROOTDirectory for the warm Chrome profile. Defaults to ~/.google-surf-mcp.
SURF_RESEARCHEnable Google Surf Auto Ontology: local project memory, evidence capture, and hybrid retrieval. Defaults to true. The SURF_RESEARCH setting name is unchanged.
SURF_RETRIEVAL_MODEShared route for search and search_parallel: live or hybrid. Defaults to hybrid.
SURF_RESEARCH_ROOTEmbedded SurrealDB data directory. Defaults to <profile>/research.
SURF_RESEARCH_VECTOR_MODELLocal model for HNSW retrieval and shared reranking. Defaults to Xenova/multilingual-e5-small; use off to disable.
SURF_RESEARCH_VECTOR_LOW_MEMORYDisable ONNX CPU memory arena and memory pattern. Defaults to true.
SURF_RESEARCH_VECTOR_THREADSONNX intra-op thread count from 1 to 16. Defaults to 4.
SURF_RESEARCH_REPO_AUTOSparse-index at most one eligible small GitHub repository per search call. Defaults to true.
SURF_RESEARCH_REPO_AUTO_MAX_MBMaximum searchable repository source-text size in MB. Assets are excluded. Defaults to 20.
SURF_RESEARCH_REPO_AUTO_MAX_FILESMaximum repository source file count for automatic indexing. Defaults to 2000.
SURF_RESEARCH_BROKER_IDLE_MSShared Auto Ontology broker idle lifetime in milliseconds. Defaults to 60000.
SURF_RESEARCH_READ_CONCURRENCYMaximum concurrent Auto Ontology broker reads. Defaults to 4.
SURF_RESEARCH_QUERY_TIMEOUT_MSTimeout per embedded SurrealDB query in milliseconds. Defaults to 120000; timed-out retrieval lanes are reported as partial.
GITHUB_TOKENsecretOptional token that raises GitHub API limits for repository inspection.
SURF_LOCALEBrowser locale, e.g. en-US.
SURF_TZIANA timezone, e.g. America/New_York. Defaults to system timezone.
SURF_HEADLESSControls Playwright extraction, compatibility, and recovery paths. Native search hides normal system Chrome and shows it only for CAPTCHA recovery.
SURF_IDLE_CLOSE_MSIdle ms before closing the sequential ctx and pool. 0 disables idle auto-close. Defaults to 30000.
SURF_ALLOW_PRIVATESet 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.
Readme
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.
Details
- Repository
- github.com/harimxchoi/google-surf-mcp
- Categories
- AI & LLM Tools, Search & Web Crawling, Data & Analytics
- Package
google-surf-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active