{ "name": "google-surf-mcp", "version": "1.1.3", "mcpName": "io.github.HarimxChoi/google-surf-mcp", "description": "Web, academic and code search with graph RAG, data lineage, ontology and cross-project schema links.", "type": "module", "bin": { "google-surf-mcp": "build/cli.js", "google-surf-collect": "build/collect.js", "google-surf-rerank": "build/rerankOutput.js" }, "files": [ "build", "assets/searchapi-banner.png", "examples", "vendor", "README.md", "LICENSE" ], "scripts": { "sync-versions": "node scripts/sync-versions.mjs", "prebuild": "npm run sync-versions", "build": "npm run build:core", "build:core": "node -e \"require('fs').rmSync('build',{recursive:true,force:true})\" && tsc && node -e \"for(const f of ['build/cli.js','build/index.js','build/collect.js','build/codexShellGuard.js','build/rerankOutput.js'])require('fs').chmodSync(f,'755')\"", "prepare": "npm run build", "watch": "tsc --watch", "bootstrap": "node build/bootstrap.js", "cache:clear": "node build/cache-clear.js", "start": "node build/index.js", "test": "vitest run", "test:watch": "vitest", "check:prereg": "node scripts/check-prereg.mjs", "research:reopen-probe": "node scripts/probe-research-reopen.mjs", "research:collect": "node build/collect.js", "research:storage-benchmark": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/benchmark-project-storage.js", "research:graph-benchmark": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/benchmark-graph-engines.js", "research:index-benchmark": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/benchmark-research-indexing.js", "research:code-benchmark": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/benchmark-code-indexing.js", "research:e2e-benchmark": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/benchmark-research-e2e.js", "research:evaluate": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/evaluate-research-memory.js", "research:vector-smoke": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/smoke-vector-retrieval.js", "research:vector-backends": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/benchmark-vector-backends.js", "research:memory-soak": "node scripts/soak-research-memory.mjs", "smoke:mcp": "node scripts/smoke-mcp.mjs", "smoke:hooks": "node scripts/smoke-host-hooks.mjs", "drift-check": "tsc -p tsconfig.scripts.json && node build-scripts/scripts/repair/index.js" }, "keywords": [ "mcp", "model-context-protocol", "google", "google-search", "google-scholar", "academic-search", "codebase-search", "graph-rag", "rag", "search", "web-search", "serp", "playwright", "headless-browser", "claude" ], "author": "harimxchoi", "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/HarimxChoi/google-surf-mcp.git" }, "homepage": "https://github.com/HarimxChoi/google-surf-mcp#readme", "bugs": { "url": "https://github.com/HarimxChoi/google-surf-mcp/issues" }, "engines": { "node": ">=20.18.1" }, "dependencies": { "@llamaindex/liteparse": "^2.0.8", "@modelcontextprotocol/sdk": "^1.20.0", "@mozilla/readability": "^0.6.0", "@surrealdb/node": "^3.0.3", "graphology": "^0.26.0", "graphology-communities-louvain": "^2.0.2", "graphology-components": "^1.5.4", "graphology-metrics": "^2.4.0", "graphology-shortest-path": "^2.1.0", "onnxruntime-common": "1.29.0", "onnxruntime-node": "1.29.0", "pdf-lib": "^1.17.1", "playwright": "^1.59.1", "playwright-extra": "^4.3.6", "puppeteer-extra-plugin-stealth": "^2.11.2", "sharp": "^0.35.4", "surrealdb": "^2.0.8", "tree-sitter": "^0.21.1", "tree-sitter-cpp": "^0.22.3", "tree-sitter-python": "^0.21.0", "tree-sitter-typescript": "^0.23.2", "turndown": "^7.2.4", "undici": "7.29.0", "zod": "^4.4.3" }, "devDependencies": { "@anthropic-ai/sdk": "^0.97.0", "@types/jsdom": "^21.1.7", "@types/node": "^20.17.10", "@types/turndown": "^5.0.6", "jsdom": "^25.0.1", "neo4j-driver": "^6.2.0", "typescript": "^5.3.3", "vite": "^6.4.3", "vitest": "^3.2.6" }, "main": "index.js", "directories": { "doc": "docs", "test": "test" } }