Changelog
[0.1.2] - 2026-08-30
Fixed
The container and documentation badges rendered as broken images. Both were mis-escaped: shields.io reads a literal hyphen as a field separator, so
ghcr.io-ni--c%2Fwikijs-mcp-bluesplits in the wrong place and the endpoint answers 404. Theni--chalf was escaped correctly in both, which is what made it easy to miss. This release is what carries the fix to the package page — a README only reaches npmjs.com with a publish.The issue forms shipped with their template placeholders unresolved. All three contact links pointed at
github.com/ni-c//…, so both "Question or discussion" and "Report a vulnerability privately" led to a 404 — the second being the one that matters, since the alternative a reporter reaches for is a public issue. The forms also asked for a " version" and a " API endpoint"; they now name wikijs-mcp, Wiki.js and its GraphQL schema.
[0.1.1] - 2026-08-30
Fixed
list_pagesandgrep_pagesreturned far fewer pages than asked for, with nothing saying so. Wiki.js'pages.listjoins the tag table and applieslimitto the joined rows, not to the pages — a page with three tags eats three of them — so asking for 50 on a 62-page wiki returned between 13 and 23 depending on the sort order. A short answer was indistinguishable from a small wiki. Both tools now bound the list themselves, andlist_pagesreports how many pages matched as well as how many are shown.- The demo recording is now actually shown in the README and on the documentation home page. It was recorded and checked in, and nothing referenced it.
[0.1.0] - 2026-08-30
Added
- Initial release: MCP server for Wiki.js 2.x, with 62 tools covering pages, history, tags, assets, comments, users, groups, system settings and maintenance.
grep_pages, which searches the actual text of pages. Wiki.js' default search engine ("Database - Basic") indexes only titles and descriptions, sosearch_pagescannot find anything written inside a page — it now reports which engine is active and says so.- A concurrent-edit guard on
update_page. It compares against the moment the caller read the page, refuses to overwrite somebody else's save, and can be overridden deliberately withforce. - Surgical edits:
update_pagetakeseditswith a find-and-replace contract that requires each anchor to match exactly once, rather than silently editing the first occurrence. get_pagemodes for metadata, an outline, a named section, and a character window, so a large page can be read without filling the context.diff_page_versions, a unified diff between two stored versions or between a version and the live page.upload_asset, which Wiki.js 2.x has no GraphQL mutation for.WIKIJS_ALLOWED_PATHS, confining the writing tools to page path prefixes, matched by path segment.WIKIJS_READ_ONLY,WIKIJS_ALLOW_TOOLS/WIKIJS_DENY_TOOLSwith anessentialpreset, and confirmation tokens on every destructive or administrative operation.