一个提供大型语言模型访问Wikidata数据的模型上下文协议(MCP)服务器。
5个MCP工具 用于与Wikidata交互:
search_entities:实体的文本搜索get_entity:通过ID详细恢复实体sparql_query:运行自定义SPARQL查询get_relations:探索实体的关系find_by_property:按属性值搜索支持的API:
git clone https://github.com/joelgombin/mcp-wikidata.git
cd mcp-wikidata
uv sync
uv run python test_connection.py
在你的Claude Desktop文件中添加此配置(macOS上的路径为~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"mcp-wikidata": {
"command": "/path/to/your/mcp-wikidata/run_mcp_wikidata.sh",
"args": []
}
}
}
重要:请替换/path/to/your/mcp-wikidata/为你安装文件夹的实际绝对路径。
如果你更喜欢不使用包装脚本的配置:
{
"mcpServers": {
"mcp-wikidata": {
"command": "uv",
"args": ["run", "mcp-wikidata"],
"cwd": "/path/to/your/mcp-wikidata",
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin:~/.local/bin"
}
}
}
}
npx @modelcontextprotocol/inspector uv run mcp-wikidata
uv run python test_manual.py
uv run python test_mcp_client.py
通过文本搜索实体:
{
"query": "Einstein",
"language": "en",
"limit": 5,
"type": "item"
}
通过ID恢复实体:
{
"entity_id": "Q937",
"language": "en",
"simplified": true
}
自定义SPARQL请求:
{
"query": "SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q5 . SERVICE wikibase:label { bd:serviceParam wikibase:language \"en\" . } } LIMIT 10",
"format": "json"
}
实体的关系:
{
"entity_id": "Q937",
"relation_type": "outgoing",
"limit": 20
}
按属性搜索:
{
"property": "P106",
"value": "physicist",
"limit": 10
}
基于.env.example创建一个.env文件:
# API请求的User-Agent
WIKIDATA_USER_AGENT=MCP-Wikidata/0.1.0
# 请求速率限制(每分钟)
WIKIDATA_RATE_LIMIT=60
# 请求超时时间(秒)
WIKIDATA_TIMEOUT=30
# 缓存TTL(秒)
WIKIDATA_CACHE_TTL=3600
# 每次请求的最大结果数
WIKIDATA_MAX_RESULTS=50
# 默认语言
WIKIDATA_DEFAULT_LANGUAGE=en
诊断问题:
uv run mcp-wikidata --log-level DEBUG
检查UV安装:
which uv
# 应返回类似路径:/Users/username/.local/bin/uv
测试包装脚本:
./run_mcp_wikidata.sh --help
检查权限:
chmod +x run_mcp_wikidata.sh
重启Claude Desktop,修改配置后
此错误表示Claude Desktop无法找到命令uv。包装脚本run_mcp_wikidata.sh会自动解决这个问题,通过在多个常见位置查找uv。
详细的日志可以在以下地方找到:
mcp-wikidata/
├ mcp_wikidata/ # 主要包
├ __init__.py
├ server.py # 主要MCP服务器
├ config.py # 配置
├ tools.py # MCP工具定义
└ wikidata_client.py # Wikidata API客户端
├ tests/ # 测试
├ run_mcp_wikidata.sh # 包装脚本(推荐)
├ test_*.py # 测试脚本
├ pyproject.toml # 项目配置
├ .env.example # 环境变量
└ README.md
欢迎贡献!请不要犹豫:
MIT许可证 - 查看LICENSE文件获取更多详情。
生成于 Claude Code 🚀