{"_id":"@adenot/mcp-google-search","_rev":"6-bae297467cdcc0cc533b9da45ec2388b","name":"@adenot/mcp-google-search","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"@adenot/mcp-google-search","version":"0.1.0","_id":"@adenot/mcp-google-search@0.1.0","maintainers":[{"name":"adenot","email":"adenot@gmail.com"}],"bin":{"search-server":"build/index.js"},"dist":{"shasum":"c54d598b6d06ff3ffb81dbc6efe0591c0226cfdb","tarball":"https://registry.npmjs.org/@adenot/mcp-google-search/-/mcp-google-search-0.1.0.tgz","fileCount":4,"integrity":"sha512-1P3cMR0bIvgdjCp6QegWskvYdHDw0qkY15pMUPWdGVK0Tc+difv5kg6WCVXXScRPW6BfROytB9yJ53I8ej5W8w==","signatures":[{"sig":"MEQCIBRSPA9V/DiW+L0qfwqI1OAIOuV8gwYA1RWZf1Mgc1gdAiB2Fw1BeVo5fNVsyrsCTMxEPG7//CUsbU0jdvC9GYQ1QA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8425},"type":"module","gitHead":"c7ce0b2a53d409c6f538d5b198803b9012db7df6","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsc --watch","prepare":"npm run build","publish":"npm publish --access public","inspector":"npx @modelcontextprotocol/inspector build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"adenot","email":"adenot@gmail.com"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Google Search","directories":{},"_nodeVersion":"20.18.2","dependencies":{"axios":"^1.7.9","@modelcontextprotocol/sdk":"0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.24"},"_npmOperationalInternal":{"tmp":"tmp/mcp-google-search_0.1.0_1738378894417_0.3555644123752528","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adenot/mcp-google-search","version":"0.1.1","_id":"@adenot/mcp-google-search@0.1.1","maintainers":[{"name":"adenot","email":"adenot@gmail.com"}],"bin":{"mcp-google-search":"build/index.js"},"dist":{"shasum":"0ebcb6ed73f1f42fbb41fdcc66de1ca0fb3d4361","tarball":"https://registry.npmjs.org/@adenot/mcp-google-search/-/mcp-google-search-0.1.1.tgz","fileCount":4,"integrity":"sha512-n7cZumaYCOt9XHfmZ9qyRrGUriCvXHroN5KP8TIcuTTd/Sp/1lbRycylY1hfsa3QjQlbm5vpLTjh9amFe48u2Q==","signatures":[{"sig":"MEYCIQCq+yBEqQA8BCll764BqMocQgAdDYFmVLrFhwg4jPP3tQIhAJRMPee1AgQjrC7xTSl7mpXb9YE5a8IGOZr4YmHyLHC1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8462},"type":"module","gitHead":"a574d7e3a1a6d7afc885e6a9ec52a55e8c7031e2","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsc --watch","prepare":"npm run build","inspector":"npx @modelcontextprotocol/inspector build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"adenot","email":"adenot@gmail.com"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Google Search","directories":{},"_nodeVersion":"20.18.2","dependencies":{"axios":"^1.7.9","@modelcontextprotocol/sdk":"0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.24"},"_npmOperationalInternal":{"tmp":"tmp/mcp-google-search_0.1.1_1738379944761_0.09512692977544712","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@adenot/mcp-google-search","version":"0.1.2","_id":"@adenot/mcp-google-search@0.1.2","maintainers":[{"name":"adenot","email":"adenot@gmail.com"}],"bin":{"mcp-google-search":"build/index.js"},"dist":{"shasum":"f6ad95f2150bd9436df9eb42d1da88c4b043161c","tarball":"https://registry.npmjs.org/@adenot/mcp-google-search/-/mcp-google-search-0.1.2.tgz","fileCount":4,"integrity":"sha512-+jsWuWc5vcCCX1eCHOooyVije7y4/6ByrcPCJY7KuNEMRgDwPDtO5BVKX5Q61bkkQW0WT18BdIM1zyDB8yRMEQ==","signatures":[{"sig":"MEUCIQCueRvHmC04Nkx4ir0v9PRWElwgeDXJi/Sa5HPM7Mt7hAIgPldxUii3ZCU31dPyzYU6+n282wxQ/uCeTD8ViRifCP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8469},"type":"module","gitHead":"fc38ffe53bf535946e8aa3b5bb717699bb932a2b","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsc --watch","prepare":"npm run build","inspector":"npx @modelcontextprotocol/inspector build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"adenot","email":"adenot@gmail.com"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Google Search","directories":{},"_nodeVersion":"20.18.2","dependencies":{"axios":"^1.7.9","@modelcontextprotocol/sdk":"0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.24"},"_npmOperationalInternal":{"tmp":"tmp/mcp-google-search_0.1.2_1738384833660_0.007900169169148041","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@adenot/mcp-google-search","version":"0.2.0","_id":"@adenot/mcp-google-search@0.2.0","maintainers":[{"name":"adenot","email":"adenot@gmail.com"}],"bin":{"mcp-google-search":"build/index.js"},"dist":{"shasum":"ce0ce680bd24f29900d007d5eee58a52c5b52a5e","tarball":"https://registry.npmjs.org/@adenot/mcp-google-search/-/mcp-google-search-0.2.0.tgz","fileCount":4,"integrity":"sha512-kaJrRn/RXvyb8NW0AbtVbs+tQXEpiybYnvWQUuKolLTfs4T2+0Fr3aZCmFg7ausz+Cek0lZObHAUofqwqo0r8w==","signatures":[{"sig":"MEUCIHk4loOfNyqDM0KccKzjcGR4+l+XGy4VUYvaARShozM/AiEA+zugHf1xqPMuCcSNti66nXlCv0AW7YwIGLqTWVg4FX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8852},"type":"module","gitHead":"b523cb2cbf0a68a5c0a8fee78cdd445904713b71","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsc --watch","prepare":"npm run build","inspector":"npx @modelcontextprotocol/inspector build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"adenot","email":"adenot@gmail.com"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Google Search","directories":{},"_nodeVersion":"20.18.2","dependencies":{"axios":"^1.7.9","@modelcontextprotocol/sdk":"0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.24"},"_npmOperationalInternal":{"tmp":"tmp/mcp-google-search_0.2.0_1738485840976_0.04302229182095685","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@adenot/mcp-google-search","version":"0.2.1","_id":"@adenot/mcp-google-search@0.2.1","maintainers":[{"name":"adenot","email":"adenot@gmail.com"}],"bin":{"mcp-google-search":"build/index.js"},"dist":{"shasum":"27b166b9052c4c5d29cd9e67e9ea0acee0f74ff1","tarball":"https://registry.npmjs.org/@adenot/mcp-google-search/-/mcp-google-search-0.2.1.tgz","fileCount":4,"integrity":"sha512-1GxOYWttmhOL7M69oNrr67u3PpcMu2GxBOWBtEXNX3bGat5uXUNidYJCD7EU0oW80KFX+AolRVoaw9m2cRv5Mg==","signatures":[{"sig":"MEUCIQChUPMQyNVvMto8+N9tTpRwPWQ2nm86Aj7d0VEwoAcVZwIgRb2xPpb2UmzINiglxRWnp519QzRYrt6fSjgxdtucGKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12345},"type":"module","gitHead":"57e10cd04262c104ffb0d4d33cd94f048f66195c","scripts":{"build":"npx tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"npx tsc --watch","prepare":"npm run build","inspector":"npx @modelcontextprotocol/inspector build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"adenot","email":"adenot@gmail.com"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Google Search","directories":{},"_nodeVersion":"20.19.3","dependencies":{"axios":"^1.7.9","cheerio":"^1.0.0","@modelcontextprotocol/sdk":"0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.24"},"_npmOperationalInternal":{"tmp":"tmp/mcp-google-search_0.2.1_1753055421880_0.5587291386445445","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@adenot/mcp-google-search","version":"0.3.1","description":"A Model Context Protocol server for Google Search","type":"module","bin":{"mcp-google-search":"build/index.js"},"scripts":{"build":"npx tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"","prepare":"npm run build","watch":"npx tsc --watch","inspector":"npx @modelcontextprotocol/inspector build/index.js","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"0.6.0","axios":"^1.7.9","cheerio":"^1.0.0"},"devDependencies":{"@types/node":"^20.11.24","typescript":"^5.3.3"},"_id":"@adenot/mcp-google-search@0.3.1","gitHead":"ddbf0dbab75cdcf867a6ed63f0d5039a2288c5a6","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mdIbET+9FPxzSJ/LYp+c0fPiSsBNtdLpsvXokDF2UuGIdmwRgW7uKKsqaCCxM381IE2dYUWwzRhBnpCj3v0VYQ==","shasum":"a4f691283170e357b90720f4f52a49999e0ff0ff","tarball":"https://registry.npmjs.org/@adenot/mcp-google-search/-/mcp-google-search-0.3.1.tgz","fileCount":4,"unpackedSize":13423,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD4QkISdqfD6YEqwqK/cGdiiYThY3a+KMmb6V7bLaJaMQIhAIEKP2n6m7/46JK2C7sT7t3tEutH7OfcT1wMhoKL5t5S"}]},"_npmUser":{"name":"adenot","email":"adenot@gmail.com"},"directories":{},"maintainers":[{"name":"adenot","email":"adenot@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-google-search_0.3.1_1758701192119_0.9457322645939523"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-01T03:01:34.306Z","modified":"2025-09-24T08:06:32.485Z","0.1.0":"2025-02-01T03:01:34.607Z","0.1.1":"2025-02-01T03:19:05.065Z","0.1.2":"2025-02-01T04:40:33.846Z","0.2.0":"2025-02-02T08:44:01.147Z","0.2.1":"2025-07-20T23:50:22.063Z","0.3.1":"2025-09-24T08:06:32.291Z"},"description":"A Model Context Protocol server for Google Search","maintainers":[{"name":"adenot","email":"adenot@gmail.com"}],"readme":"# mcp-google-server A MCP Server for Google Custom Search and Webpage Reading\n[![smithery badge](https://smithery.ai/badge/@adenot/mcp-google-search)](https://smithery.ai/server/@adenot/mcp-google-search)\n\nA Model Context Protocol server that provides web search capabilities using Google Custom Search API and webpage content extraction functionality.\n\n## Setup\n\n### Getting Google API Key and Search Engine ID\n\n1. Create a Google Cloud Project:\n   - Go to [Google Cloud Console](https://console.cloud.google.com/)\n   - Create a new project or select an existing one\n   - Enable billing for your project\n\n2. Enable Custom Search API:\n   - Go to [API Library](https://console.cloud.google.com/apis/library)\n   - Search for \"Custom Search API\"\n   - Click \"Enable\"\n\n3. Get API Key:\n   - Go to [Credentials](https://console.cloud.google.com/apis/credentials)\n   - Click \"Create Credentials\" > \"API Key\"\n   - Copy your API key\n   - (Optional) Restrict the API key to only Custom Search API\n\n4. Create Custom Search Engine:\n   - Go to [Programmable Search Engine](https://programmablesearchengine.google.com/create/new)\n   - Enter the sites you want to search (use www.google.com for general web search)\n   - Click \"Create\"\n   - On the next page, click \"Customize\"\n   - In the settings, enable \"Search the entire web\"\n   - Copy your Search Engine ID (cx)\n\n## Development\n\nInstall dependencies:\n```bash\nnpm install\n```\n\nBuild the server:\n```bash\nnpm run build\n```\n\nFor development with auto-rebuild:\n```bash\nnpm run watch\n```\n\n## Features\n\n### Search Tool\nPerform web searches using Google Custom Search API:\n- Search the entire web or specific sites\n- Control number of results (1-10)\n- Get structured results with title, link, and snippet\n\n### Webpage Reader Tool\nExtract content from any webpage:\n- Fetch and parse webpage content\n- Extract page title and main text\n- Clean content by removing scripts and styles\n- Return structured data with title, text, and URL\n\n## Installation\n\n### Installing via Smithery\n\nTo install Google Custom Search Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@adenot/mcp-google-search):\n\n```bash\nnpx -y @smithery/cli install @adenot/mcp-google-search --client claude\n```\n\nTo use with Claude Desktop, add the server config with your Google API credentials:\n\nOn MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\nOn Windows: `%APPDATA%/Claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"google-search\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@adenot/mcp-google-search\"\n      ],\n      \"env\": {\n        \"GOOGLE_API_KEY\": \"your-api-key-here\",\n        \"GOOGLE_SEARCH_ENGINE_ID\": \"your-search-engine-id-here\"\n      }\n    }\n  }\n}\n```\n\n## Usage\n\n### Search Tool\n```json\n{\n  \"name\": \"search\",\n  \"arguments\": {\n    \"query\": \"your search query\",\n    \"num\": 5  // optional, default is 5, max is 10\n  }\n}\n```\n\n### Webpage Reader Tool\n```json\n{\n  \"name\": \"read_webpage\",\n  \"arguments\": {\n    \"url\": \"https://example.com\"\n  }\n}\n```\n\nExample response from webpage reader:\n```json\n{\n  \"title\": \"Example Domain\",\n  \"text\": \"Extracted and cleaned webpage content...\",\n  \"url\": \"https://example.com\"\n}\n```\n\n### Debugging\n\nSince MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:\n\n```bash\nnpm run inspector\n```\n\nThe Inspector will provide a URL to access debugging tools in your browser.\n","readmeFilename":"README.md"}