Skip to main content
Glama

MediaWiki MCP Server

Connect your AI assistant to any MediaWiki wiki, or script it directly from the terminal. Search, read, and edit wiki content using natural language or the wiki CLI.

CI lint CodeScene Average Code Health License: MIT

Three ways to use it:

  1. MCP server — Claude Desktop, Claude Code, Cursor, ChatGPT, n8n, VS Code, Google ADK, or any MCP-compatible tool. See SETUP.md.

  2. wiki CLI — same API client, same auth, no AI needed. For shell pipelines, CI checks, cron jobs. See CLI.md.

  3. Claude Code plugin — /plugin marketplace add olgasafonova/mediawiki-mcp-server adds wiki skills directly to Claude Code. See .claude-plugin/README.md.


Documentation

Document

What it covers

QUICKSTART.md

Get running in 2 minutes

SETUP.md

Per-tool configuration (Claude Desktop, Cursor, ChatGPT, n8n, VS Code, Google ADK)

CLI.md

wiki command-line reference

TOOLS.md

Full tool reference (43 tools by category)

DEPLOYMENT.md

HTTP transport, security, endpoints, env vars

TIETO_SETUP.md

Connect to Tieto's Public 360° Wiki (beginner-friendly)

WIKI_USE_CASES.md

Detailed workflows by persona

ARCHITECTURE.md

System design

CONTRIBUTING.md

How to contribute

SECURITY.md

Security policies

CHANGELOG.md

Version history


Related MCP server: mcp-mediawiki-crunchtools

What Can You Do?

The same operation works from a prompt (via MCP) or directly in your shell (via the wiki CLI):

Goal

Prompt your AI

From your terminal

Search the wiki

"What does our wiki say about onboarding?"

wiki search "onboarding"

Read a page

"Show me the Getting Started page"

wiki page "Getting Started"

Find broken links

"Are there broken links on the Docs page?"

wiki links broken --json

Find stale content

"Which pages haven't been updated in 90 days?"

wiki stale-pages --days 90

Cross-link suggestions

"What pages are similar to the API Reference?"

wiki similar "API Reference"

Audit wiki health

"Run a health check on the wiki"

wiki audit --json

Publish markdown

"Publish this README to the wiki"

wiki publish README.md "Page Title"

Strike a name

"Strike out John Smith on the Team page"

wiki replace "Team" --find "John Smith" --replace "<s>John Smith</s>"

For the full tool list, see TOOLS.md. The CLI returns typed exit codes for CI-friendly branching — see CLI.md.


30-Second Start

  1. Get the binary. Download from Releases or go build -o mediawiki-mcp-server . (requires Go 1.24+).

  2. Find your wiki API URL — usually https://your-wiki.com/api.php. Wikipedia is https://en.wikipedia.org/w/api.php. Visit Special:Version to confirm.

  3. Wire it up to your AI tool — see SETUP.md for the configuration that matches your client.

Reading public wikis works without login. Private/corporate wikis and editing require a bot password — SETUP.md#editing-wiki-pages.


Example Prompts

📖 More examples: see WIKI_USE_CASES.md for detailed workflows by persona (content editors, documentation managers, developers).

Search and read:

  • "What does our wiki say about deployment?"

  • "Give me a quick overview of the Configuration page"

  • "Get the content of Main Page, FAQ, and Setup all at once"

Track changes:

  • "What pages were updated this week?"

  • "Show me the diff between the last two versions"

  • "Who are the most active editors this month?"

Check quality:

  • "Are there broken links on this page?"

  • "Find orphaned pages with no links to them"

  • "Find pages similar to the Installation Guide"

  • "Find pages not updated in the last 90 days"

Page management (requires auth):

  • "Rename 'Old Guide' to 'Updated Guide'"

  • "Strike out John Smith on the Team page"

  • "Replace 'version 2.0' with 'version 3.0' on Release Notes"

File uploads and search (requires auth):

  • "Upload this image from URL to the wiki"

  • "Upload this local file to the wiki" (the agent base64-encodes the bytes; no public URL needed)

  • "Search for 'budget' in File:Annual-Report.pdf"

Convert Markdown:

  • "Convert this README to wiki format"

  • "Convert with Tieto branding and CSS" (use theme="tieto", add_css=true)


PDF Search Setup

PDF search requires the pdftotext tool from poppler-utils. Text file search (TXT, MD, CSV, etc.) works without any dependencies.

Platform

Install Command

macOS

brew install poppler

Ubuntu/Debian

apt install poppler-utils

RHEL/CentOS

yum install poppler-utils

Windows

choco install poppler

Windows alternative: Download binaries from poppler-windows releases and add to PATH.

Verify installation:

pdftotext -v

Compatibility

Platform

Transport

Status

Claude Desktop (Mac/Windows)

stdio

✅ Supported

Claude Code CLI

stdio

✅ Supported

Cursor

stdio

✅ Supported

VS Code

stdio

✅ Supported

ChatGPT

HTTP

✅ Supported

n8n

HTTP

✅ Supported

Google ADK

stdio / HTTP

✅ Supported

Works with any wiki: Wikipedia, Fandom, corporate wikis, or any MediaWiki installation.


Troubleshooting

Common issues and fixes live in SETUP.md#troubleshooting. For deeper diagnostics, the HTTP server exposes /health, /ready, and /status endpoints — see DEPLOYMENT.md.


Development

Build, test, and contribute: see CONTRIBUTING.md. For the system design, package layout, and data flow, see ARCHITECTURE.md.

Run the full check before pushing:

go test -race -failfast ./...
golangci-lint run ./...

Integration tests run against a real MediaWiki instance via docker-compose.test.yml. See CONTRIBUTING.md for the workflow.


Like This Project?

If this server saved you time, consider giving it a ⭐ on GitHub. It helps others discover the project.

More MCP Servers

Check out my other MCP servers:

Server

Description

Stars

gleif-mcp-server

Access GLEIF LEI database. Look up company identities, verify legal entities.

GitHub stars

miro-mcp-server

Control Miro whiteboards with AI. Boards, diagrams, mindmaps, and more.

GitHub stars

nordic-registry-mcp-server

Access Nordic business registries. Look up companies across Norway, Denmark, Finland, Sweden.

GitHub stars

productplan-mcp-server

Talk to your ProductPlan roadmaps. Query OKRs, ideas, launches.

GitHub stars

tilbudstrolden-mcp

Nordic grocery deal hunting. Find offers, plan meals, track spending.

GitHub stars

mcp-servercard-go

Go library for SEP-2127 Server Cards. Pre-connect discovery for MCP servers.

GitHub stars


License

MIT License

Credits

Available Tools

43 tools
mediawiki_apply_formattingA
Destructive

BEST for adding formatting markup to specific text.

USE WHEN: User says "strike out X", "cross out the name", "make X bold", "italicize Y", "mark as code".

NOT FOR: Replacing text (use mediawiki_find_replace).

PARAMETERS:

  • title: Page name (required)

  • text: Text to format (required)

  • format: Formatting type (required):

    • "strikethrough": text (for removed/former items)

    • "bold": '''text'''

    • "italic": ''text''

    • "underline": text

    • "code": text

  • all: Format all occurrences (default false)

  • preview: Preview changes without saving. Omit to preview (default true); set preview=false to apply.

  • summary: Edit summary

RETURNS: Preview of formatting applied. Set preview=false to apply. Includes revision ID, diff URL, and undo instructions.

NOTE: Requires authentication (bot password) to apply changes. Anonymous sessions cannot edit.

Inputs: text (required), title (required), format (required), rationale (required), +3 more. Returns: undo, title, changes, message, +7 more

mediawiki_auditA
Read-only

Run comprehensive wiki health audit with multiple checks.

USE WHEN: User asks "run health check", "audit the wiki", "check wiki quality".

PARAMETERS:

  • checks: Array of checks to run (default all):

    • "links": Broken internal links

    • "terminology": Glossary violations

    • "orphans": Unlinked pages

    • "activity": Recent changes

    • "external": Broken external links (slow)

  • limit: Max items per check (default 20)

RETURNS: Health score (0-100), detailed results per check, and recommendations.

Inputs: limit, pages, checks, category, +1 more. Returns: errors, summary, wiki_name, audited_at, +7 more

mediawiki_batch_get_pagesA
Read-only

Retrieve content from MULTIPLE pages in a single API call.

USE WHEN: You need content from 2+ pages. Much faster than individual mediawiki_get_page calls.

NOT FOR: Single page (use mediawiki_get_page). Not for metadata only (use mediawiki_batch_get_pages_info).

PARAMETERS:

  • titles: Array of page titles (required, max 50)

  • format: "wikitext" (default) or "html"

RETURNS: Page content for each title, with exists/missing status. Missing pages are reported, not errors.

Inputs: titles (required), format, rationale. Returns: pages, found_count, total_count, missing_count

mediawiki_batch_get_pages_infoA
Read-only

Get metadata for MULTIPLE pages in a single API call.

USE WHEN: You need info (last edit, size, categories) for 2+ pages without their content.

NOT FOR: Single page (use mediawiki_get_page_info). Not for content (use mediawiki_batch_get_pages).

PARAMETERS:

  • titles: Array of page titles (required, max 50)

RETURNS: Metadata (size, last edit, categories, protection) per page. Missing pages reported with exists=false.

Inputs: titles (required), rationale. Returns: pages, total_count, exists_count, missing_count

mediawiki_bulk_replaceA
Destructive

Update text across MULTIPLE pages at once.

USE WHEN: User says "update everywhere", "fix on all pages", "change brand name across docs", "update in all documentation".

NOT FOR: Single page changes (use mediawiki_find_replace - more efficient).

PARAMETERS:

  • find: Text to find (required)

  • replace: Replacement text (required)

  • pages: Array of specific pages (optional)

  • category: Update all pages in category (optional)

  • use_regex: Treat find as regex (default false)

  • preview: Preview changes without saving. Omit to preview (default true) — ALWAYS preview a multi-page run first; set preview=false only once the diff looks right.

  • limit: Max pages to update (default 50)

  • summary: Edit summary

WARNING: Always use preview=true first to verify matches before applying.

RETURNS: Changes per page. Set preview=false to apply all changes. Includes revision ID, diff URL, and undo instructions.

NOTE: Requires authentication (bot password) to apply changes. Anonymous sessions cannot edit.

Inputs: find (required), replace (required), rationale (required), limit, +5 more. Returns: message, preview, results, total_changes, +2 more

mediawiki_check_terminologyA
Read-only

Scan pages for terminology violations against a glossary.

USE WHEN: User asks "check brand terminology", "find incorrect terms", "verify consistent naming".

PARAMETERS:

  • pages: Array of pages to check (optional)

  • category: Check all pages in category (optional)

  • glossary_page: Wiki page with term mappings (default "Brand Terminology Glossary")

  • exclude_code_blocks: Skip code blocks (default true)

  • limit: Max pages (default 10)

RETURNS: Violations with page, line, wrong term, and correct term.

Inputs: limit, pages, category, rationale, +2 more. Returns: pages, issues_found, terms_loaded, glossary_page, +1 more

mediawiki_check_translationsA
Read-only

Find pages missing translations in specified languages.

USE WHEN: User asks "which pages need German translation", "find missing translations", "check language coverage".

PARAMETERS:

  • languages: Array of language codes (required, e.g., ["de", "fr", "es"])

  • base_pages: Specific pages to check (optional)

  • category: Check pages in category (optional)

  • pattern: Naming pattern - "subpages" (Page/de), "suffixes" (Page (de)), or "prefixes" (de:Page)

  • limit: Max pages (default 50)

RETURNS: Missing translations grouped by language.

Inputs: languages (required), limit, pattern, category, +2 more. Returns: pages, pattern, missing_count, pages_checked, +1 more

mediawiki_compare_revisionsA
Read-only

Compare two revisions and show the diff.

USE WHEN: User asks "what changed between versions", "show the diff", "compare old and new".

NOT FOR: Just listing revisions (use mediawiki_get_revisions). Not for comparing a topic across pages (use mediawiki_compare_topic).

PARAMETERS:

  • from_rev: Source revision ID, OR

  • from_title: Source page title (uses latest revision)

  • to_rev: Target revision ID, OR

  • to_title: Target page title

RETURNS: HTML-formatted diff showing additions (green) and deletions (red).

Inputs: to_rev, from_rev, to_title, rationale, +1 more. Returns: diff, to_user, to_revid, to_title, +5 more

mediawiki_compare_topicA
Read-only

Compare how a topic is described across multiple pages.

USE WHEN: User asks "how is X described on different pages", "find inconsistencies about timeout", "compare definitions of Y".

NOT FOR: Comparing page revisions (use mediawiki_compare_revisions).

PARAMETERS:

  • topic: Topic or term to compare (required)

  • category: Limit to pages in category (optional)

  • limit: Max pages to check (default 20)

RETURNS: Page mentions with context, detected value mismatches, and inconsistencies.

Inputs: topic (required), limit, category, rationale. Returns: topic, summary, pages_found, page_mentions, +1 more

mediawiki_convert_markdownA
Read-only

Convert Markdown text to MediaWiki markup. Use this tool when you need to transform Markdown-formatted content into wiki-compatible format before creating or editing wiki pages.

WHEN TO USE:

  • User provides Markdown content to add to the wiki

  • Converting documentation from GitHub/GitLab to wiki format

  • Transforming README files for wiki publishing

  • Preparing release notes written in Markdown

THEMES:

  • "tieto": Tieto brand colors (Hero Blue #021e57 headings, yellow code highlights)

  • "neutral": Clean output without custom colors (default)

  • "dark": Dark mode optimized colors

OPTIONS:

  • add_css: Include CSS styling block for branded appearance

  • reverse_changelog: Reorder changelog entries newest-first

  • prettify_checks: Replace plain checkmarks with emoji

EXAMPLE: Input: "# Hello\nbold and italic\n- item 1\n- item 2" Output: "= Hello =\n'''bold''' and ''italic''\n* item 1\n* item 2"

Inputs: markdown (required), theme, add_css, prettify_checks, +1 more. Returns: wikitext, theme_used, input_length, output_length, +1 more

mediawiki_edit_pageA
Destructive

Create new pages or rewrite entire page content.

USE WHEN: User says "create a new page", "rewrite the entire About page", "replace all content".

NOT FOR: Simple text changes (use mediawiki_find_replace). Not for formatting (use mediawiki_apply_formatting).

PARAMETERS:

  • title: Page name (required)

  • content: New page content (required)

  • section: Edit specific section only (optional)

  • summary: Edit summary (required for good practice)

  • minor: Mark as minor edit (default false)

  • bot: Mark as bot edit (default false)

  • base_timestamp: Revision timestamp from mediawiki_get_page (optional, recommended). When set, the edit fails with 'editconflict' if someone else changed the page since that revision, instead of silently overwriting their edit. On conflict: re-read with mediawiki_get_page and reapply.

  • preview: Preview changes without saving. Omit to preview (default true, for safety): the current revision is fetched, a line diff of what would change is returned, and nothing is written and no token is consumed. Set preview=false to apply the edit.

RETURNS: Preview (default): per-line diff of the planned content against the current revision ('changes' entries: before=removed line, after=added line, a modified line appears as its removal followed by its addition), plus new_page=true when the edit would create the page. With preview=false: revision ID, diff URL, and undo instructions.

NOTE: Requires authentication (bot password) to apply changes. Anonymous sessions cannot edit.

WARNING: This overwrites entire page content unless section is specified. Preview first (omit preview) before applying.

Inputs: title (required), content (required), rationale (required), bot, +7 more. Returns: title, changes, message, page_id, +8 more

mediawiki_find_orphaned_pagesA
Read-only

Find pages with no incoming links from other pages.

USE WHEN: User asks "find orphan pages", "which pages have no links", "find undiscoverable content".

PARAMETERS:

  • namespace: Filter by namespace (default 0 = main)

  • prefix: Filter by title prefix (optional)

  • limit: Max orphans to return (default 50)

RETURNS: List of orphaned page titles.

Inputs: limit, prefix, namespace, rationale. Returns: total_checked, orphaned_count, orphaned_pages

mediawiki_find_replaceA
Destructive

PREFERRED for simple text changes on a single page.

USE WHEN: User says "replace X with Y", "fix the typo", "change the version number", "update the name".

NOT FOR: Creating/rewriting pages (use mediawiki_edit_page). Not for multi-page updates (use mediawiki_bulk_replace). Not for formatting (use mediawiki_apply_formatting).

PARAMETERS:

  • title: Page name (required)

  • find: Text to find (required)

  • replace: Replacement text (required)

  • all: Replace all occurrences (default false = first only)

  • use_regex: Treat find as regex (default false)

  • preview: Preview changes without saving. Omit to preview (default true, for safety); set preview=false to apply.

  • summary: Edit summary

RETURNS: Match count and preview of changes. Set preview=false to apply. Includes revision ID, diff URL, and undo instructions.

NOTE: Requires authentication (bot password) to apply changes. Anonymous sessions cannot edit.

Inputs: find (required), title (required), replace (required), rationale (required), +5 more. Returns: undo, title, changes, message, +6 more

mediawiki_find_similar_pagesA
Read-only

Find pages with similar content (potential duplicates or overlaps).

USE WHEN: User asks "find similar pages", "are there duplicates", "what pages overlap with X".

NOT FOR: Finding related pages by links (use mediawiki_get_related).

PARAMETERS:

  • page: Source page name (required)

  • category: Limit search to category (optional)

  • min_score: Minimum similarity threshold 0-1 (default 0.1)

  • limit: Max similar pages (default 10)

RETURNS: Similar pages with similarity scores and linking recommendations.

Inputs: page (required), limit, category, min_score, +1 more. Returns: message, source_page, similar_pages, total_compared

mediawiki_get_category_membersA
Read-only

Get all pages that belong to a specific category.

USE WHEN: User asks "show pages in Documentation category", "list all tutorials", "what's in Category:API".

NOT FOR: Listing categories themselves (use mediawiki_list_categories).

PARAMETERS:

  • category: Category name without "Category:" prefix (required)

  • type: Filter by type - "page", "subcat", "file", or all (default)

  • limit: Max members (default 50)

  • continue_from: Pagination token

RETURNS: Page titles in the category.

Inputs: category (required), type, limit, rationale, +1 more. Returns: members, category, has_more, continue_from

mediawiki_get_imagesA
Read-only

Get all images and files used on a wiki page.

USE WHEN: User asks "what images are on X", "show files used in the article", "list media on this page".

PARAMETERS:

  • title: Page name (required)

  • limit: Max images (default 50)

RETURNS: Image titles, URLs, dimensions, and file sizes.

Inputs: title (required), limit, rationale. Returns: count, title, images

mediawiki_get_pageA
Read-only

Retrieve full wiki page content.

USE WHEN: User says "show me the X page", "what's on the Main Page", "read the FAQ".

NOT FOR: Getting page structure/TOC (use mediawiki_get_sections). Not for searching content (use mediawiki_search_in_page). Not for metadata only (use mediawiki_get_page_info). If title not found, use mediawiki_resolve_title to handle typos and case sensitivity.

PARAMETERS:

  • title: Page name (required)

  • format: "wikitext" (default) or "html"

RETURNS: Page content in requested format. Large pages truncated at 25KB.

Inputs: title (required), format, rationale. Returns: title, format, content, message, +4 more

mediawiki_get_page_infoA
Read-only

Get page metadata without content.

USE WHEN: User asks "when was X last edited", "who created the FAQ", "is the page protected".

NOT FOR: Getting page content (use mediawiki_get_page). Not for full edit history (use mediawiki_get_revisions).

PARAMETERS:

  • title: Page name (required)

RETURNS: Last edit timestamp, page size, protection status, creator.

Inputs: title (required), rationale. Returns: title, exists, length, page_id, +10 more

mediawiki_get_page_summaryA
Read-only

Get lead section + key metadata without loading the full page.

USE WHEN: User asks "what is X about", "quick overview of X", "summarize the X page". Much lighter than mediawiki_get_page for large pages.

NOT FOR: Full page content (use mediawiki_get_page). Not for specific sections (use mediawiki_get_sections with section parameter).

PARAMETERS:

  • title: Page name (required)

RETURNS: Lead section (intro before first heading), page size, categories, section list, last edit timestamp.

Inputs: title (required), rationale. Returns: title, format, length, message, +9 more

mediawiki_get_recent_changesA
Read-only

Get recent changes across the entire wiki.

USE WHEN: User asks "what's been changed recently", "show wiki activity", "who's been editing".

NOT FOR: Single page history (use mediawiki_get_revisions). Not for user-specific edits (use mediawiki_get_user_contributions).

PARAMETERS:

  • limit: Max changes (default 50)

  • start, end: Time range (ISO 8601)

  • namespace: Filter by namespace

  • type: Filter by change type (edit, new, log)

  • aggregate_by: Group results - "user", "page", or "type"

RETURNS: Recent changes with timestamps, users, and summaries. Aggregation returns counts.

Inputs: end, type, limit, start, +4 more. Returns: changes, has_more, aggregated, continue_from

mediawiki_get_revisionsA
Read-only

Get revision history for a specific page.

USE WHEN: User asks "who edited the FAQ", "show edit history of X", "when was this page last changed".

NOT FOR: Wiki-wide activity (use mediawiki_get_recent_changes). Not for comparing versions (use mediawiki_compare_revisions).

PARAMETERS:

  • title: Page name (required)

  • limit: Max revisions (default 50)

  • start, end: Time range (ISO 8601)

  • user: Filter by user

RETURNS: Revision list with timestamps, users, sizes, and edit summaries.

Inputs: title (required), end, user, limit, +2 more. Returns: count, title, page_id, has_more, +1 more

mediawiki_get_sectionsA
Read-only

Get page section structure (TOC) or specific section content.

USE WHEN: User asks "what sections does X have", "show the table of contents", "get the Installation section".

NOT FOR: Full page content (use mediawiki_get_page).

PARAMETERS:

  • title: Page name (required)

  • section: Section index to retrieve content (optional; omit for TOC only)

  • format: "wikitext" (default) or "html" (for section content)

RETURNS: Section headings with indices, or specific section content.

Inputs: title (required), format, section, rationale. Returns: title, format, message, page_id, +3 more

mediawiki_get_stale_pagesA
Read-only

Find pages that haven't been edited in a specified number of days.

USE WHEN: User asks "find outdated pages", "which pages need review", "show stale content", "wiki hygiene check".

NOT FOR: Recent activity (use mediawiki_get_recent_changes). Not for orphaned pages (use mediawiki_find_orphaned_pages).

PARAMETERS:

  • days: Staleness threshold in days (default 90)

  • category: Limit to pages in this category (optional)

  • namespace: Namespace to check (default 0 = main)

  • limit: Max pages to return (default 50, max 200)

RETURNS: Stale pages sorted by last edit (oldest first), with days since edit and last editor.

Inputs: days, limit, category, namespace, +1 more. Returns: message, stale_count, stale_pages, total_scanned, +1 more

mediawiki_get_user_contributionsA
Read-only

Get all edits made by a specific user.

USE WHEN: User asks "what did John edit", "show user's contributions", "list edits by admin".

NOT FOR: Page-specific history (use mediawiki_get_revisions). Not for wiki-wide activity (use mediawiki_get_recent_changes).

PARAMETERS:

  • user: Username (required)

  • limit: Max contributions (default 50)

  • start, end: Time range (ISO 8601)

  • namespace: Filter by namespace

RETURNS: List of pages edited with timestamps and summaries.

Inputs: user (required), end, limit, start, +2 more. Returns: user, count, has_more, contributions

mediawiki_get_wiki_infoA
Read-only

Get information about the wiki itself.

USE WHEN: User asks "what wiki is this", "wiki statistics", "MediaWiki version".

PARAMETERS: None

RETURNS: Wiki name, version, statistics (pages, users, edits).

Inputs: rationale. Returns: server, base_url, language, timezone, +7 more

mediawiki_list_categoriesA
Read-only

List all categories in the wiki.

USE WHEN: User asks "what categories exist", "show all categories", "list available categories".

NOT FOR: Getting pages in a category (use mediawiki_get_category_members).

PARAMETERS:

  • prefix: Filter by category name prefix (optional)

  • limit: Max categories (default 50)

  • continue_from: Pagination token

RETURNS: Category names and page counts.

Inputs: limit, prefix, rationale, continue_from. Returns: has_more, categories, continue_from

mediawiki_list_pagesA
Read-only

List wiki pages with optional prefix filter.

USE WHEN: User asks "list all pages", "show pages starting with API", "what pages exist".

NOT FOR: Finding pages by content (use mediawiki_search).

PARAMETERS:

  • prefix: Filter by title prefix (optional)

  • namespace: Namespace ID (default 0 = main)

  • limit: Max pages (default 50)

  • continue_from: Pagination token from previous response

RETURNS: Page titles and IDs.

Inputs: limit, prefix, namespace, rationale, +1 more. Returns: pages, has_more, total_count, continue_from, +2 more

mediawiki_list_usersA
Read-only

List wiki users with optional group filtering.

USE WHEN: User asks "who are the admins", "list all users", "show active editors".

PARAMETERS:

  • group: Filter by group - "sysop" (admins), "bureaucrat", "bot" (optional)

  • active_only: Only show recently active users (default false)

  • limit: Max users (default 50)

  • continue_from: Pagination token

RETURNS: User names, groups, edit counts, and registration dates.

Inputs: group, limit, rationale, active_only, +1 more. Returns: group, users, has_more, total_count, +1 more

mediawiki_manage_categoriesA
Destructive

Add or remove categories from a page without editing the full content.

USE WHEN: User says "add category X to this page", "remove this from category Y", "categorize this page".

NOT FOR: Listing categories (use mediawiki_list_categories). Not for viewing category members (use mediawiki_get_category_members).

PARAMETERS:

  • title: Page name (required)

  • add: Array of category names to add (without "Category:" prefix)

  • remove: Array of category names to remove (without "Category:" prefix)

  • preview: Preview changes without saving. Omit to preview (default true, for safety); set preview=false to apply.

  • summary: Edit summary

RETURNS: Which categories were added, removed, already present, or not found. Includes revision ID, diff URL, and undo instructions.

NOTE: Requires authentication (bot password) to apply changes. Anonymous sessions cannot edit.

Inputs: title (required), rationale (required), add, remove, +2 more. Returns: undo, added, title, message, +8 more

mediawiki_move_pageA
Destructive

Move (rename) a wiki page. Creates a redirect from the old title.

USE WHEN: User says "rename the page", "move X to Y", "change the page title".

NOT FOR: Editing page content (use mediawiki_edit_page or mediawiki_find_replace).

PARAMETERS:

  • from: Current page title (required)

  • to: New page title (required)

  • reason: Reason for the move (optional)

  • no_redirect: Don't create redirect from old title (default false)

  • move_talk: Also move the talk page (default true)

  • move_subpages: Also move subpages (default false)

RETURNS: Includes revision ID, diff URL, and undo instructions.

WARNING: Requires authentication (bot password) and move permissions. Creates a redirect from the old title by default.

Inputs: to (required), from (required), rationale (required), reason, +3 more. Returns: to, from, reason, message, +3 more

mediawiki_parseA
Read-only

Parse wikitext and return rendered HTML.

USE WHEN: User wants to preview wikitext rendering, test markup syntax.

PARAMETERS:

  • wikitext: Wikitext content to parse (required)

  • title: Context page title for link resolution (optional)

RETURNS: Rendered HTML output.

Inputs: wikitext (required), title, rationale. Returns: html, links, message, truncated, +1 more

mediawiki_resolve_titleA
Read-only

RECOVERY tool when page not found due to case sensitivity or typos.

USE WHEN: User got "page not found" and suspects wrong capitalization or spelling. E.g., "module overview" should be "Module Overview".

NOT FOR: Finding pages about a topic (use mediawiki_search instead).

PARAMETERS:

  • title: Approximate page name (required)

  • fuzzy: Enable fuzzy matching for typos (default true)

  • max_results: Max suggestions (default 5)

RETURNS: Suggested correct page titles with confidence scores.

Inputs: title (required), fuzzy, rationale, max_results. Returns: message, page_id, exact_match, suggestions, +1 more

mediawiki_search_and_readA
Read-only

Search wiki AND read the top result(s) in a single call.

USE WHEN: User asks a question about wiki content. This is the fastest path from question to answer — eliminates the search-then-read round trip.

NOT FOR: Known page titles (use mediawiki_get_page directly). Not for listing search results without reading (use mediawiki_search).

PARAMETERS:

  • query: Search text (required)

  • read_count: How many top results to read (default 1, max 5)

  • format: "wikitext" (default) or "html"

RETURNS: Full content of top result(s) plus remaining search hits as summaries.

Inputs: query (required), format, rationale, read_count. Returns: pages, query, message, other_hits, +1 more

mediawiki_search_in_fileA
Read-only

Search for text within wiki-hosted files (PDFs, text files).

USE WHEN: User asks "search the PDF for X", "find X in the uploaded document".

NOT FOR: Searching wiki pages (use mediawiki_search or mediawiki_search_in_page).

PARAMETERS:

  • filename: File name on wiki (required)

  • query: Text to search for (required)

RETURNS: Matches with page numbers (for PDFs) or line numbers.

NOTE: Supports text-based PDFs and text files (TXT, MD, CSV, JSON, XML, HTML). Scanned/image PDFs require OCR and are not supported.

Inputs: query (required), filename (required), rationale. Returns: matches, message, filename, file_type, +2 more

mediawiki_search_in_pageA
Read-only

Search WITHIN a known page (not across wiki).

USE WHEN: User says "find X on page Y", "does page Y mention X", "search for X in the Configuration page".

NOT FOR: Finding which page contains info (use mediawiki_search instead).

PARAMETERS:

  • title: Page name (required)

  • query: Text to find (required)

  • use_regex: Enable regex matching (optional)

  • context_lines: Lines of context around matches (default 2)

RETURNS: Matches with line numbers and surrounding context.

Inputs: query (required), title (required), rationale, use_regex, +1 more. Returns: query, title, matches, match_count

mediawiki_upload_fileA
Destructive

Upload a file to the wiki from base64 bytes or a URL.

USE WHEN: User says "upload this image", "add file to wiki", "import document".

PARAMETERS:

  • filename: Target filename on wiki (required)

  • file_data: Base64-encoded file contents (one of file_data or file_url required). Use this when you already have the bytes; it skips the URL-fetch path. Mutually exclusive with file_url.

  • file_url: Source URL for the wiki to fetch (alternative to file_data). Mutually exclusive with file_data.

  • text: File description page content (optional)

  • comment: Upload comment (optional)

  • ignore_warnings: Overwrite existing file (default false)

RETURNS: Upload status and file page URL. Includes revision ID, diff URL, and undo instructions.

NOTE: Requires authentication. For file_url, the URL must be publicly accessible.

SECURITY: file_data uploads bytes directly and never triggers a server-side fetch, so the allowlist/SSRF gates do not apply to that path. For file_url, the source host must be on the MEDIAWIKI_UPLOAD_ALLOWED_DOMAINS env-var allowlist (fail-closed when unset), and private/internal IPs are blocked unconditionally. Decoded file_data is capped at 100 MiB by default — matching MediaWiki's default max upload size — and is adjustable via MEDIAWIKI_MAX_UPLOAD_DATA_BYTES. ignore_warnings=true overwrites existing files; the destructive-hint annotation is set so hosts that gate destructive operations will prompt before this runs.

Inputs: filename (required), rationale (required), text, comment, +4 more. Returns: url, size, message, page_id, +3 more

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 43 tools

    Disambiguation4/5

    The descriptions are unusually explicit, using USE WHEN and NOT FOR clauses to route between near-pairs (get_page vs get_page_summary vs get_sections vs get_page_info; search vs search_in_page vs search_in_file; find_replace vs bulk_replace; get_related vs find_similar_pages). The single-vs-batch variants (get_external_links/get_external_links_batch, get_page_info/batch_get_pages_info) are clearly demarcated. The only residual ambiguity is the dense cluster of page-content readers where overlap is inherent.

    Naming Consistency4/5

    Almost everything follows a predictable mediawiki_verb_noun snake_case pattern (list_pages, get_revisions, check_links, find_replace). The main blemish is inconsistent placement of the 'batch' qualifier: batch_get_pages (prefix) versus get_external_links_batch (suffix). Naming is still highly readable and uniform overall.

    Tool Count2/5

    At 43 tools the surface is well beyond the 25+ threshold for 'too many,' and there is real redundancy: single-vs-batch duplicates (get_external_links/get_external_links_batch, get_page_info/batch_get_pages_info), four overlapping content readers, and four search variants. Each tool is individually reasonable, but the set could be consolidated substantially.

    Completeness4/5

    Coverage is broad: read/search/edit/replace, categories, moves, uploads, history, terminology and translation checks, and link auditing. Gaps are minor but notable — there is no page-delete or revision-revert/rollback tool, and no protection management. Agents can work around these, so it is not a blocking gap.

    Maintenance

    ActivityActive
    ResponsivenessUsually handled

    Related MCP Connectors

    Related MCP Servers