{"_id":"@disruptorganic/mcp-gsc","_rev":"7-dfccb9ed4f8ede8f6b703514977b73b3","name":"@disruptorganic/mcp-gsc","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@disruptorganic/mcp-gsc","version":"0.1.0","keywords":["mcp","google-search-console","model-context-protocol","claude","claude-code","search-console","seo","analytics","gsc"],"author":{"url":"https://disruptorganic.com","name":"Zac Almeida","email":"zac@disruptorganic.com"},"license":"MIT","_id":"@disruptorganic/mcp-gsc@0.1.0","maintainers":[{"name":"zacalmeida","email":"me@zacalmeida.com"}],"homepage":"https://github.com/DisruptOrganic/mcp-gsc#readme","bugs":{"url":"https://github.com/DisruptOrganic/mcp-gsc/issues"},"bin":{"mcp-gsc":"dist/setup.js"},"dist":{"shasum":"7c90ac9d75424bc19f7b6b6e4394b9005635e146","tarball":"https://registry.npmjs.org/@disruptorganic/mcp-gsc/-/mcp-gsc-0.1.0.tgz","fileCount":15,"integrity":"sha512-ep4cRQ+ZTiXFzZVJGqf5uSz50v6z7Ncg1Yk5wgeWg9FdHiyj0bdA3iNiJlZWtSkLiEVTSFOrZmqWPRAJHhd1rw==","signatures":[{"sig":"MEUCIA3hxqyvQWDaw/CE5M5MmwdfaBJJGQqdSek7PXnDq5rIAiEA/fMd0FK6xCD4g7osZ2LkuhYsE6cbvl73FjMnDeQN4Tw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48964},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b86444f3f385b58cd0468bfc5af686d855e8caad","scripts":{"dev":"tsc && node dist/index.js","auth":"tsc && node dist/authenticate.js","build":"tsc","setup":"tsc && node dist/setup.js","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"zacalmeida","email":"me@zacalmeida.com"},"repository":{"url":"git+https://github.com/DisruptOrganic/mcp-gsc.git","type":"git"},"_npmVersion":"11.6.2","description":"MCP server for Google Search Console API - query your Search Console data through Claude Code CLI and other AI tools","directories":{},"_nodeVersion":"24.11.1","dependencies":{"googleapis":"^144.0.0","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gsc_0.1.0_1763227859176_0.42803095735976315","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package has authentication issues with OAuth device flow. Use the fixed version when available or install from source: https://github.com/DisruptOrganic/mcp-gsc"},"0.1.1":{"name":"@disruptorganic/mcp-gsc","version":"0.1.1","keywords":["mcp","google-search-console","model-context-protocol","claude","claude-code","search-console","seo","analytics","gsc"],"author":{"url":"https://disruptorganic.com","name":"Zac Almeida","email":"zac@disruptorganic.com"},"license":"MIT","_id":"@disruptorganic/mcp-gsc@0.1.1","maintainers":[{"name":"zacalmeida","email":"me@zacalmeida.com"}],"homepage":"https://github.com/DisruptOrganic/mcp-gsc#readme","bugs":{"url":"https://github.com/DisruptOrganic/mcp-gsc/issues"},"bin":{"mcp-gsc":"dist/setup.js"},"dist":{"shasum":"b764e70b149145ee8053affbc976a66747db4ba4","tarball":"https://registry.npmjs.org/@disruptorganic/mcp-gsc/-/mcp-gsc-0.1.1.tgz","fileCount":15,"integrity":"sha512-OjqxRgL7pgVwMT6jDV0YoH/0/cc+iHvmSze3Ok3mcsK8OtzsH+QiieqsNImxrMdS021JbKzMAQQMn+JR1gkK9Q==","signatures":[{"sig":"MEUCIAffBJvw+6v3yXQYA5WyGc3rjCQhgBEE13oe+wH5tXtvAiEAwUHgDSzhtotjxcm4bAfQ/TaZqt0TtMi0dvOgmGELf5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52117},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8f26f2f1f41c478bbe8ac221fa0dca83ac9e4078","scripts":{"dev":"tsc && node dist/index.js","auth":"tsc && node dist/authenticate.js","build":"tsc","setup":"tsc && node dist/setup.js","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"zacalmeida","email":"me@zacalmeida.com"},"repository":{"url":"git+https://github.com/DisruptOrganic/mcp-gsc.git","type":"git"},"_npmVersion":"11.6.2","description":"MCP server for Google Search Console API - query your Search Console data through Claude Code CLI and other AI tools","directories":{},"_nodeVersion":"24.11.1","dependencies":{"googleapis":"^144.0.0","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gsc_0.1.1_1763229476617_0.16885607425611027","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package has authentication issues with OAuth device flow. Use the fixed version when available or install from source: https://github.com/DisruptOrganic/mcp-gsc"},"0.1.2":{"name":"@disruptorganic/mcp-gsc","version":"0.1.2","keywords":["mcp","google-search-console","model-context-protocol","claude","claude-code","search-console","seo","analytics","gsc"],"author":{"url":"https://disruptorganic.com","name":"Zac Almeida","email":"zac@disruptorganic.com"},"license":"MIT","_id":"@disruptorganic/mcp-gsc@0.1.2","maintainers":[{"name":"zacalmeida","email":"me@zacalmeida.com"}],"homepage":"https://github.com/DisruptOrganic/mcp-gsc#readme","bugs":{"url":"https://github.com/DisruptOrganic/mcp-gsc/issues"},"bin":{"mcp-gsc":"dist/setup.js"},"dist":{"shasum":"3a06609b8964802247fdd4b9a67d4ff54b2a1ace","tarball":"https://registry.npmjs.org/@disruptorganic/mcp-gsc/-/mcp-gsc-0.1.2.tgz","fileCount":15,"integrity":"sha512-iWv4Qq4Aw0kwWCBM+lS5h2BhKsVJ6gCytA7tJKgGQgGum2kxIEX1B5HxuF5yz3TC2SSK3L6Yme53PE+g7C8giQ==","signatures":[{"sig":"MEYCIQC773OD2TReOQymtpvL3HPbtXjiYIZh3HnHkTLuiEhSCAIhAMIObHVNsx1xIldCpKaK0/HLigQnRnqi9uhq6UCE5rXt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52244},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5da2000c3d124442b0a20c6be707271d3b2e18dd","scripts":{"dev":"tsc && node dist/index.js","auth":"tsc && node dist/authenticate.js","build":"tsc","setup":"tsc && node dist/setup.js","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"zacalmeida","email":"me@zacalmeida.com"},"repository":{"url":"git+https://github.com/DisruptOrganic/mcp-gsc.git","type":"git"},"_npmVersion":"11.6.2","description":"MCP server for Google Search Console API - query your Search Console data through Claude Code CLI and other AI tools","directories":{},"_nodeVersion":"24.11.1","dependencies":{"googleapis":"^144.0.0","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-gsc_0.1.2_1763235362083_0.4639376974577454","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package has authentication issues with OAuth device flow. Use the fixed version when available or install from source: https://github.com/DisruptOrganic/mcp-gsc"}},"time":{"created":"2025-11-15T17:30:58.992Z","modified":"2025-11-19T01:32:20.170Z","1.0.0":"2025-11-15T02:39:53.607Z","0.1.0":"2025-11-15T17:30:59.373Z","0.1.1":"2025-11-15T17:57:56.837Z","0.1.2":"2025-11-15T19:36:02.280Z"},"bugs":{"url":"https://github.com/DisruptOrganic/mcp-gsc/issues"},"author":{"url":"https://disruptorganic.com","name":"Zac Almeida","email":"zac@disruptorganic.com"},"license":"MIT","homepage":"https://github.com/DisruptOrganic/mcp-gsc#readme","keywords":["mcp","google-search-console","model-context-protocol","claude","claude-code","search-console","seo","analytics","gsc"],"repository":{"url":"git+https://github.com/DisruptOrganic/mcp-gsc.git","type":"git"},"description":"MCP server for Google Search Console API - query your Search Console data through Claude Code CLI and other AI tools","maintainers":[{"name":"zacalmeida","email":"me@zacalmeida.com"}],"readme":"# Google Search Console MCP Server\n\nA Model Context Protocol (MCP) server for Google Search Console API. This server allows you to query your Search Console data directly through Claude Code CLI.\n\n## Features\n\nThis MCP server provides three main tools:\n\n1. **gsc_list_sites** - List all verified sites in your Google Search Console account\n2. **gsc_search_analytics** - Query search analytics data (clicks, impressions, CTR, position)\n3. **gsc_inspect_url** - Inspect a URL's indexing status in Google Search\n\n### Automatic Response Splitting\n\nThe server automatically handles large responses that exceed Claude Code CLI's 25k token input limit. When a response is too large:\n\n- Data is intelligently split into multiple parts (keeping responses under 20k tokens each)\n- Each part includes metadata showing which part you're viewing (e.g., \"Part 1 of 3\")\n- Array data (like search analytics rows) is split logically to maintain data integrity\n- You'll see all parts of the response displayed sequentially\n\n## Quick Start (Automated Setup)\n\n### Method 1: One-Line Installation (Recommended)\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/DisruptOrganic/mcp-gsc/main/install.sh | bash\n```\n\nThis will automatically:\n1. Download and install the MCP server\n2. Build the project\n3. Walk you through authentication\n4. Detect available AI CLIs (Claude Code, Claude Desktop, etc.)\n5. Install to your selected AI tools with scope options\n\n### Method 2: Clone and Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/DisruptOrganic/mcp-gsc.git\ncd mcp-gsc\n\n# Install dependencies\nnpm install\n\n# Run the automated setup\nnpm run setup\n```\n\n### Method 3: NPM Installation (When Published)\n\n```bash\n# Run directly with npx\nnpx @disruptorganic/mcp-gsc\n\n# Or install globally\nnpm install -g @disruptorganic/mcp-gsc\nmcp-gsc\n```\n\n## AI CLI Support\n\nThe installation script automatically detects and supports:\n- ✓ **Claude Code CLI** - Global (--scope user) or project-specific installation\n- ✓ **Claude Desktop** - Direct config file integration\n- ✓ **Gemini CLI** - (support coming soon)\n- ✓ **Codex CLI** - (support coming soon)\n- ✓ **Qwen Code CLI** - (support coming soon)\n\n## Manual Setup\n\nIf you prefer to set up manually or need more control:\n\n### Prerequisites\n\n- Node.js >= 18\n- A Google account with access to Google Search Console\n\n### 1. Install Dependencies\n\n```bash\nnpm install\n```\n\n### 2. Build the Project\n\n```bash\nnpm run build\n```\n\n### 3. Authenticate\n\nRun the authentication flow to get your OAuth token:\n\n```bash\nnpm run auth\n```\n\nThis will:\n1. Display a simple verification code (e.g., \"ABCD-EFGH\")\n2. Provide a URL to visit (https://www.google.com/device)\n3. Ask you to open a browser on ANY device (phone, tablet, computer)\n4. Enter the verification code shown in your terminal\n5. Grant permissions for Search Console access\n6. Automatically detect authorization and save the token as `.oauth2.token.json`\n\n**Perfect for remote/cloud servers:** This device flow authentication is designed for servers and headless environments. You can authenticate from your phone or any other device while the server waits for authorization - no complex redirects or localhost issues!\n\nThe authentication only needs to be done once. The token will be refreshed automatically.\n\n## Usage with Claude Code CLI\n\n### Configure the MCP Server\n\nThe automated setup handles this for you. If you need to install manually:\n\n**Using the installation script:**\n```bash\n./run-server.sh\n```\n\nThis will:\n- Detect available AI CLIs (Claude Code, Claude Desktop, etc.)\n- Ask which tools to install to\n- For Claude Code CLI: Ask if you want global or project-specific installation\n- Handle all configuration automatically\n\n**Manual installation (Claude Code CLI):**\n```bash\n# Global installation\nclaude mcp add google-search-console --scope user --transport stdio node /path/to/dist/index.js\n\n# Project-specific installation\ncd /path/to/your/project\nclaude mcp add google-search-console --transport stdio node /path/to/dist/index.js\n```\n\n### Using the Tools\n\nOnce configured, you can use the tools in your conversations with Claude:\n\n#### List Sites\n```\nList all my verified sites in Search Console\n```\n\n#### Get Search Analytics\n```\nGet search analytics for https://example.com/ from 2024-01-01 to 2024-01-31,\ngrouped by query and device\n```\n\n#### Inspect URL\n```\nInspect the URL https://example.com/my-page/ to see its indexing status\n```\n\n## Available Tools\n\n### gsc_list_sites\n\nLists all verified sites in your Google Search Console account.\n\n**Parameters:** None\n\n**Example:**\n```typescript\n{\n  \"name\": \"gsc_list_sites\"\n}\n```\n\n### gsc_search_analytics\n\nQuery search analytics data for a specific site.\n\n**Parameters:**\n- `siteUrl` (required): The site URL (e.g., \"https://example.com/\"). Use gsc_list_sites first to get the exact format.\n- `startDate` (required): Start date in YYYY-MM-DD format\n- `endDate` (required): End date in YYYY-MM-DD format\n- `dimensions` (optional): Array of dimensions to group by (e.g., [\"query\", \"page\", \"country\", \"device\"])\n- `rowLimit` (optional): Maximum number of rows to return. Can be set high (e.g., 25000) as the server automatically chunks large responses. Default: 1000\n\n**Example:**\n```typescript\n{\n  \"name\": \"gsc_search_analytics\",\n  \"arguments\": {\n    \"siteUrl\": \"https://example.com/\",\n    \"startDate\": \"2024-01-01\",\n    \"endDate\": \"2024-01-31\",\n    \"dimensions\": [\"query\", \"device\"],\n    \"rowLimit\": 5000\n  }\n}\n```\n\n### gsc_inspect_url\n\nInspect a URL to check its indexing status in Google Search.\n\n**Parameters:**\n- `inspectionUrl` (required): The URL to inspect\n- `siteUrl` (required): The site URL that owns this URL. Use gsc_list_sites first to get the exact format.\n\n**Example:**\n```typescript\n{\n  \"name\": \"gsc_inspect_url\",\n  \"arguments\": {\n    \"inspectionUrl\": \"https://example.com/my-page/\",\n    \"siteUrl\": \"https://example.com/\"\n  }\n}\n```\n\n## How It Works\n\n### Large Response Handling\n\nWhen you query search analytics with many results, the response might exceed token limits. The server automatically:\n\n1. Estimates the token count of the response\n2. If over 20k tokens, splits the data into manageable chunks\n3. Returns each chunk with metadata:\n   ```json\n   {\n     \"_meta\": {\n       \"message\": \"This is part 1 of 3\",\n       \"totalItems\": 5000,\n       \"itemsInThisPart\": 1667,\n       \"part\": 1,\n       \"totalParts\": 3\n     },\n     \"data\": [...]\n   }\n   ```\n4. Claude processes all parts and can provide insights across the complete dataset\n\n## Troubleshooting\n\n### \"No valid token found\" error\n\nRun the authentication flow again:\n```bash\nnpm run auth\n```\n\n### API not enabled error\n\nMake sure you've enabled the Google Search Console API in your Google Cloud Project.\n\n### Permission errors\n\nEnsure your Google account has access to the Search Console properties you're trying to query.\n\n### Large dataset queries\n\nThe server automatically handles large responses by splitting them into chunks under 20k tokens each. You can query any date range or set high `rowLimit` values (e.g., 25000) without worrying about token limits. Each chunk will include metadata showing which part you're viewing.\n\n## Updating\n\nKeep your MCP server up to date to get the latest features, bug fixes, and improvements.\n\n### Check Current Version\n\n```bash\nnpm list -g @disruptorganic/mcp-gsc\n```\n\n### Update Methods\n\nThe update method depends on how you installed the server:\n\n#### If installed via NPM (globally)\n\n```bash\n# Update to the latest version\nnpm update -g @disruptorganic/mcp-gsc\n\n# Or explicitly install the latest\nnpm install -g @disruptorganic/mcp-gsc@latest\n```\n\n#### If installed via NPX\n\nNPX caches packages. To ensure you're using the latest version:\n\n```bash\n# Clear NPX cache and use latest\nnpx clear-npx-cache\nnpx @disruptorganic/mcp-gsc@latest\n\n# Or specify latest in your command\nnpx @disruptorganic/mcp-gsc@latest\n```\n\n#### If installed via Git Clone\n\n```bash\n# Navigate to the installation directory\ncd /path/to/mcp-google-search-console\n\n# Pull latest changes\ngit pull origin main\n\n# Install dependencies and rebuild\nnpm install\nnpm run build\n```\n\n**Note:** After updating via git clone, your MCP configuration in Claude Code CLI will continue to work since the path remains the same.\n\n#### If installed via One-Line Installer\n\n```bash\n# Re-run the installer (it will detect and update)\ncurl -fsSL https://raw.githubusercontent.com/DisruptOrganic/mcp-gsc/main/install.sh | bash\n```\n\n### After Updating\n\n1. **No configuration changes needed** - Your existing `.claude/mcp.json` configuration will continue to work\n2. **Token is preserved** - Your `.oauth2.token.json` authentication token is not affected by updates\n3. **Restart AI CLI** - Restart Claude Code CLI or Claude Desktop to load the updated server\n\n```bash\n# If using Claude Code CLI, restart is usually automatic\n# If issues occur, manually restart your AI tool\n```\n\n### Check for Updates\n\nStay informed about new releases:\n\n- **GitHub Releases**: https://github.com/DisruptOrganic/mcp-gsc/releases\n- **NPM Package**: https://www.npmjs.com/package/@disruptorganic/mcp-gsc\n- **Changelog**: [CHANGELOG.md](./CHANGELOG.md)\n\n### Version History\n\nTo see all available versions on NPM:\n\n```bash\nnpm view @disruptorganic/mcp-gsc versions\n```\n\nTo install a specific version:\n\n```bash\nnpm install -g @disruptorganic/mcp-gsc@0.1.0\n```\n\n## Development\n\n### Run in development mode\n```bash\nnpm run dev\n```\n\n### Rebuild after changes\n```bash\nnpm run build\n```\n\n## Security Notes\n\n- Never commit `.oauth2.token.json` to version control (already in `.gitignore`)\n- The `.oauth2.token.json` file contains your personal access token\n- Keep your token secure and don't share it\n\n## License\n\nMIT\n","readmeFilename":"README.md"}