gscdump

mcp
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • process.env — Environment variable access in .github/workflows/evals.yml
  • process.env — Environment variable access in .github/workflows/perf-comment.yml
  • fs module — File system access in .github/workflows/perf-comment.yml
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Dump your entire Google Search Console dataset and put your agents to work finding insights and improving your SEO.

README.md

gscdump

npm version
npm downloads
license
Skill on skilld.dev

Dump your entire Google Search Console dataset and put your agents to work finding insights and improving your SEO.

Made possible by my Sponsor Program 💖
Follow me @harlan_zw 🐦 • Join Discord for help

Features

  • 🤖 AI assistants: run Reports through the CLI or MCP and read the results as JSON.
  • 🔍 29 SEO Analyzers: find content decay, competing pages, traffic changes, and queries worth targeting.
  • 📋 Reports: eight Reports combine Analyzers to answer questions about your search traffic.
  • 💾 Own your data: sync Search Console rows to a local Parquet Store and query them with DuckDB.
  • ⚡ Indexing and sitemaps: inspect URLs, send eligible indexing notifications, and manage sitemap submissions.
  • 🎯 Typed query builder: select dimensions, filter rows, and stream paginated results from Google.
  • 🌐 Edge support: use the core library in Cloudflare Workers, Deno, Bun, or Node.js.

What is gscdump?

Google Search Console's API answers narrow questions and limits how much you can ask.
Its 16-month history window keeps moving.
Comparing pages and queries over time takes extra work, especially when you want a chart.

With gscdump, you can keep the data you collect and compare old periods with new ones.
See the changes in charts, then ask your agents about the same record.
Keep your own copy for deeper analysis.
Google's row limits still decide what data is available.

Get Started

Tell your agent:

Use this Skill: https://skilld.dev/gh/harlan-zw/gscdump

npm install -g @gscdump/cli

# Set up local Google OAuth credentials and a Store directory
gscdump init --mode local
gscdump auth login --mode local
gscdump sites

# Sync before querying or exporting stored data
gscdump sync --site example.com --days 90
gscdump query --site example.com --dimensions page,query
gscdump dump --site example.com --out ./export

# Query Google directly
gscdump query --live --mode local --site example.com --dimensions page,query

# Start the MCP server
gscdump mcp

For one-off commands, use npx -y @gscdump/cli in place of gscdump.
The gscdump npm package contains the library; @gscdump/cli provides the command.

Documentation

API Usage

npm install gscdump
import { googleSearchConsole } from 'gscdump'
import { between, date, daysAgo, gsc, page, query } from 'gscdump/query'

const client = googleSearchConsole({ accessToken: process.env.GSC_ACCESS_TOKEN! })
const request = gsc
  .select(page, query)
  .where(between(date, daysAgo(30), daysAgo(3)))
  .limit(10000)

for await (const rows of client.query('sc-domain:example.com', request)) {
  console.log(rows)
}

See the core library for authentication, query methods, and Bing Indexing Evidence.

Query Builder

import { and, between, contains, country, date, daysAgo, device, eq, gsc, page, query } from 'gscdump/query'

const builder = gsc
  .select(page, query, device, country)
  .where(and(
    eq(device, 'MOBILE'),
    contains(page, '/blog/'),
    between(date, daysAgo(30), daysAgo(3)),
  ))
  .limit(25000)

const body = builder.toBody()

Dimensions: page, query, date, country, device, searchAppearance.

Operators: eq, ne, contains, like, regex, notRegex, inArray, between, and, or, not.

Other Client Methods

Using the client from API Usage:

const siteUrl = 'sc-domain:example.com'
const url = 'https://example.com/jobs/frontend-engineer'

const sites = await client.sites()
const inspection = await client.inspect(siteUrl, url)

const sitemaps = await client.sitemaps.list(siteUrl)
await client.sitemaps.submit(siteUrl, 'https://example.com/sitemap.xml')

// For eligible job or livestream pages
await client.indexing.publish(url, 'URL_UPDATED')
const metadata = await client.indexing.getMetadata(url)

Hosted API v1

Use @gscdump/sdk/v1 for the hosted gscdump.com API.
The current contracts describe 58 HTTP operations: 53 partner, three analytics, and two realtime operations.
The API wire version is 1.0, separate from npm package versions.

Start with the hosted integration guide.
The generated contracts define operation inputs and responses.
Existing integrations can use the migration guide.

Packages

Package Description
gscdump Google and Bing clients, typed query builder
@gscdump/analysis Analyzers and Reports
@gscdump/engine Parquet storage, DuckDB execution, and Source contracts
@gscdump/engine-duckdb-wasm Browser DuckDB runtime
@gscdump/engine-sqlite SQLite and D1 adapter
@gscdump/engine-gsc-api Live Google API Source
@gscdump/lakehouse Iceberg catalog and dataset registry
@gscdump/contracts Hosted API schemas and operation metadata
@gscdump/sdk Hosted HTTP, realtime, and webhook clients
@gscdump/cloudflare Cloudflare server-tail and request deduplication helpers
@gscdump/cli CLI and MCP server (gscdump mcp)

Support and contributions

Entry point Scope First result
CLI Cloud/local Google and Bing authentication, local Store, exports Getting started
Core library Google and Bing clients, typed queries, fetch runtimes Library examples
MCP Live Google queries and supported Reports AI integration
Hosted SDK gscdump.com API credentials and published v1 operations Hosted integration
Runtime adapters Browser DuckDB, SQLite, and Cloudflare integrations Package READMEs above

Use the latest published version when reporting a bug.
See Contributing for setup and checks.
Report vulnerabilities through Security.

License

MIT

Reviews (0)

No results found