Skip to content

Commit 44f52c0

Browse files
committed
release: 0.6.7 — search nav-timeout fix (configurable, always await results)
1 parent 49a37e7 commit 44f52c0

4 files changed

Lines changed: 9 additions & 8 deletions

File tree

manifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"manifest_version": "0.3",
33
"name": "google-surf-mcp",
44
"display_name": "Google Surf",
5-
"version": "0.6.6",
5+
"version": "0.6.7",
66
"description": "Free Google search MCP that actually works — no API key, no proxies, no solvers. Search + extraction in one MCP.",
77
"long_description": "Free Google search MCP that actually works — no API key, no proxies, no solvers (most free Google search MCPs fail in practice; this one drives a warm Chrome profile via Playwright + stealth). Search + page extraction in one MCP: `search_extract` returns SERP results already enriched with article bodies — replaces the usual search-MCP + fetch-MCP combo. CAPTCHA opens a visible Chrome window for a human to solve (shared-IP reputation protection); `SURF_CLOUD_MODE=true` for headless/serverless fail-fast.",
88
"author": {
@@ -36,7 +36,7 @@
3636
"command": "npx",
3737
"args": [
3838
"-y",
39-
"google-surf-mcp@0.6.6"
39+
"google-surf-mcp@0.6.7"
4040
],
4141
"env": {
4242
"CHROME_PATH": "${user_config.chrome_path}",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "google-surf-mcp",
3-
"version": "0.6.6",
3+
"version": "0.6.7",
44
"mcpName": "io.github.HarimxChoi/google-surf-mcp",
55
"description": "MCP server for Google search via warm Chrome profile. No API key.",
66
"type": "module",

server.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
"url": "https://github.com/HarimxChoi/google-surf-mcp",
77
"source": "github"
88
},
9-
"version": "0.6.6",
9+
"version": "0.6.7",
1010
"packages": [
1111
{
1212
"registryType": "npm",
1313
"identifier": "google-surf-mcp",
14-
"version": "0.6.6",
14+
"version": "0.6.7",
1515
"transport": {
1616
"type": "stdio"
1717
},

src/search.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,14 @@ export async function search(
110110
await page.keyboard.press('Enter');
111111

112112
let waitErr: Error | null = null;
113+
const navTimeout = Number(process.env.SURF_NAV_TIMEOUT_MS) || 12_000;
113114
try {
114-
await page.waitForURL(u => u.href !== beforeUrl, { timeout: 5_000 });
115-
await page.waitForLoadState('domcontentloaded', { timeout: 4_000 });
116-
await page.waitForSelector('h3, #search, [id="rso"]', { timeout: 4_000 });
115+
await page.waitForURL(u => u.href !== beforeUrl, { timeout: navTimeout });
117116
} catch (e) {
118117
waitErr = e as Error;
119118
}
119+
await page.waitForLoadState('domcontentloaded', { timeout: 5_000 }).catch(() => {});
120+
await page.waitForSelector('h3, #search, [id="rso"]', { timeout: 8_000 }).catch(() => {});
120121

121122
if (await detectBlock(page)) throw new CaptchaError('after-search');
122123

0 commit comments

Comments
 (0)