mediawiki-mcp-server
<b>Outdated. Please use https://github.com/ProfessionalWiki/MediaWiki-MCP-Server instead!</b>
# MediaWiki MCP Server 🚀
[](https://smithery.ai/server/@shiquda/mediawiki-mcp-server)  
[](https://mseep.ai/app/shiquda-mediawiki-mcp-server)
A MCP server that provides seamless interaction with Wikipedia's API. This tool allows you to search and retrieve Wikipedia content with LLMs 🤖!
<https://github.com/user-attachments/assets/b5d9c5f3-a60e-48ea-8b4b-f1a7524d4fbb>
## Features ✨
- 🔍 Search wiki pages with customizable wiki site. e.g. wikipedia.org, fandom.com, wiki.gg and more!
- 📖 Retrieve detailed page content
## Usage 💻
1. Ensure that uv is installed on your device.
2. Configure in your client:
The server defaults to using <https://en.wikipedia.org/>. Also, you can make the server search other wiki sites!
To see if a wiki site works with this server, check if it uses MediaWiki software (usually shown by an icon at the bottom of the site).
To check further and find the endpoint (usually the website's domain, like <https://mediawiki.org/>), check by going to base-url/rest.php/v1/page in a browser (like <https://noita.wiki.gg/rest.php/v1/page>) and see if the output looks right. If not, add '/w' to the base URL and try again.
Then, set this endpoint as --base-url:

Available transports: stdio (default), streamable-http (http://localhost/mcp), and SSE (http://localhost/sse). See -h for all options.
```bash
uvx mediawiki-mcp-server --h
usage: main.py [-h] [--base-url BASE_URL] [--http] [--sse] [--port PORT]
MediaWiki MCP Server
options:
-h, --help show this help message and exit
--base-url BASE_URL Base URL for the MediaWiki API (default: https://en.wikipedia.org/w/``)
--http Run server as streamable-http (instead of stdio)
--sse Run server as sse-http (instead of stdio)
--port PORT Default port for http transport (default: 8000)
```
Example JSON configurations:
```json
{
"mcpServers": {
"mediawiki-mcp-server": {
"command": "uvx",
"args": [
"mediawiki-mcp-server",
"--base-url", "https://example.com/"
],
"env": {
"HTTP_PROXY": "http://example.com:port"
}
}
}
}
```
Or, if you want to run this server from source:
```json
{
"mcpServers": {
"mediawiki-mcp-server": {
"command": "uv",
"args": [
"run",
"--directory",
"mediawiki-mcp-server",
"path/to/project/src/mediawiki_mcp_server",
"--base-url", "https://example.com/"
],
"env": {
"HTTP_PROXY": "http://example.com:port"
}
}
}
}
```
## Supported Tools 🛠
### Search
- `query`: Search term (preferably short and focused)
- `limit`: Maximum number of results to return (default: 5)
### Get Page
- `title`: The exact title of the Wikipedia page to retrieve
## Development 👨💻
```bash
npx @modelcontextprotocol/inspector uv run mediawiki-mcp-server
```
Here are some documents that might help:
- <https://www.mediawiki.org/api/rest_v1/>
## Contributing 🤝
This server is under development. Contributions are welcome! Feel free to submit issues and pull requests.
## Related Projects ♥️
- [Cherry Studio](https://github.com/CherryHQ/cherry-studio): A desktop client that supports for multiple LLM providers. MCP is supported.
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: get_page retrieves specific page content by title, while search finds pages matching a query. There is no overlap in functionality, making it easy for an agent to select the correct tool based on the task.
Both tools follow a consistent verb_noun pattern (get_page and search, where search implies 'search_pages'). The naming is simple, predictable, and uses snake_case uniformly, providing clear readability.
With only 2 tools, the server feels thin for a MediaWiki domain, lacking essential operations like creating, updating, or deleting pages. While get_page and search cover basic retrieval, the scope is incomplete, making it borderline too few for practical use.
The tool surface is severely incomplete for a MediaWiki server, missing core CRUD operations (e.g., create_page, update_page, delete_page) and other common actions like listing categories or handling user interactions. This will likely cause agent failures in broader workflows.