create_page is an upsert: writing to a space and page address that already holds a page replaces it, so updating a document and replacing one by accident are the same gesture at the call site. delete_page's own description says an administrator has to restore a page afterwards, and reserves the call for an explicit deletion request rather than tidying up. On the read side everything is addressed the same way — get_page, get_attachments and get_page_children all take space plus page, with dot notation for nested sections — which makes search the practical starting point, since it hands back the addresses those calls need.
A server over a corporate XWiki instance, exposing search, space and page browsing, attachment listing, child-page traversal, page creation and deletion, and commenting.
- search as the way in: it takes a query with scope, space and engine, paged by start and limit, so a lookup can be pinned to one space or run across the wiki.
- Browsing for when search comes back empty: list_spaces returns each top-level space with its id, name and home_url, and list_pages walks a space's pages with limit and start, addressing nested sections by dot notation such as space="Documentation.API".
- The page itself: get_page returns a page's full content — its text, formulas, links and images — addressed by space plus page.
- Structure underneath a page: get_page_children lists direct child pages one level deep, returning each child's id, title, parent and url.
- Attachments as retrievable files: get_attachments lists what is attached to a page with each file's name, size_bytes, mime_type, author, date and download_url.
- Writing back: create_page takes content, title and syntax and behaves as an upsert against a space and page address; add_comment posts author and text beneath a page; delete_page removes one.
A reachable XWiki instance, whose base URL you supply as XWIKI_BASE_URL.
One command plus a key — npx -y xwiki-mcp, then supply credentials
