MediaWikiAdapter
A custom Model Context Protocol (MCP) adapter for interacting with MediaWiki and WikiBase APIs. This adapter allows you to fetch and edit MediaWiki pages programmatically using the MCP framework.
Features
- Fetch the content of a MediaWiki page.
- Edit a MediaWiki page with new content and an optional summary.
- Configurable API base URLs for different MediaWiki and WikiBase instances.
Requirements
- Node.js (v16 or later)
- TypeScript (for development)
- MediaWiki instance with API access enabled
Installation
- Clone the repository:
git clone https://github.com/yourusername/mediawikiadapter.git
cd mediawikiadapter
-
Install dependencies:
npm install -
Build the project:
npm run build
Usage
Configure the Adapter
You can configure the adapter to use custom MediaWiki and WikiBase API endpoints:
server.configure({
mediaWikiAPIBase: "https://my.mediawiki.instance/api.php",
wikiBaseAPIBase: "https://my.wikibase.instance/api.php",
});
Start the MCP Server
Run the MCP server using the following command:
node build/index.js
Resources
getPageContent
Fetches the content of a MediaWiki page.
- Input Schema:
{
"title": "string"
}
- Output Schema:
{ "content": "string" }
Example Usage:
const response = await server.callResource("getPageContent", {
title: "Main Page",
});
console.log(response.content);
Tools
editPage
Edits a MediaWiki page with new content.
- Input Schema:
{
"title": "string",
"content": "string",
"summary": "string (optional)"
}
- Output Schema:
{
"success": "boolean"
}
Example Usage:
const response = await server.callTool("editPage", {
title: "Main Page",
content: "Updated content for the page.",
summary: "Updated via MediaWikiAdapter",
});
console.log(response.success ? "Edit successful" : "Edit failed");
Development
Run in Development Mode
To run the project in development mode with TypeScript:
npm run dev
Linting
Run the linter to check for code quality:
npm run lint
Testing
Currently, no tests are implemented. You can add tests to the test directory and run them using:
npm test
Configuration
The adapter uses the following default API base URLs:
- MediaWiki API Base: https://en.wikipedia.org/w/api.php
- WikiBase API Base: https://www.wikidata.org/w/api.php
You can override these defaults using the server.configure() method.
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request with a detailed description of your changes.
License
This project is licensed under the LGPL-3.0-or-later license. See the LICENSE file for details.
Author
Created by Luca Mauri.
Recommend MCP Servers 💡
hexitex/MCP-Backup-Server
A specialized MCP server providing backup and restoration capabilities for AI agents and code editing tools, tested in Cursor and Windsurf editors.
@aashari/mcp-server-atlassian-confluence
Node.js/TypeScript MCP server for Atlassian Confluence. Provides tools enabling AI systems (LLMs) to list/get spaces & pages (content formatted as Markdown) and search via CQL. Connects AI seamlessly to Confluence knowledge bases using the standard MCP interface.
@waystation/mcp
The only MCP Server you need. Connect any MCP host with the tools you use daily through our no-code, secure integration hub.
asusevski/opendota-mcp-server
An MCP server for accessing OpenDota API data to get Dota 2 statistics, match, and player info for LLMs/AI assistants.
@kiwamizamurai/mcp-kibela-server
MCP server implementation for Kibela API integration, enabling LLMs to interact with Kibela content.
upstash/context7
Provides up-to-date, version-specific code documentation for LLMs and AI code editors via the Model Context Protocol (MCP)