Metadata-Version: 2.4
Name: iflow-mcp_punkpeye-wikimedia
Version: 0.1.0
Summary: A MCP server project
Author-email: privetin <81558906+privetin@users.noreply.github.com>
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: aiohttp>=3.9.1
Requires-Dist: mcp>=1.1.2
Requires-Dist: pydantic>=2.5.3
Description-Content-Type: text/markdown

# 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
```json
{
  "mcpServers": {
    "wikimedia": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\MCP\\server\\community\\wikimedia",
        "run",
        "wikimedia"
      ]
    }
  }
}
```

### Published Configuration
```json
{
  "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

```python
# 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](LICENSE) file for details.