Wikimedia API工具
启用与维基媒体API的编程交互,提供多种功能,例如搜索内容、检索页面信息和访问多种语言的历史事件。
服务介绍
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"):语言代码
get_featured
获取指定日期的 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/eventsproject(仅限 "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 文件。