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 💡
mcp-dataverse
An MCP server that integrates with Dataverse to provide Croissant records for datasets, enabling AI agents to understand and interact with research data.
@llamaindex/mcp-server-llamacloud
A MCP server that connects to and queries managed indexes on LlamaCloud, providing contextual information to MCP clients.
@modelcontextprotocol/server-google-maps
MCP Server integrating Google Maps API functionalities including geocoding, place search, directions, and more
@mzxrai/mcp-openai
Chat with OpenAI models from Claude Desktop
fastmcp-gsuite
MCP server for interacting with Google products including Gmail and Calendar
@danielsuguimoto/readonly-server-filesystem
Node.js server implementing Model Context Protocol (MCP) for readonly filesystem operations