W

Wikimedia API工具

@privetin/wikimedia
0 Stars 90 次浏览 privetin 更新于 2026-08-23

启用与维基媒体API的编程交互,提供多种功能,例如搜索内容、检索页面信息和访问多种语言的历史事件。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Wikimedia MCP 服务器

一个用于与 Wikimedia API 交互的 Model Context Protocol (MCP) 服务器。通过自然语言查询以编程方式访问维基百科及其他 Wikimedia 项目的内容。

特性

  • 搜索内容:在 Wikimedia 页面内容中进行全文搜索
  • 搜索标题:带有自动完成建议的页面标题搜索
  • 获取页面:检索页面内容、标题、URL 和元数据
  • 语言版本:查找其他语言版本的页面
  • 特色内容:获取特色文章、最常阅读页面和每日图片
  • 历史事件:获取任何日期的事件、出生、死亡和假日

要求

  • Python 3.12+
  • uv 包管理器
  • MCP 服务器框架

安全性

  • 所有用户输入都经过验证
  • 不需要敏感数据或凭据
  • 由 Wikimedia API 处理速率限制
  • 错误消息不会暴露内部细节

安装

Claude 桌面配置

在 MacOS 上:

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

在 Windows 上:

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

开发配置

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

发布配置

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

工具

search_content

在 Wikimedia 页面内容中进行全文搜索。返回与查询匹配的片段。

  • query(必需):搜索词
  • limit(1-50,默认为 10):结果数量
  • project(默认为 "wikipedia"):Wikimedia 项目
  • language(默认为 "en"):语言代码

search_titles

搜索以查询开头的 Wikimedia 页面标题。返回带有描述的建议。

  • query(必需):搜索前缀
  • limit(1-100,默认为 10):结果数量
  • project(默认为 "wikipedia"):Wikimedia 项目
  • language(默认为 "en"):语言代码

get_page

获取 Wikimedia 页面内容、标题、URL 和最后修改日期。

  • title(必需):页面标题
  • project(默认为 "wikipedia"):Wikimedia 项目
  • language(默认为 "en"):语言代码

get_languages

获取其他语言版本的 Wikimedia 页面。

  • title(必需):页面标题
  • project(默认为 "wikipedia"):Wikimedia 项目
  • language(默认为 "en"):语言代码

获取指定日期的 Wikimedia 特色内容。返回特色文章、最常阅读页面和每日图片。

  • date(YYYY/MM/DD,默认为今天):获取内容的日期
  • project(仅限 "wikipedia"):必须是维基百科
  • language(en/de/fr/es/ru/ja/zh):支持的语言

get_on_this_day

获取指定日期的 Wikimedia 历史事件。

  • date(MM/DD,默认为今天):获取事件的日期
  • type(默认为 "all"):事件类型 - all/selected/births/deaths/holidays/events
  • project(仅限 "wikipedia"):必须是维基百科
  • language(en/de/fr/es/ru/ja/zh):支持的语言

使用示例

# 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"
})

贡献

欢迎贡献!请随时提交 Pull Request。对于重大更改,请先打开一个问题讨论您想要更改的内容。

许可证

MIT 许可证。详情请参阅 LICENSE 文件。

相关 MCP 服务