SearchDock CLI — Google Search Console CLI
Read Google Search Console analytics, inspect indexed URLs, and monitor sitemaps from your terminal or AI agent.
SearchDock is open source, runs locally, and requests read-only Google access. Use the same core through npm, Python, MCP, a Codex or Claude Code plugin, or a standalone agent skill. Bing Webmaster Tools support is planned.
Install
Node.js 22 or later is required for every distribution.
# npm
npm install --global searchdock-cli
searchdock --help
# No global installation
npx --yes searchdock-cli@0.1.2 --help
# Python; Node.js is still required
pipx install searchdock-cli
# Alternatively: python -m pip install searchdock-cli
The Python package is a launcher containing the exact same JavaScript runtime. It has no separate Google implementation. If you install both packages, use python -m searchdock_cli to select the Python launcher explicitly.
To run from source:
git clone https://github.com/xplormityai/searchdock-cli.git
cd searchdock-cli
npm ci
npm run build
node dist/cli.cjs --help
Connect Google Search Console
Create a Google OAuth Desktop app client in your own Google Cloud project, enable the Search Console API, and download the client JSON. See Google setup for the steps and testing-mode limits. No shared developer credentials are included.
searchdock auth login --client-file /path/to/desktop-client.json
searchdock sites list
searchdock sites use sc-domain:example.com
searchdock auth status
Google opens a local browser consent flow. SearchDock uses PKCE, validates the callback state, and listens only on 127.0.0.1. It requests webmasters.readonly and keeps the refresh token in your operating system's per-user configuration directory, outside this repository. Credentials are stored as permission-protected local JSON, not encrypted by SearchDock. See privacy.
Commands
# Search performance and top queries
searchdock analytics --days 28
searchdock analytics --dimensions page --days 28 --json
searchdock analytics --dimensions date --start 2026-09-01 --end 2026-09-30
# Exact, case-insensitive brand queries
searchdock analytics --brand "Your Brand" --json
# Sitemaps and Google's indexed URL status
searchdock sitemaps
searchdock inspect https://example.com/
# Combined report, including only the URLs you specify
searchdock report --urls https://example.com/,https://example.com/about --json
searchdock report --output ./private-report.json
# Multiple accounts/sites
searchdock auth login --client-file /path/to/client.json --profile work
searchdock sites use https://example.com/ --profile work
searchdock analytics --profile work --site https://example.com/ --json
# Diagnostics and local credential removal
searchdock doctor
searchdock auth logout
--json writes machine-readable results to stdout and errors to stderr with a nonzero exit status. --output saves JSON to a new file and refuses to overwrite an existing one. Keep private reports out of Git yourself. CSV is not yet supported. For URLs containing commas, use the MCP urls array or the JavaScript API for batch inspection.
Report windows default to 28 days ending three days before today in Pacific Time, to allow for Search Console processing. You can specify exact dates. Finalized data may still lag. Pagination supports up to 100,000 requested rows, but Google's API returns top rows and omits some anonymized query data. Missing rows do not prove zero demand; zero impressions make average position meaningless.
AI agents and MCP
SearchDock provides five read-only MCP tools: searchdock_sites, searchdock_analytics, searchdock_sitemaps, searchdock_inspect, and searchdock_report. Authenticate locally first; MCP tools do not start consent or change account settings.
Add this stdio server to any compatible MCP client:
{
"mcpServers": {
"searchdock": {
"command": "npx",
"args": ["--yes", "searchdock-cli@0.1.2", "mcp"]
}
}
}
For a source checkout, set command to node and args to ["/absolute/path/searchdock-cli/dist/cli.cjs", "mcp"]. Windows clients that launch npx.cmd through a shell may need command: "cmd" and args: ["/c", "npx", "--yes", "searchdock-cli@0.1.2", "mcp"]. Use your client's Windows configuration guidance.
Plugins use the same pinned npm version:
# Codex CLI
codex plugin marketplace add xplormityai/searchdock-cli
codex plugin add searchdock@searchdock
In Claude Code:
/plugin marketplace add xplormityai/searchdock-cli
/plugin install searchdock@searchdock
For a standalone skill, copy skills/searchdock into your agent's skills directory. Codex uses ~/.agents/skills/; Claude Code uses ~/.claude/skills/. Install the CLI separately. The setup skill is included in the plugin. The repository includes portable Agent Plugins, Codex and Claude manifests; local stdio plugins are not automatically listed in hosted plugin directories.
You can also install the skill with the open skills installer:
npx skills add xplormityai/searchdock-cli --skill searchdock
server.json prepares a listing in the MCP Registry under io.github.xplormityai/searchdock-cli. Registry publication requires the npm package to be live and namespace authentication; the metadata file alone does not create a listing.
What the Google API can and cannot tell you
| Available | Requires Search Console UI or an export |
|---|---|
| Clicks, impressions, CTR, average position | Request indexing |
| Top queries/pages and date/device/country breakdowns | Test a live URL |
| Exact brand-query performance | Full Page indexing exclusions table |
| Sitemap processing status | Manual actions and security issues |
| Google's indexed version of specific URLs | Guaranteed current ranking or indexing |
SearchDock's report flags returned sitemap errors/warnings, pending processing and non-PASS verdicts for the URLs you inspect. It is not a complete technical SEO audit, and it does not provide invented SEO/AEO/GEO scores.
JavaScript API
import { selectedContext } from 'searchdock-cli';
const { adapter, site } = await selectedContext({ profile: 'default' });
const result = await adapter.analytics(site, { days: 28, dimensions: ['page'] });
console.log(result.rows);
The provider registry declares capabilities separately. Bing can be added as an adapter without changing the CLI, MCP or Python distribution model. Provider-specific differences must remain explicit. See architecture.
Develop and release
npm ci
npm run build
npm test
npm run check
python -m pip install build twine
npm run release:artifacts
python -m twine check dist/releases/searchdock_cli-0.1.2-py3-none-any.whl dist/releases/searchdock_cli-0.1.2.tar.gz
Release instructions cover npm/PyPI accounts, OIDC trusted publishing, versioning and GitHub release artifacts. Package creation alone does not publish anything.
Built by Xplormity Collective. MIT license.
Metadata
Release files for searchdock-cli 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| searchdock_cli-0.1.2.tar.gz | 118.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| searchdock_cli-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 235.0 kB
Release files / searchdock_cli-0.1.2.tar.gz
| Download URL | searchdock_cli-0.1.2.tar.gz |
|---|---|
| Size | 118.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
570d6ebcab3b08b43ac3de800b11d7d86419f073eb4a760c20c130b5ba47275b
|
|
BLAKE2b-256 checksum How to use checksums |
04bea2e20af6a8040f74a076033f42fb52b4fa6ccca58f8ff3c1299573b9ee26
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / searchdock_cli-0.1.2-py3-none-any.whl
| Download URL | searchdock_cli-0.1.2-py3-none-any.whl |
|---|---|
| Size | 116.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e96dc443dd683c4f4f8dff6fcdfdc3bfb2f4bcd003a7ec2137102331bfdcb8cc
|
|
BLAKE2b-256 checksum How to use checksums |
d6160eb70f96591478cc94b37b253d7b462811d726ad2da380dcd274139ea47e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency log