{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.HarimxChoi/google-surf-mcp","description":"Google search via Playwright with a warm Chrome profile. No API key, no proxies.","repository":{"url":"https://github.com/HarimxChoi/google-surf-mcp","source":"github"},"version":"0.1.1","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.1.1","transport":{"type":"stdio"},"environmentVariables":[{"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":"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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-04-30T08:13:18.560498Z","publishedAt":"2026-04-30T08:13:18.560498Z","updatedAt":"2026-04-30T08:13:18.560498Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.HarimxChoi/google-surf-mcp","description":"Google search via Playwright with a warm Chrome profile. No API key, no proxies.","repository":{"url":"https://github.com/HarimxChoi/google-surf-mcp","source":"github"},"version":"0.2.0","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"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":"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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-05-01T00:12:13.636009Z","publishedAt":"2026-05-01T00:12:13.636009Z","updatedAt":"2026-05-01T00:12:13.636009Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.HarimxChoi/google-surf-mcp","description":"Google search via Playwright with a warm Chrome profile. No API key, no proxies.","repository":{"url":"https://github.com/HarimxChoi/google-surf-mcp","source":"github"},"version":"0.3.1","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.3.1","transport":{"type":"stdio"},"environmentVariables":[{"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":"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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-05-01T02:16:42.712973Z","publishedAt":"2026-05-01T02:16:42.712973Z","updatedAt":"2026-05-01T02:16:42.712973Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.HarimxChoi/google-surf-mcp","description":"Google search via Playwright with a warm Chrome profile. No API key, no proxies.","repository":{"url":"https://github.com/HarimxChoi/google-surf-mcp","source":"github"},"version":"0.3.2","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.3.2","transport":{"type":"stdio"},"environmentVariables":[{"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":"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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-05-01T02:45:08.539865Z","publishedAt":"2026-05-01T02:45:08.539865Z","updatedAt":"2026-05-01T02:45:08.539865Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.HarimxChoi/google-surf-mcp","description":"Google search via Playwright with a warm Chrome profile. No API key, no proxies.","repository":{"url":"https://github.com/HarimxChoi/google-surf-mcp","source":"github"},"version":"0.4.0","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.4.0","transport":{"type":"stdio"},"environmentVariables":[{"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":"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":"Set to 'false' to run Chrome visibly (demos/debugging). Defaults to true. CAPTCHA recovery always runs visible regardless.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-05-02T02:26:09.396959Z","publishedAt":"2026-05-02T02:26:09.396959Z","updatedAt":"2026-05-02T02:26:09.396959Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.HarimxChoi/google-surf-mcp","description":"Google search via Playwright with a warm Chrome profile. No API key, no proxies.","repository":{"url":"https://github.com/HarimxChoi/google-surf-mcp","source":"github"},"version":"0.4.6","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.4.6","transport":{"type":"stdio"},"environmentVariables":[{"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":"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":"Set to 'false' to run Chrome visibly (demos/debugging). Defaults to true. CAPTCHA recovery always runs visible regardless.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-05-15T02:32:14.620727Z","publishedAt":"2026-05-15T02:32:14.620727Z","updatedAt":"2026-05-15T02:32:14.620727Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.HarimxChoi/google-surf-mcp","description":"Google search via Playwright with a warm Chrome profile. No API key, no proxies.","repository":{"url":"https://github.com/HarimxChoi/google-surf-mcp","source":"github"},"version":"0.7.0","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.7.0","transport":{"type":"stdio"},"environmentVariables":[{"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":"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":"Set to 'false' to run Chrome visibly (demos/debugging). Defaults to true. CAPTCHA recovery always runs visible regardless.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-10T16:33:25.15069Z","publishedAt":"2026-07-10T16:33:25.15069Z","updatedAt":"2026-07-10T16:33:25.15069Z","isLatest":false}}},{"server":{"$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":"0.9.5","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.9.5","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 native system Chrome on local desktops.","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":"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":"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 uses minimized system Chrome.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-26T15:49:21.44263Z","publishedAt":"2026-08-26T15:49:21.44263Z","updatedAt":"2026-08-26T15:49:21.44263Z","isLatest":false}}},{"server":{"$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":"0.9.6","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.9.6","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 native system Chrome on local desktops.","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":"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":"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 uses minimized system Chrome.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-26T22:50:20.840135Z","publishedAt":"2026-08-26T22:50:20.840135Z","updatedAt":"2026-08-26T22:50:20.840135Z","isLatest":false}}},{"server":{"$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":"0.9.8","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.9.8","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 native system Chrome on local desktops.","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":"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":"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 uses minimized system Chrome.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-27T04:06:22.49725Z","publishedAt":"2026-08-27T04:06:22.49725Z","updatedAt":"2026-08-27T04:06:22.49725Z","isLatest":false}}},{"server":{"$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":"0.9.9","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"0.9.9","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 native system Chrome on local desktops.","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":"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":"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 uses minimized system Chrome.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-27T06:40:26.693693Z","publishedAt":"2026-08-27T06:40:26.693693Z","updatedAt":"2026-08-27T06:40:26.693693Z","isLatest":false}}},{"server":{"$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.0.0","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.0","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 native system Chrome on local desktops.","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":"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":"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 uses minimized system Chrome.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-28T05:06:25.659426Z","publishedAt":"2026-08-28T05:06:25.659426Z","updatedAt":"2026-08-28T05:06:25.659426Z","isLatest":false}}},{"server":{"$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.0.1","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.1","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 native system Chrome on local desktops.","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":"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":"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 uses minimized system Chrome.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-30T07:36:02.345726Z","publishedAt":"2026-08-30T07:36:02.345726Z","updatedAt":"2026-08-30T07:36:02.345726Z","isLatest":false}}},{"server":{"$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.0.10","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.10","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-10T11:03:38.364585Z","publishedAt":"2026-09-10T11:03:38.364585Z","updatedAt":"2026-09-10T11:03:38.364585Z","isLatest":false}}},{"server":{"$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.0.2","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.2","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 native system Chrome on local desktops.","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":"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":"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 uses minimized system Chrome.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-31T16:55:16.456301Z","publishedAt":"2026-08-31T16:55:16.456301Z","updatedAt":"2026-08-31T16:55:16.456301Z","isLatest":false}}},{"server":{"$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.0.3","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.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":"Embedded SurrealDB query timeout in milliseconds. Defaults to 30000.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-02T18:20:15.530994Z","publishedAt":"2026-09-02T18:20:15.530994Z","updatedAt":"2026-09-02T18:20:15.530994Z","isLatest":false}}},{"server":{"$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.0.4","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.4","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":"Embedded SurrealDB query timeout in milliseconds. Defaults to 30000.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-02T19:47:23.64743Z","publishedAt":"2026-09-02T19:47:23.64743Z","updatedAt":"2026-09-02T19:47:23.64743Z","isLatest":false}}},{"server":{"$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.0.5","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.5","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":"Embedded SurrealDB query timeout in milliseconds. Defaults to 30000.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-03T07:22:18.434046Z","publishedAt":"2026-09-03T07:22:18.434046Z","updatedAt":"2026-09-03T07:22:18.434046Z","isLatest":false}}},{"server":{"$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.0.6","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.6","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":"Embedded SurrealDB query timeout in milliseconds. Defaults to 30000.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-03T09:09:14.124765Z","publishedAt":"2026-09-03T09:09:14.124765Z","updatedAt":"2026-09-03T09:09:14.124765Z","isLatest":false}}},{"server":{"$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.0.7","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.7","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":"Embedded SurrealDB query timeout in milliseconds. Defaults to 30000.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-03T11:25:03.455407Z","publishedAt":"2026-09-03T11:25:03.455407Z","updatedAt":"2026-09-03T11:25:03.455407Z","isLatest":false}}},{"server":{"$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.0.8","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.8","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":"Embedded SurrealDB query timeout in milliseconds. Defaults to 30000.","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-03T12:45:38.667412Z","publishedAt":"2026-09-03T12:45:38.667412Z","updatedAt":"2026-09-03T12:45:38.667412Z","isLatest":false}}},{"server":{"$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.0.9","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.0.9","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-03T18:47:38.342994Z","publishedAt":"2026-09-03T18:47:38.342994Z","updatedAt":"2026-09-03T18:47:38.342994Z","isLatest":false}}},{"server":{"$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.1","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.1.1","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-10T14:16:51.53293Z","publishedAt":"2026-09-10T14:16:51.53293Z","updatedAt":"2026-09-10T14:16:51.53293Z","isLatest":false}}},{"server":{"$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.2","packages":[{"registryType":"npm","identifier":"google-surf-mcp","version":"1.1.2","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-10T16:31:43.961638Z","publishedAt":"2026-09-10T16:31:43.961638Z","updatedAt":"2026-09-10T16:31:43.961638Z","isLatest":false}}},{"server":{"$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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-10T17:09:09.363831Z","publishedAt":"2026-09-10T17:09:09.363831Z","updatedAt":"2026-09-10T17:09:09.363831Z","isLatest":true}}}],"metadata":{"count":25}}
