{
    "$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": true
        }
    }
}