server.json
1 field changed
- version
-
4.11.14.12.0
io.github.chrischall/gogcli-mcp-maps
3 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.
https://raw.githubusercontent.com/chrischall/gogcli-mcp/HEAD/AGENTS.md
− # gogcli-mcp− Monorepo of MCP servers wrapping [gogcli](https://github.com/openclaw/gogcli) — gives Claude read/write access to Google Workspace (Sheets, Docs, Gmail, Calendar, Drive, Slides, Classroom, Tasks, Contacts). Each package is a standalone MCP server using stdio transport.− ## Packages− All under `packages/*` as an npm workspace. Single source of truth for version: root `package.json` (all packages share it).− | Package | Path | Scope |− |---------|------|-------|− | `gogcli-mcp` | `packages/gogcli-mcp` | Base — common subset of every service, plus `gog_<service>_run` escape hatches |− | `gogcli-mcp-sheets` | `packages/gogcli-mcp-sheets` | Auth + Sheets (base + extras: tabs, formatting, named ranges, …) |− | `gogcli-mcp-docs` | `packages/gogcli-mcp-docs` | Auth + Docs (base + extras: insert, export, sed, comments, …) |− | `gogcli-mcp-drive` | `packages/gogcli-mcp-drive` | Auth + Drive (base + extras: upload, permissions, shared drives, …) |− | `gogcli-mcp-slides` | `packages/gogcli-mcp-slides` | Auth + Slides (base + authoring extras) |− | `gogcli-mcp-classroom` | `packages/gogcli-mcp-classroom` | Auth + Classroom (base + CRUD/admin extras) |− | `gogcli-mcp-gmail` | `packages/gogcli-mcp-gmail` | Auth + Gmail (base + threads, labels, drafts, bulk ops) |− | `gogcli-mcp-contacts` | `packages/gogcli-mcp-contacts` | Auth + Contacts (base + People API extras) |− | `gogcli-mcp-calendar` | `packages/gogcli-mcp-calendar` | Auth + Calendar (base + Meet space management) |− ## Commands− ```bash− npm install # install all workspaces− npm run build # tsc --noEmit + esbuild bundle for every package− npm test # vitest across all packages (100% coverage gate)− npm run typecheck # tsc --noEmit across all packages− # Single package− npm run build --workspace=packages/gogcli-mcp-sheets− npm test --workspace=packages/gogcli-mcp-docs− ```− Run locally (requires a built bundle and `gog` on PATH):− ```bash− GOG_ACCOUNT=you@gmail.com node packages/gogcli-mcp/dist/index.js− ```− ## Tool naming− All tools are prefixed `gog_` and namespaced by service (e.g. `gog_sheets_read`, `gog_gmail_send`, `gog_drive_list`). Each service also exposes `gog_<service>_run` as an escape hatch for unmapped subcommands.− ## Architecture− ```− packages/gogcli-mcp/− src/− index.ts # bin entry — runMcp({ name, version, tools: BASE_TOOL_REGISTRARS }) from @chrischall/mcp-utils− server.ts # BASE_TOOL_REGISTRARS list + VERSION constant (injected by esbuild)− runner.ts # only module touching child_process; exports run() with Spawner DI− lib.ts # barrel export consumed by sub-packages− tools/+ CLAUDE.md
Showing the first 40 of each.
https://raw.githubusercontent.com/chrischall/gogcli-mcp/HEAD/AGENTS.md
− `runner.ts` exports `MIN_GOG_VERSION` — the minimum gogcli (`gog`) binary version the wrapper's tools assume. It's the single source of truth (keep this section in sync). When a change starts relying on a newer `gog` flag/subcommand, bump `MIN_GOG_VERSION` and label the PR **`gogcli-bump`** so the requirement change surfaces in its own release-notes section (`.github/release.yml`). Current floor: **gog ≥ 0.41.0**. A bump must also move **the `tag:` in all nine `packages/*/mint.yaml` `dependencie− --dep 'github:openclaw/gogcli@v0.41.0:gogcli_*_linux_amd64.tar.gz#gog' \− **The `enabledTools` allowlist rots, and only we can see it.** Its whole job is− to withhold the two `*_run` escape hatches — arbitrary `gog` subcommand− execution is not something a hosted connector should offer — but mcp-host stores− that as an allowlist of *every other name*. So "hide two tools" is written as− "show these 53", and shipping a new tool leaves it absent from a list nobody− edited: fine on stdio, silently unreachable over the connector. mcp-host will− not catch it. `--follow` moves the version pin and carries `enabledTools` across− untouched, and the daily mint check lists `tools.enable` among its *deliberate*− silences — "a narrowing; a registration that ignores it serves more, not less."− That is the right default for a host reading an unverified file, and it is− exactly the blind spot we sit in, because we narrow on purpose.− `scripts/sync-mcp-host-tools.mjs` closes it. The list is **derived, never− authored**: `GET /registrations/{id}/tools` returns what the running child− serves, unnarrowed, so the correct allowlist is that set minus `*_run`. It reads− nothing from this checkout, which is what lets it judge whatever version each− registration has actually followed to.− 9. After the release ships **and mcp-host has followed to it** (~04:17Z the next day), run− `npm run sync:mcp-host-tools` — a new tool is absent from the hosted `enabledTools`− allowlist until someone pushes it. See [Hosted registrations](#hosted-registrations-mcp-host).+ `runner.ts` exports `MIN_GOG_VERSION` — the minimum gogcli (`gog`) binary version the wrapper's tools assume. It's the single source of truth (keep this section in sync). When a change starts relying on a newer `gog` flag/subcommand, bump `MIN_GOG_VERSION` and label the PR **`gogcli-bump`** so the requirement change surfaces in its own release-notes section (`.github/release.yml`). Current floor: **gog ≥ 0.43.0**. A bump must also move **the `tag:` in all nine `packages/*/mint.yaml` `dependencie+ --dep 'github:openclaw/gogcli@v0.43.0:gogcli_*_linux_amd64.tar.gz#gog' \+ **The `enabledTools` allowlist rots — no longer silently, but it still needs a+ decision.** Its whole job is to withhold the two `*_run` escape hatches —+ arbitrary `gog` subcommand execution is not something a hosted connector should+ offer — but mcp-host stores that as an allowlist of *every other name*. So "hide+ two tools" is written as "show these 53", and shipping a new tool leaves it+ absent from a list nobody edited: fine on stdio, withheld over the connector.+ `--follow` moves the version pin and carries `enabledTools` across untouched,+ and the daily mint check still lists `tools.enable` among its *deliberate*+ silences ("a narrowing; a registration that ignores it serves more, not less").+ But mcp-host itself now **flags** the new tool: it stays withheld, the+ registration shows `newTools` and ranks under "New tools" / "Needs you" in the+ web portal and the apps, and a `tools_awaiting_review` alert (push/email) opens+ until the owner re-saves the allowlist in the UI (the Admin picker, or Simple's+ "Turn them on" / "Keep them off"). What the host cannot do is make the call — it+ sees an allowlist, not our policy "everything except `*_run`" — and for these+ six registrations that call is mechanical.+ `scripts/sync-mcp-host-tools.mjs` is still the fastest correct answer. The list+ is **derived, never authored**: `GET /registrations/{id}/tools` returns what the+ running child serves, unnarrowed, so the correct allowlist is that set minus+ `*_run` — no one ticking boxes. It reads nothing from this checkout, which is+ what lets it judge whatever version each registration has actually followed to.+ `--apply` sends `reviewedTools` (the whole served menu it judged, `*_run`+ included) beside `enabledTools`, so the same PUT clears the host's flag.+ 9. After the release ships **and mcp-host has followed to it** (~04:17Z the next day), the+ hosted registration shows the new tool as "New tools to review" — withheld from the+ `enabledTools` allowlist until someone decides. Run `npm run sync:mcp-host-tools` (or+ accept it in the mcp-host UI). See [Hosted registrations](#hosted-registrations-mcp-host).
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect