Xwiki MCP Server

MCP server for XWiki REST API — read your wiki from Claude and other AI agents

Documentation

xwiki-mcp

npm version npm downloads license node

MCP server for XWiki REST API. Lets AI agents (Claude Code, Claude Desktop, etc.) search, read and write your wiki — with proper Solr full-text search, not the half-broken legacy endpoint most clients default to.

Why this one

Most XWiki MCP servers (including ones generated by AI coding tools) wire up /rest/wikis/{wiki}/search. That endpoint is HQL-based and effectively searches page names only — so a query like "visibility metric" returns nothing if no page is literally named that, even when dozens of pages discuss the topic. xwiki-mcp defaults to /rest/wikis/query?type=solr, which is Solr-backed and indexes actual content with proper relevance ranking.

Tools

Read

ToolDescription
searchFull-text search (Solr by default, legacy fallback). Returns ranked results.
list_spacesList all spaces in the wiki
list_pagesList pages in a space (paginated)
get_pageGet page content and metadata
get_page_childrenList child pages
get_attachmentsList attachments on a page

Write (v0.2+)

ToolDescription
create_pageCreate or update a page (upsert via PUT). XML-safe escaping.
delete_pageDelete a page
add_commentAdd a comment to a page

Installation

npm install -g xwiki-mcp
# or
npx xwiki-mcp

From source:

git clone https://github.com/vitos73/xwiki-mcp
cd xwiki-mcp
npm install
npm run build

Configuration

Environment variables:

XWIKI_BASE_URL      # Required. Base URL without /rest (e.g. https://wiki.example.com)
XWIKI_AUTH_TYPE     # basic | token | none  (default: basic)
XWIKI_USERNAME      # For basic auth
XWIKI_PASSWORD      # For basic auth
XWIKI_TOKEN         # For token auth (Bearer)
XWIKI_WIKI_NAME     # Wiki name (default: xwiki)
XWIKI_REST_PATH     # REST path (default: /rest)
XWIKI_PAGE_LIMIT    # Default page size (default: 50)

Usage with Claude Code / Claude Desktop

Add to .mcp.json (Claude Code, project-scoped) or claude_desktop_config.json:

{
  "mcpServers": {
    "xwiki": {
      "command": "npx",
      "args": ["xwiki-mcp"],
      "env": {
        "XWIKI_BASE_URL": "https://wiki.example.com",
        "XWIKI_AUTH_TYPE": "basic",
        "XWIKI_USERNAME": "your-username",
        "XWIKI_PASSWORD": "your-password"
      }
    }
  }
}

Search syntax

Solr engine (default) supports:

  • bare terms — full-text match across title (boosted) + content
  • "exact phrase" — phrase match
  • title:foo / name:bar — restrict to a field
  • AND, OR, NOT — boolean operators
  • per-call space:"Parent.Child" parameter narrows results to one space tree

If Solr isn't indexed on your instance, pass engine: "legacy" to fall back to the HQL endpoint.

Development

npm run dev    # tsx, no build step
npm run build  # compile to dist/
npm test       # vitest

License

MIT