Skip to content

Rework the install documentation#486

Merged
alistair3149 merged 8 commits into
masterfrom
worktree-install-ux
Jul 23, 2026
Merged

Rework the install documentation#486
alistair3149 merged 8 commits into
masterfrom
worktree-install-ux

Conversation

@alistair3149

Copy link
Copy Markdown
Member

Reworks the install documentation. The section carried the server's launch configuration nine times over (five JSON blocks, an inline code --add-mcp payload, two VS Code badge payloads, one Cursor base64), and they had already drifted apart. It is now stated once.

167 lines to 100, nine copies to one, while adding a client and retiring a dead channel.

Commits

-y on every npx path Aligns the README with the plugin manifests, which already passed it. Also re-encodes the three one-click badges: the Cursor payload was malformed (whole command line in the command field, no args), and the VS Code badges used a superseded dialect where both editions opened the same build.
Retire the Gemini CLI channel Gemini CLI stopped serving consumer Google AI tiers on 18 June 2026. Deletes gemini-extension.json and unwires it from the release sync, where it was being synced on every release.
State the configuration once One canonical block plus a `Client
Document OpenCode The one client whose configuration shape genuinely differs (mcp key, command array, environment rather than env).
Record the invariant AGENTS.md gains an "Adding a client" rule, so the duplication does not grow back.
Two correction commits Fixes found in review; see below.

A correction worth stating plainly

The -y work was originally justified as fixing a first-run hang in GUI clients. That was wrong, and the claim is not in this branch. npm gates the install-confirmation prompt on stdin.isTTY (libnpmexec/lib/index.js: if (noTTY() || ciInfo.isCI)), and an MCP stdio server always has piped stdin, so the prompt branch is unreachable. -y still earns its place: it matches the generated manifests, silences npx's warning, and protects users whose npm is configured yes=false, which hard-fails outright. It is a Changed, not a Fixed.

Verification

  • lint, fmt:check, validate:server-json, and the full suite (1579 tests) pass; sync-manifests.cjs leaves the tree clean.
  • The release sequence was exercised end to end in a scratch clone (sync-manifestspromote-changeloggit add) against a simulated version bump: exit 0. The sync's write targets were diffed against the version script's staging list in both directions — exact match, so no manifest can be synced and left uncommitted.
  • Every table row was verified against that client's current documentation. Cline was dropped: its docs give a path only for the CLI, not the VS Code extension, so a row would have misdirected extension users. The VS Code user-level path is deliberately not stated, because VS Code documents no cross-platform path; the row names the MCP: Open User Configuration command instead.
  • Badge payloads decode to the canonical configuration and are byte-identical across every commit that moved them.

Follow-ups (not in this PR)

  • The sync/stage invariant is unenforced. package.json's git add list duplicates the targets array in sync-manifests.cjs with nothing linking them. Removing a target fails loudly; adding one and forgetting the list fails silently, shipping a release where a manifest is synced but never committed. A guard inside the script would close it.
  • Plugin installs cannot set CONFIG. plugins/mediawiki-mcp-server/.mcp.json declares no env, so a user who installs via the Claude Code or Codex plugin has no documented way to point the server at their own wiki. That is the smoothest install path and the one a non-technical user is most likely to take.
  • Generating the encoded payloads remains deferred, with a named trigger: build it if the encoded payload count exceeds four, or if drift recurs.

Considered and omitted: restoring code --add-mcp (it embedded an inline copy of the launch configuration, which is what this PR removes); per-client documentation files (the snippet is identical across clients, so it would turn one drifting file into nine); a hosted install page; and any restructuring around registries, whose own documentation disclaims being a client-facing install layer.

🤖 Generated with Claude Code

The install configurations and badges omitted -y, while the bundled
plugin and extension manifests already passed it. Aligning them avoids
an install-confirmation step for anyone whose npm is configured to
require one.

Adding -y makes the -- separator necessary in the claude mcp add
example, so flag placement is now shown explicitly. Also re-encodes the
three one-click badges, which carried a malformed Cursor payload and the
superseded VS Code deeplink dialect.
Gemini CLI stopped serving consumer Google AI tiers in June 2026 and
Antigravity imports an existing Gemini CLI configuration. Removes the
manifest, its release-sync wiring, and the install section.
Adopts a canonical-snippet-plus-table shape: the launch config appears
once, clients that differ only by config file path and root key become
table rows, and Claude Desktop points at the mcpb bundle rather than a
JSON block.
Removes a duplicated table-versus-section rule from the distribution
guide, states the CHANGELOG obligation for install channels, and fixes
inaccurate wording about the Antigravity import and the Gemini CLI
migration path.
The CHANGELOG clause keyed on pasting the standard configuration, which
left a differently-shaped client such as OpenCode unclassified, and the
stated rationale claimed a single edit that the badge payloads and the
plugin manifest do not deliver.
It writes the launch command but not CONFIG, so a user on their own wiki
would otherwise get a server pointed at English Wikipedia with no signal
that anything was missing.
@alistair3149
alistair3149 marked this pull request as ready for review July 23, 2026 23:36
@alistair3149
alistair3149 merged commit 70cb850 into master Jul 23, 2026
1 check passed
@alistair3149
alistair3149 deleted the worktree-install-ux branch July 23, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant