Skip to main content

wikijs-mcp

CI PyPI Python License: MIT

An MCP server that lets Claude (or any MCP client) manage a Wiki.js instance through its GraphQL admin API — read and write pages, manage navigation and groups, and trigger Git storage syncs.

Published on PyPI as mcp-server-wikijs; the source repo is margus/wikijs-mcp. The admin focus (navigation, groups, Git sync, raw GraphQL) sets it apart from content-authoring Wiki.js MCP servers.

How it works: MCP does not run inside Wiki.js. This is a small stdio server your MCP client launches locally; it talks to https://<your-wiki>/graphql. If your Wiki.js is on a private network, the machine running this needs network reach to it.

Tools

Tool What it does
execute_graphql(query, variables?) Run any Wiki.js GraphQL query/mutation (escape hatch)
list_pages(locale?, limit?) List pages (id, locale, path, title)
get_page(path?, locale?, id?) Get a page's content + metadata
create_page(path, title, content, …) Create a page
update_page(id, content?, title?, …) Update a page — only passed fields change
delete_page(id) Delete a page
get_navigation() Current nav mode + tree
set_navigation_mode(mode) NONE / TREE / MIXED / STATIC
list_groups() / get_group(id) Groups + their permissions/page rules
trigger_git_sync() Re-sync the Git storage target (re-import content repo)

Prerequisites

  1. A running Wiki.js 2.x instance.
  2. An API key: Administration → API Access → enable the API → New API Key (full access; the 2.x API isn't finely scoped). Copy the token.

Quick start

Run it on demand with uvx (no install) — set the two environment variables and go:

export WIKIJS_URL="https://wiki.example.com"
export WIKIJS_TOKEN="your-api-key"
uvx mcp-server-wikijs

Or install it:

pip install mcp-server-wikijs     # or: uv tool install mcp-server-wikijs
mcp-server-wikijs

The server speaks MCP over stdio, so running it directly just waits for a client — that's expected. Wire it into a client below.

Configuration

Variable Required Description
WIKIJS_URL ✅ Base URL of your Wiki.js instance (e.g. https://wiki.example.com). The GraphQL endpoint is <URL>/graphql.
WIKIJS_TOKEN ✅ Wiki.js API key. Aliases also accepted: WIKIJS_API_TOKEN, WIKI_JS_MCP_API_TOKEN.

For standalone runs you can instead drop a .env next to where you launch it (cp .env.example .env); it's loaded automatically.

Register with an MCP client

Claude Code

claude mcp add wikijs --env WIKIJS_URL=https://wiki.example.com --env WIKIJS_TOKEN=your-api-key -- uvx mcp-server-wikijs

…or add it to .mcp.json / your settings:

{
  "mcpServers": {
    "wikijs": {
      "command": "uvx",
      "args": ["mcp-server-wikijs"],
      "env": {
        "WIKIJS_URL": "https://wiki.example.com",
        "WIKIJS_TOKEN": "your-api-key"
      }
    }
  }
}

Tip: keep secrets out of committed files — reference an env var that's already in your shell, e.g. "WIKIJS_TOKEN": "${WIKIJS_TOKEN}", and start the client from a shell where it's set.

Claude Desktop

Add the same block to claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop.

Examples

Once registered, ask your assistant things like:

  • "List every page under clients/ in the en locale."
  • "Create a page at guides/onboarding titled 'Onboarding' with this content: …"
  • "Update page 31 — append a 'Troubleshooting' section, leave everything else."
  • "Trigger a Git sync so the wiki re-imports the content repo."

Security

The Wiki.js API key is full-admin — treat it as a privileged credential. Keep it in your secrets manager / environment, never commit it, and revoke or rotate it anytime from Wiki.js → API Access. Every write tool acts with that key's full authority, so review mutations before approving them.

Development

git clone https://github.com/margus/wikijs-mcp
cd wikijs-mcp
uv sync                # install runtime + dev deps
uv run pytest          # run the test suite (no live wiki needed — httpx is mocked)
uv run ruff check .    # lint

The Wiki.js logic lives in src/wikijs_mcp/client.py (WikiJSClient), unit-tested against httpx.MockTransport. src/wikijs_mcp/server.py is a thin layer of MCP tool wrappers over it. See CONTRIBUTING.md.

License

MIT

Metadata

Release files for mcp-server-wikijs 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-server-wikijs 0.1.0
File Size Uploaded
mcp_server_wikijs-0.1.0.tar.gz 60.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-server-wikijs 0.1.0
File Interpreter ABI Platform
mcp_server_wikijs-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 70.4 kB

Release files / mcp_server_wikijs-0.1.0.tar.gz

Download URL mcp_server_wikijs-0.1.0.tar.gz
Size 60.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a206bf90e46127e620441861f8133bbf2120d6da227294ea326c3ca52423ffba
BLAKE2b-256 checksum
How to use checksums
ced2fae3d6073d375fa3aab7e05ad7c3f4f96025ef618c442d3e86746ab0e7e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 25, 2026.

Transparency log

Release files / mcp_server_wikijs-0.1.0-py3-none-any.whl

Download URL mcp_server_wikijs-0.1.0-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f4a586c1c0ca0083328bcaab1c16b1a59dad02fafefb96b1090a860333f1857e
BLAKE2b-256 checksum
How to use checksums
4afa317a68dcb87ca285272fa654795f30661950f19c313b0c536f662d2b3766
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page