AC

A custom Model Context Protocol (MCP) adapter for interacting with MediaWiki and WikiBase APIs.

Created 3 months ago

A custom Model Context Protocol (MCP) adapter for interacting with MediaWiki and WikiBase APIs.

development documentation public

What is 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 include fetching the content of a MediaWiki page, editing a MediaWiki page with new content and an optional summary, and configurable API base URLs for different MediaWiki and WikiBase instances.

Documentation

MediaWikiAdapter

smithery badge

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

  1. Clone the repository:
   git clone https://github.com/yourusername/mediawikiadapter.git
   cd mediawikiadapter
  1. Install dependencies:

    npm install
    
  2. 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:

You can override these defaults using the server.configure() method.


Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. 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.

Server Config

{
  "mcpServers": {
    "a-custom-model-context-protocol-(mcp)-adapter-for-interacting-with-mediawiki-and-wikibase-apis.-server": {
      "command": "npx",
      "args": [
        "a-custom-model-context-protocol-(mcp)-adapter-for-interacting-with-mediawiki-and-wikibase-apis."
      ]
    }
  }
}

Links & Status

Repository: github.com
Hosted: No
Global: No
Official: No

Project Info

Hosted Featured
Created At: Aug 08, 2025
Updated At: Aug 08, 2025
Author: Luca Mauri
Category: adapter
License: LGPL-3.0-or-later
Tags:
development documentation public