Xwiki MCP

Servidor MCP para a API REST do XWiki — leia sua wiki a partir do Claude e outros agentes de IA

Documentação

xwiki-mcp

npm version npm downloads license node

Servidor MCP para a API REST do XWiki. Permite que agentes de IA (Claude Code, Claude Desktop, etc.) pesquisem, leiam e escrevam no seu wiki — com pesquisa de texto completo Solr adequada, não o endpoint legado meio quebrado que a maioria dos clientes usa por padrão.

Por que este

A maioria dos servidores MCP do XWiki (incluindo os gerados por ferramentas de codificação de IA) conecta-se ao /rest/wikis/{wiki}/search. Esse endpoint é baseado em HQL e efetivamente pesquisa apenas nomes de páginas — então uma consulta como "visibility metric" não retorna nada se nenhuma página tiver exatamente esse nome, mesmo quando dezenas de páginas discutem o tópico. O xwiki-mcp usa por padrão o /rest/wikis/query?type=solr, que é baseado em Solr e indexa o conteúdo real com classificação de relevância adequada.

Ferramentas

Leitura

FerramentaDescrição
searchPesquisa de texto completo (Solr por padrão, fallback legado). Retorna resultados classificados.
list_spacesLista todos os espaços no wiki
list_pagesLista páginas em um espaço (paginado)
get_pageObtém conteúdo e metadados da página
get_page_childrenLista páginas filhas
get_attachmentsLista anexos em uma página

Escrita (v0.2+)

FerramentaDescrição
create_pageCria ou atualiza uma página (upsert via PUT). Escape seguro para XML.
delete_pageExclui uma página
add_commentAdiciona um comentário a uma página

Instalação

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

A partir do código-fonte:

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

Configuração

Variáveis de ambiente:

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)

Uso com Claude Code / Claude Desktop

Adicione ao .mcp.json (Claude Code, escopo do projeto) ou 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"
      }
    }
  }
}

Sintaxe de pesquisa

O mecanismo Solr (padrão) suporta:

  • termos simples — correspondência de texto completo no título (com peso) + conteúdo
  • "exact phrase" — correspondência de frase
  • title:foo / name:bar — restringir a um campo
  • AND, OR, NOT — operadores booleanos
  • o parâmetro space:"Parent.Child" por chamada restringe os resultados a uma árvore de espaço

Se o Solr não estiver indexado na sua instância, passe engine: "legacy" para usar o endpoint HQL como fallback.

Desenvolvimento

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

Licença

MIT