Skip to content

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 22:28
14e3409

Added

  • Hosted OAuth proxy (HTTP transport). Opt-in mode in which the server signs each user into MediaWiki as themselves, so an OAuth-aware client pointed at https://<wiki>/mcp needs no manual tokens. Anonymous read still works; writes require sign-in. Enable it by running the HTTP transport with MCP_PUBLIC_URL and MCP_OAUTH_JWT_SIGNING_KEY set and an oauth2ClientId on the default wiki. See docs/deployment.md — hosted OAuth sign-in.
  • New per-wiki publicServer field: the browser-facing base URL, used when it differs from the internal server (e.g. a Docker-network alias). Defaults to server.
  • New hosted-proxy environment variables: MCP_PUBLIC_URL (the server's public URL), MCP_OAUTH_JWT_SIGNING_KEY (≥32 characters), MCP_OAUTH2_CLIENT_ID (the default wiki's OAuth2 client id — overrides config.json, so a deployment can supply the value its wiki generates at registration time), MCP_OAUTH_TOKEN_TTL (default 55m), and MCP_OAUTH_CONSENT_TTL (default 30d). Durations accept forms like 55m/1h/30d or bare seconds.
  • private wikis require sign-in over HTTP. A wiki configured private: true (its MediaWiki disallows anonymous reads) now challenges every anonymous HTTP request — including the initial connection — with a 401, so an OAuth-capable client prompts for login at connect instead of failing later. Public wikis are unchanged: anonymous reads still work, and only writes prompt for sign-in.

Changed

  • The OAuth sign-in and consent pages now have a styled layout instead of bare HTML, and a failed or cancelled authorization shows a readable page rather than a raw error.

Fixed

  • Extension-pack write tools (NeoWiki's create-subject, update-subject, delete-subject, and set-main-subject) are now hidden from tools/list and rejected by the per-call guard when the active wiki is configured readOnly, the same as core write tools. Previously the read-only gate covered only the core writes, so a read-only endpoint still advertised and dispatched extension-pack writes; an actual write was then stopped only by the wiki's own permissions. Write tools are identified by their readOnlyHint: false annotation, so future packs are covered automatically. (#411)