v0.7.2 — Wiki upload + PAT-mode concurrency fixes
Carries forward both bug fixes from #62 (@ecthelion77, Olivier Gintrand) with maintainer corrections.
Highlights
- Wiki attachment upload fixed (#62) — the
upload_project_wiki_attachmentandupload_group_wiki_attachmenttools previously sent JSON with base64 content, causing a 400 on every call against any GitLab. Now usesFormData+Blobper the documented API. Originally found and fixed by Olivier. - Per-session server factory in PAT + streamable-http mode (#62) — the second concurrent client previously crashed the process with
"Already connected to a transport". Each session now gets its ownServer. Also originally Olivier's fix.
Maintainer corrections
content_encodingparameter on wiki upload tools —'utf8'(default) or'base64'. Required for binary files since MCP parameters are JSON strings. No automatic detection to avoid silent-failure on base64-shaped text.- Schema fallback for older self-hosted GitLab —
GitLabWikiAttachmentSchemaaccepts both the modernlink.{url, markdown}envelope and the legacy flat{commit_id, url}shape. The formatter synthesises a markdown snippet on legacy paths.
Tests
- 79 → 86 (7 new): multipart body shape, base64 decoding (verified with PNG signature), default text path, both schema shapes, PAT + streamable-http per-session factory, no-Authorization-header acceptance in PAT mode.
Changed
GitLabWikiAttachmentMCP response shape now exposes{url, markdown}instead of{commit_id, url}. Downstream LLM consumers parsing tool output should update accordingly.
Credits
Olivier Gintrand for finding and fixing both bugs. Both PR #62 commits are cherry-picked into this release with authorship preserved; the squash-merge of #80 carries Co-authored-by: so the GitHub contribution graph credits him.