Skip to content

Latest commit

 

History

History
142 lines (114 loc) · 3.78 KB

README.md

File metadata and controls

142 lines (114 loc) · 3.78 KB

Wikimedia MCP Server

A Model Context Protocol (MCP) server for interacting with Wikimedia APIs. Access Wikipedia and other Wikimedia project content programmatically with natural language queries.

Features

  • Search Content: Full-text search across Wikimedia page content
  • Search Titles: Search page titles with autocomplete suggestions
  • Get Page: Retrieve page content, title, URL and metadata
  • Language Versions: Find versions of a page in other languages
  • Featured Content: Get featured articles, most read pages, and pictures of the day
  • Historical Events: Get events, births, deaths, and holidays for any date

Requirements

  • Python 3.12+
  • uv package manager
  • MCP server framework

Security

  • All user inputs are validated
  • No sensitive data or credentials required
  • Rate limiting handled by Wikimedia API
  • Error messages don't expose internal details

Installation

Claude Desktop Configuration

On MacOS:

~/Library/Application Support/Claude/claude_desktop_config.json

On Windows:

C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json

Development Configuration

{
  "mcpServers": {
    "wikimedia": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\MCP\\server\\community\\wikimedia",
        "run",
        "wikimedia"
      ]
    }
  }
}

Published Configuration

{
  "mcpServers": {
    "wikimedia": {
      "command": "uvx",
      "args": [
        "wikimedia"
      ]
    }
  }
}

Tools

search_content

Full-text search across Wikimedia page content. Returns snippets matching the query.

  • query (required): Search term
  • limit (1-50, default 10): Number of results
  • project (default "wikipedia"): Wikimedia project
  • language (default "en"): Language code

search_titles

Search Wikimedia page titles starting with the query. Returns suggestions with descriptions.

  • query (required): Search prefix
  • limit (1-100, default 10): Number of results
  • project (default "wikipedia"): Wikimedia project
  • language (default "en"): Language code

get_page

Get Wikimedia page content, title, URL and last modified date.

  • title (required): Page title
  • project (default "wikipedia"): Wikimedia project
  • language (default "en"): Language code

get_languages

Get versions of a Wikimedia page in other languages.

  • title (required): Page title
  • project (default "wikipedia"): Wikimedia project
  • language (default "en"): Language code

get_featured

Get featured Wikimedia content for a date. Returns featured article, most read pages, and picture of the day.

  • date (YYYY/MM/DD, default today): Date to get content for
  • project ("wikipedia" only): Must be Wikipedia
  • language (en/de/fr/es/ru/ja/zh): Supported languages

get_on_this_day

Get historical events from Wikimedia for a date.

  • date (MM/DD, default today): Date to get events for
  • type (default "all"): Event type - all/selected/births/deaths/holidays/events
  • project ("wikipedia" only): Must be Wikipedia
  • language (en/de/fr/es/ru/ja/zh): Supported languages

Example Usage

# Search for content about "artificial intelligence"
result = await client.call_tool("search_content", {
    "query": "artificial intelligence",
    "limit": 5,
    "language": "en"
})

# Get today's featured content
result = await client.call_tool("get_featured", {
    "language": "en"
})

# Get historical events for January 1st
result = await client.call_tool("get_on_this_day", {
    "date": "01/01",
    "type": "all",
    "language": "en"
})

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

License

MIT License. See LICENSE file for details.