google-surf-mcp
Turn Google Search, Papers, and Codebases into an Automatic Local Knowledge Graph for AI Agents.
Google surf mcp turns searches into a local knowledge graph
Google surf mcp stores web searches, academic papers, and codebases in a project scoped local knowledge graph that AI agents can query without external servers.
What the tool does
Google surf mcp is a Model Context Protocol server that turns web searches, academic papers, and codebases into a project scoped local knowledge graph. The README states the design goal plainly: store search and extraction results in a knowledge graph that stays on the user's machine, with zero API key and zero external server required for the browser search path. As you search, the tool accumulates papers, code, web sources, session intent, plans, experiments, and decisions into a personal knowledge base. New searches then draw on both the stored knowledge and fresh web results, which reduces repeated work while still surfacing new information. Projects stay isolated by default. Only verifiable links such as matching DOIs, repository URLs, or explicit aliases are added across projects, so knowledge from one project can be reused in another without merging the original records. Retrieval runs several strategies independently, exact search, BM25, vector search, code search, and graph search, then combines them with reciprocal rank fusion and a shared reranker. The result carries evidence and provenance back to the source. Seven tools are available by default, including search, search_parallel, extract, scholar_search, project_memory_search, project_memory, and health. Research mode and automatic capture are on by default, and they can be turned off with an environment flag that keeps the server from opening the database or graph sidecar.
Search, extraction, and memory
The core feature set covers three kinds of input. Web, paper, and codebase search uses Google web search by default, with Scholar used for paper specific metadata, and SearchApi can be configured as an optional primary provider or fallback. Web and academic document extraction returns titles, authors, DOIs, publication metadata, and body text from HTML and PDF sources, and the search tools can include abstracts or full bodies. Automatic project memory captures search results, extracted bodies, and code repository context so later questions can be answered from prior work. The README shows the retrieval pipeline as live web plus papers plus codebases plus project memory flowing into exact, BM25, vector, code graph, and graph personalised pagerank signals, then through reciprocal rank fusion and a shared reranker. Browser search needs no API key, while SearchApi is optional. The seven default tools give an agent both live retrieval and memory management, and a health tool reports on the sidecar. Because projects are scoped, a single agent session can keep separate research efforts from contaminating each other. The export action can produce an HTML graph view of all projects, which the README illustrates with a project knowledge map. That graph is the concrete artefact the tool is named for, and it is rebuilt from the same store the retrieval path reads from.
Running it
Google surf mcp is distributed as an npm package, and the README carries npm version and download badges plus a CI badge. The simplest setup uses the default research mode, where the database and graph sidecar open automatically and the memory tools register with the MCP host. Setting the SURF_RESEARCH environment variable to false switches the server into a search and extraction only mode that does not open the database or graph sidecar, and in that mode the project memory tools are not registered. Browser based search works without any API key, which the README highlights as a zero credential path. SearchApi remains an optional provider for users who want a different backend or a fallback when the default search path is unavailable. Because the server speaks the Model Context Protocol, it attaches to any compliant agent host that can call the seven tools. The documentation points to an English README and a Korean translation, which indicates the maintainer expects a bilingual user base. The project also appears on MCP directories referenced by the badges, including a toplist and a Glama score badge. Deployment is therefore a matter of adding the package to an MCP capable client and, if desired, pointing it at SearchApi credentials. No external server is required for the local graph, which keeps the accumulated research data on the operator's own machine.
Editorial conclusion
The project is published under the MIT license and written in TypeScript, with its source at the HarimxChoi google surf mcp repository.
Community notes