AI Skill Hub 强烈推荐:google-surf-mcp MCP工具 是一款优质的MCP工具。AI 综合评分 8.2 分,在同类工具中表现稳健。如果你正在寻找可靠的MCP工具解决方案,这是一个值得深入了解的选择。
无需API密钥的开源MCP工具,集成Google搜索、网页抓取和学术论文检索功能。一个MCP替代传统的搜索、获取和学术工具组合,适合需要集成搜索能力的Claude应用开发者。
google-surf-mcp MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
无需API密钥的开源MCP工具,集成Google搜索、网页抓取和学术论文检索功能。一个MCP替代传统的搜索、获取和学术工具组合,适合需要集成搜索能力的Claude应用开发者。
google-surf-mcp MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/HarimxChoi/google-surf-mcp
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"google-surf-mcp-mcp--": {
"command": "npx",
"args": ["-y", "google-surf-mcp"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 google-surf-mcp MCP工具 执行以下任务... Claude: [自动调用 google-surf-mcp MCP工具 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"google-surf-mcp_mcp__": {
"command": "npx",
"args": ["-y", "google-surf-mcp"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
<img src="./assets/icon256.png" width="128" align="right" alt="google-surf-mcp"/>
search and search_parallel can include abstracts or full bodies.Requires Node 20.18.1+. Browser mode also requires Google Chrome or Chromium.
npx google-surf-mcp # actual MCP - register in client config
First tool call auto-bootstraps the warm profile (you may see Chrome open briefly).
Or local clone:
git clone https://github.com/HarimxChoi/google-surf-mcp
cd google-surf-mcp
npm install
If auto-bootstrap fails (rare), run it manually:
npm run bootstrap
Override paths if needed:
CHROME_PATH=/path/to/chrome SURF_TZ=America/New_York npm run bootstrap
Google Surf can install an opt-in Codex hook that ranks oversized Bash output before it reaches the model. The host still executes the command; the hook only applies stateless source-order, exact, and BM25 ranking with RRF. It opens neither the Google Surf database nor a browser and does not store command output.
npx -y google-surf-mcp@latest hooks install --host codex
Restart Codex, then open /hooks to review and trust the definitions. Shell output larger than 6,000 characters is reranked and capped per result, without a cumulative per-turn command or output limit. Two identical or near-duplicate searches and explicit foreground polling loops are blocked. Existing write_stdin polls for an already-running unified command remain controlled by the Codex runtime, not this hook.
npx -y google-surf-mcp@latest hooks status --host codex
npx -y google-surf-mcp@latest hooks update --host codex
npx -y google-surf-mcp@latest hooks uninstall --host codex
| var | default | notes |
|---|---|---|
SEARCH_API | unset | SearchApi API key. Required only when either provider setting is searchapi or fallback. Sent as a bearer token and never placed in the request URL. |
SEARCHAPI_API_KEY | unset | Alias for SEARCH_API. |
SURF_SEARCH_PROVIDER | browser | Provider for search and search_parallel: browser, searchapi, or fallback. |
SURF_SCHOLAR_PROVIDER | browser | Provider for scholar_search: browser, searchapi, or fallback. |
SURF_BROWSER_ENGINE | auto | Browser engine: auto, native, or playwright. Native Chrome performs the request before read-only CDP attachment. |
CHROME_PATH | auto-detected | absolute path to Chrome binary |
SURF_PROFILE_ROOT | ~/.google-surf-mcp | where the warm profile lives |
SURF_RESEARCH | true | enables local project memory, capture, indexing, project_memory_search, and project_memory; set false for search and extraction only |
SURF_RETRIEVAL_MODE | hybrid | research search route: live or hybrid; used only when SURF_RESEARCH=true |
SURF_RESEARCH_ROOT | <profile>/research | embedded SurrealDB data directory |
SURF_RESEARCH_VECTOR_MODEL | Xenova/multilingual-e5-small | local 384-dimensional model used by HNSW vector retrieval and final reranking. The default model revision is pinned; off disables the vector lane. |
SURF_RESEARCH_VECTOR_LOW_MEMORY | true | disables the ONNX CPU memory arena and memory pattern; set false to trade higher peak memory for faster initial indexing |
SURF_RESEARCH_VECTOR_THREADS | 4 | ONNX intra-op thread count, clamped to 1-16 |
SURF_RESEARCH_REPO_AUTO | true | automatically sparse-index at most one small, relevant GitHub repository per search call |
SURF_RESEARCH_REPO_AUTO_MAX_MB | 20 | maximum searchable source-text size for automatic GitHub indexing; assets are excluded |
SURF_RESEARCH_REPO_AUTO_MAX_FILES | 2000 | maximum searchable source file count for automatic GitHub indexing |
SURF_RESEARCH_BROKER_IDLE_MS | 60000 | how long the shared research broker remains available after the last client disconnects |
SURF_RESEARCH_READ_CONCURRENCY | 4 | maximum concurrent broker reads; identical in-flight reads share one operation |
SURF_RESEARCH_QUERY_TIMEOUT_MS | 120000 | timeout per embedded SurrealDB query, clamped to 1-600 seconds; a timed-out retrieval lane is reported as partial while other lanes still return |
GITHUB_TOKEN | unset | optional GitHub token that raises API limits for repository inspection |
SURF_RESEARCH_CODE_WORKERS | auto, max 4 | Tree-sitter worker count for initial code structure indexing |
SURF_LOCALE | en-US | browser locale |
SURF_TZ | system tz | e.g. America/New_York |
SURF_HEADLESS | true | Controls Playwright extraction, compatibility, and recovery paths. Native search keeps a normal system Chrome window hidden and shows it only for CAPTCHA recovery. |
SURF_REMOTE_DEBUG | false | set true on a headless server with remote DevTools. CAPTCHA path emits the DevTools port and throws instead of spawning a window; attach chrome://inspect from a local machine over SSH port-forward to solve. |
SURF_CAPTCHA_TIMEOUT_MS | 180000 | lifetime of the background human-recovery window. MCP calls return immediately and do not wait for this timeout. |
SURF_IDLE_CLOSE_MS | 30000 | idle ms before closing the sequential ctx and pool. 0 disables idle auto-close. Lower = faster cleanup, higher = warmer cache for spaced-out calls. |
SURF_ALLOW_PRIVATE | false | set true to allow extract to fetch private/loopback addresses (localhost, 127.0.0.1, 10.x, 192.168.x, 169.254.x, etc). Default blocks them as an SSRF guard. |
SURF_EXTRACT_MAX_CHARS | 50000 | full extraction limit (200-50000); abstract defaults to 1500 and per-call max_chars overrides both |
SURF_EXTRACT_OCR | false | OCR scanned/image PDFs via Tesseract (slower; off by default) |
SURF_CLOUD_MODE | false | headless/serverless mode: TLS bypass + --no-sandbox + --disable-dev-shm-usage + worker pool disabled + fail-fast on CAPTCHA |
SURF_CASCADE_DISABLED | false | pin a single stealth mode (chosen by SURF_USE_STEALTH) instead of the 3-tier auto-cascade |
SURF_USE_STEALTH | true | initial stealth tier; only consulted when SURF_CASCADE_DISABLED=true |
SURF_HUMANLIKE_MODE | background | off / background (fire-and-forget after returning results) / inline (await before returning, slower) |
SURF_RATE_LIMIT_PER_MIN | 10 | internal cap on Google-facing requests per minute |
SURF_CACHE_TTL_SEARCH_MS | 86400000 | search cache TTL (24h); 0 disables caching |
SURF_CACHE_MAX_ENTRIES | 1000 | LRU cap per cache namespace |
SURF_CACHE_ROOT | <profile>/cache | cache directory |
SURF_INSECURE_TLS | =SURF_CLOUD_MODE | --ignore-certificate-errors (auto-on in cloud mode) |
SURF_NO_SANDBOX | =SURF_CLOUD_MODE | --no-sandbox (auto-on in cloud mode) |
SURF_TELEMETRY | false | set true to enable jsonl event logging (search outcomes, cache hits/misses, tool errors, parser staleness) under {SURF_TELEMETRY_ROOT}. Designed as the input feed for the self-healing pipeline. Off by default. |
SURF_TELEMETRY_ROOT | <profile>/telemetry | directory for jsonl telemetry files. UTC-dated one file per day (YYYY-MM-DD.jsonl). |
SURF_SELF_HEALING | true | per-strategy outcome tracking + persisted reordering. Healing must win by 3 outcomes before reorder kicks in, so single-call flapping is impossible. Set false to pin the default strategy order. |
SURF_SELF_HEALING_FILE | <profile>/.heal/strategy-order.json | persistence path for healing state. Atomic tmp+rename writes; debounced 5s. |
SURF_LLM_HEAL | false | opt-in for LLM-assisted selector repair in the workflow-only repairWithLLM helper. Off by default, so no third-party LLM request fires. |
SURF_LLM_PROVIDER | anthropic | LLM repair provider: anthropic or orcarouter. |
SURF_LLM_MODEL | provider default | model for LLM-assisted repair. Defaults to claude-sonnet-4-6 for Anthropic and orcarouter/auto for OrcaRouter. |
ANTHROPIC_API_KEY | unset | Anthropic key used only when LLM repair is enabled with the Anthropic provider. |
ORCAROUTER_API_KEY | unset | OrcaRouter key used only when LLM repair is enabled with the OrcaRouter provider. |
ORCA_KEY | unset | Alias for ORCAROUTER_API_KEY. |
SURF_SEARCH_PROVIDER=fallback and SURF_SCHOLAR_PROVIDER=fallback.SURF_HEADLESS=false: headed Chrome opens without a notification; solve it and retrySURF_REMOTE_DEBUG=true: DevTools port + instructions printed, attach chrome://inspect locally to solveSURF_CLOUD_MODE=true: fail-fast with CAPTCHA_REQUIRED errorCHROME_PATH.SURF_SELF_HEALING, deterministic) plus a manually dispatched repair workflow (SURF_LLM_HEAL optional, human review required, never auto-merged).health().pool.fallback. true means the worker pool is using a single context. Native search uses one authenticated local browser broker across MCP sessions. The broker keeps one hidden Chrome process with up to four reusable tabs for search, search_parallel, and scholar_search. Query starts are staggered. A CAPTCHA shows and preserves that session for user recovery, then the window guard is restored on the next call. A browser crash starts a new session on the next call.extract blocks localhost, private IPs, AWS metadata by default. Set SURF_ALLOW_PRIVATE=true to allow them.npm run cache:clear removes search/extract and downloaded vector-model caches. It does not remove the research DB.集合搜索、抓取、论文三大功能于一身的MCP工具,消除API依赖,开箱即用,是Claude应用的优质扩展方案。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
总体来看,google-surf-mcp MCP工具 是一款质量优秀的MCP工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | google-surf-mcp |
| 原始描述 | 开源MCP工具:Google search MCP. No API key. One MCP replaces search + fetch + academic-paper 。⭐173 · TypeScript |
| Topics | Google搜索MCP协议无需密钥网页抓取学术论文 |
| GitHub | https://github.com/HarimxChoi/google-surf-mcp |
| License | MIT |
| 语言 | TypeScript |
收录时间:2026-05-18 · 更新时间:2026-05-19 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端