mediawiki-mcp-server
The MediaWiki MCP Server enables Large Language Model (LLM) clients to interact with any MediaWiki wiki through various API functions:
Read wiki pages: Retrieve page content with options for source/rendered HTML, license, and revision info
View page history: Access revision history in segments with filtering options
Search wiki content: Find specific terms in page titles and content with configurable result limits
Get file information: Access details and download links for files in various formats
Create new pages: Generate wiki pages with specified content and comments (requires OAuth 2.0)
Update existing pages: Replace content in existing pages (requires OAuth 2.0)
Set target wiki: Define which wiki instance to interact with in the current session
Enables interaction with any MediaWiki wiki, including Wikipedia, providing tools to create and update pages, retrieve file information, search page content, access page history, and set the wiki to use for the current session.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mediawiki-mcp-serversearch for articles about artificial intelligence"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MediaWiki MCP Server
An MCP (Model Context Protocol) server that enables Large Language Model (LLM) clients to interact with any MediaWiki wiki.
Features
Tools
Page reads
Name | Description |
| Diff two versions of a wiki page by revision, title, or supplied wikitext. |
| List members of a category (up to 500 per call, paginated via |
| Fetch a file page. |
| Fetch a wiki page. |
| List recent revisions of a wiki page. |
| Fetch multiple wiki pages in one call (up to 50). |
| List recent change events across the wiki, filterable by timestamp, namespace, user, tag, type, and hide flags (up to 50 per call, paginated via |
| Fetch a specific revision of a page. |
| Render wikitext to HTML without saving. Returns parse warnings, wikilinks, templates, and external URLs. |
| Search wiki page titles and contents. |
| Search page titles by prefix. |
Page writes
Name | Description | Permissions |
| Create a new wiki page. |
|
| Delete a wiki page. |
|
| Undelete a wiki page. |
|
| Upload a new revision of an existing file from local disk. |
|
| Upload a new revision of an existing file from a URL. |
|
| Update an existing wiki page. |
|
| Upload a file to the wiki from local disk. |
|
| Upload a file to the wiki from a URL. |
|
Wiki management
Name | Description |
| Add a wiki as an MCP resource from its URL. Disabled when |
| Remove a wiki resource. Disabled when |
| Set the active wiki for the current session. Disabled when fewer than two wikis are configured. |
OAuth
Name | Description |
| Remove stored OAuth tokens. Stdio only. |
| List stored OAuth tokens with scopes and expiry (no token values). Stdio only. |
Extension packs
Name | Description |
| Run a Bucket extension Lua query. Enabled only when the wiki has Bucket installed. |
| List the fields of a Cargo extension table with their types and list-flags. Enabled only when the wiki has Cargo installed. |
| List Cargo tables defined on the active wiki. Enabled only when the wiki has Cargo installed. |
| Run a Cargo extension SQL-style query. Enabled only when the wiki has Cargo installed. |
| List Semantic MediaWiki properties with copy-paste templates for |
| Run a Semantic MediaWiki |
Resources
mcp://wikis/{wikiKey} — per-wiki resource exposing sitename, server, articlepath, scriptpath, and a private flag.
Credentials (
token,username,password) are never exposed in resource content.After
add-wikiorremove-wiki, the server sendsnotifications/resources/list_changedso clients refresh.
{
"contents": [
{
"uri": "mcp://wikis/en.wikipedia.org",
"mimeType": "application/json",
"text": "{ \"sitename\":\"Wikipedia\",\"server\":\"https://en.wikipedia.org\",\"articlepath\":\"/wiki\",\"scriptpath\":\"/w\",\"private\":false }"
}
]
}Environment variables
Name | Description | Default |
| Path to your configuration file |
|
| Set to |
|
| Byte cap for content bodies (wikitext, rendered HTML, diffs). Tune to the target LLM client's tool-response budget. |
|
| Minimum severity for logger output. One of |
|
| Override the default credentials store path. Default: |
|
| Set to |
|
| Override the request-derived public URL used in OAuth protected-resource discovery. Useful for reverse-proxy setups that rewrite the |
|
| Maximum HTTP request body size (StreamableHTTP transport). Accepts size strings like |
|
| Set to |
|
| Maximum ms to wait for in-flight |
|
| Type of MCP server transport ( |
|
| Port used for StreamableHTTP transport |
|
Related MCP server: Alchemy MCP Server
Configuration
Config is only required when interacting with a private wiki or using authenticated tools.
Create a config.json file to configure wiki connections. Use the config.example.json as a starting point.
{
"defaultWiki": "en.wikipedia.org",
"wikis": {
"en.wikipedia.org": {
"sitename": "Wikipedia",
"server": "https://en.wikipedia.org",
"articlepath": "/wiki",
"scriptpath": "/w"
}
}
}For the full field reference, env-var substitution, secret sources, change tags, upload directories, and authentication options, see docs/configuration.md.
Authentication
Tools marked 🔐 require authentication. They are also hidden from tools/list when the active wiki has readOnly: true — see Deployment.
Browser-based OAuth (recommended). Sign in through a browser tab the first time a tool needs auth. Set
oauth2ClientIdandoauth2CallbackPortper wiki — see docs/configuration.md — OAuth (browser-based).Per-request bearer token (HTTP). Each request carries
Authorization: Bearer <token>; the server forwards it to MediaWiki. See docs/deployment.md — per-request bearer token.Manual OAuth2 access token. Paste a long-lived token into
config.json. See docs/configuration.md — manual OAuth2 access token.Bot password. Fallback when Extension:OAuth isn't installed. See docs/configuration.md — bot password.
The Cargo tools (cargo-query, cargo-list-tables, cargo-describe-table) call API actions gated by the runcargoqueries user right. Most wikis grant this to all users by default; wikis that restrict it require the Create, query and delete data through the Cargo extension grant on the bot password or OAuth consumer. The Cargo extension is also detected on wiki.gg-hosted wikis (Helldivers, Terraria, Ark, etc.), where it ships under the rebranded name LIBRARIAN.
Installation
Follow the guide, use following configuration:
{
"mcpServers": {
"mediawiki-mcp-server": {
"command": "npx",
"args": [
"@professional-wiki/mediawiki-mcp-server@latest"
],
"env": {
"CONFIG": "path/to/config.json"
}
}
}
}
code --add-mcp '{"name":"mediawiki-mcp-server","command":"npx","args":["@professional-wiki/mediawiki-mcp-server@latest"]}'Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command npx @professional-wiki/mediawiki-mcp-server. You can also verify config or add command like arguments via clicking Edit.
{
"mcpServers": {
"mediawiki-mcp-server": {
"command": "npx",
"args": [
"@professional-wiki/mediawiki-mcp-server@latest"
],
"env": {
"CONFIG": "path/to/config.json"
}
}
}
}Follow the guide, use following configuration:
{
"mcpServers": {
"mediawiki-mcp-server": {
"command": "npx",
"args": [
"@professional-wiki/mediawiki-mcp-server@latest"
],
"env": {
"CONFIG": "path/to/config.json"
}
}
}
}Follow the Claude Code MCP docs.
Run the below command, optionally with -e flags to specify environment variables.
claude mcp add mediawiki-mcp-server npx @professional-wiki/mediawiki-mcp-server@latestYou should end up with something like the below in your .claude.json config:
"mcpServers": {
"mediawiki-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"@professional-wiki/mediawiki-mcp-server@latest"
],
"env": {
"CONFIG": "path/to/config.json"
}
}
},Run:
gemini extensions install https://github.com/ProfessionalWiki/MediaWiki-MCP-ServerThis installs the extension from the latest GitHub Release. To pin a specific version, append --ref=<tag> (for example --ref=v0.6.5).
See the Gemini CLI extensions documentation for how to update, list, or uninstall extensions.
Deployment
Running the server as a remote HTTP endpoint for other users has its own configuration requirements — see docs/deployment.md. A pre-built image is published at ghcr.io/professionalwiki/mediawiki-mcp-server. For day-2 operations (logs, /health//ready, metrics, graceful shutdown), see docs/operations.md.
Security
Defaults are safe for single-user use. Before exposing the HTTP transport to others, lock down three things:
Trust the proxy, not the header. The server forwards any
Authorization: Bearerheader straight to MediaWiki — authentication is the reverse proxy's job. Terminate TLS there, and don't expose the MCP port directly on an untrusted network. See docs/deployment.md — reverse proxy requirements.Pair
MCP_BINDwithMCP_ALLOWED_HOSTSandMCP_ALLOWED_ORIGINS. The HTTP transport binds to127.0.0.1by default. When you open it up withMCP_BIND=0.0.0.0, setMCP_ALLOWED_HOSTSto the hostnames your proxy forwards andMCP_ALLOWED_ORIGINSto the browser origins allowed to call the server — these block DNS-rebinding and cross-origin attacks respectively.Uploads are opt-in.
upload-fileis disabled until you list allowed directories inuploadDirsorMCP_UPLOAD_DIRS. See docs/configuration.md — upload directories.
Report a vulnerability via GitHub's security advisory form — full policy in SECURITY.md.
Contributing
Contributions are welcome — pull requests and issues (bugs, feature requests, suggestions) both work.
Working on tool code? Start from AGENTS.md for repo layout, commands, and testing patterns.
Adding or modifying a tool? Read docs/tool-conventions.md — it covers description voice, parameter docs, annotation hints, and MediaWiki terminology conventions.
Running a release? See docs/releasing.md.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ProfessionalWiki/MediaWiki-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server