Install the server

One guided command connects Google and your client. Read-only unless you explicitly choose full.

1Check your runtime

Bun 1 or newer, or Node 22 or newer. Check yours before anything else:

Runtime check — Bun

bun --version
  • Expect 1.x from Bun, or v22 (or newer) from Node. Anything older stops here — upgrade first.
  • A Google account that can open at least one Search Console property. No Google login happens on this website and no credential is ever pasted here — sign-in happens later, in your own terminal.

2Run setup

Not published yet. These pinned commands work only after release @sonnivasquez/gsc-mcp@0.1.0 is confirmed published. Until then there is no public install path, and this page does not establish registry availability.

Setup — Bun (pinned to @sonnivasquez/gsc-mcp@0.1.0)

bunx --bun @sonnivasquez/gsc-mcp@0.1.0 setup
  • Pin the version: @sonnivasquez/gsc-mcp@0.1.0. Upgrading is an explicit act, never a surprise.
  • setup walks you through sign-in and client config. Every flag is listed under Commands; the two choices that matter now are --auth (which credential) and --client (which app).

Runner or global install

  • npx -y … and bunx --bun … are cached execution, not an install: the runner fetches the pinned release into a cache and runs it. Either path works only after the release is confirmed published — neither is available sooner.
  • A global install — npm install -g @sonnivasquez/gsc-mcp@0.1.0 — becomes an option only after the release is confirmed published, for people who want the binary on PATH without a runner. It is never required.
  • Removal differs accordingly: a global install removes with npm uninstall -g @sonnivasquez/gsc-mcp; runner runs install no global package, so there is no package to uninstall for them (downloaded runner cache files may remain and are harmless). Never wipe a shared npm cache as part of uninstalling — the full procedure lives under Uninstall.

Name your properties

  • Use exact identifiers, byte-for-byte: sc-domain:example.com or https://example.com/. Both are documentation examples, never a live property — replace them with your exact Search Console IDs.
  • Repeat --site for each property, one identifier per flag — never comma-split. Or pass --all-sites as an explicit opt-in that also covers future properties. Mixing all with identifiers is rejected (fail closed).
  • Setup stores the selection as a JSON-string array in GSC_SITE_URLS. Tool arguments can never widen it: a property outside the allowlist fails with PROPERTY_NOT_ALLOWED.

3Verify your connection

Verify — Bun (pinned to @sonnivasquez/gsc-mcp@0.1.0)

bunx --bun @sonnivasquez/gsc-mcp@0.1.0 doctor
bunx --bun @sonnivasquez/gsc-mcp@0.1.0 auth status --online
  • doctor is the offline check: runtime, paths, environment, auth state — paths and booleans, never secrets.
  • auth status --online is the minimal validation against Google. Without credentials the server still starts; tools return AUTH_REQUIRED with the exact fix command instead.

Next