Mcp Wikidata

Mcp Wikidata

🚀 MCP Wikidata服务器

这是一个 模型上下文协议(MCP) 服务器,它为大语言模型提供对维基数据(Wikidata)的访问。

✨ 主要特性

  • 5个MCP工具 用于与维基数据进行交互:

    • search_entities:实体的文本搜索
    • get_entity:通过ID详细检索实体
    • sparql_query:执行自定义的SPARQL查询
    • get_relations:探索实体的关系
    • find_by_property:通过属性 - 值进行搜索
  • 支持的API

    • 维基基础API(实体的搜索和检索)
    • SPARQL查询服务(复杂查询)
    • 多语言支持和智能缓存

📦 安装指南

1. 克隆项目

git clone https://github.com/joelgombin/mcp-wikidata.git
cd mcp-wikidata

2. 安装依赖

uv sync

3. 测试安装

uv run python test_connection.py

🚀 快速开始

与Claude桌面版的配置

推荐配置(可移植)

将以下配置添加到您的Claude桌面版文件(在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/ 替换为您安装目录的绝对路径。

直接使用uv的替代方法

如果您更喜欢不使用脚本包装器的配置:

{
"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"
}
}
}
}

💻 使用示例

基础用法

search_entities

通过文本搜索实体:

{
"query": "Einstein",
"language": "en",
"limit": 5,
"type": "item"
}

get_entity

通过ID检索实体:

{
"entity_id": "Q937",
"language": "en",
"simplified": true
}

sparql_query

自定义SPARQL查询:

{
"query": "SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q5 . SERVICE wikibase:label { bd:serviceParam wikibase:language \"en\" . } } LIMIT 10",
"format": "json"
}

get_relations

实体的关系:

{
"entity_id": "Q937",
"relation_type": "outgoing",
"limit": 20
}

find_by_property

通过属性搜索:

{
"property": "P106",
"value": "physicist",
"limit": 10
}

🔧 技术细节

高级配置

环境变量

基于 .env.example 创建一个 .env 文件:

# API请求的用户代理
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

故障排除

Claude桌面版中出现 "server disconnected" 错误

  1. 检查uv的安装
which uv
# 应返回类似 /Users/username/.local/bin/uv 的路径
  1. 测试脚本包装器
./run_mcp_wikidata.sh --help
  1. 检查权限
chmod +x run_mcp_wikidata.sh
  1. 修改配置后重新启动Claude桌面版

出现 "spawned uv ENOENT" 错误

此错误表明Claude桌面版找不到 uv 命令。脚本包装器 run_mcp_wikidata.sh 会自动解决此问题,它会在多个常见位置查找 uv

诊断日志

详细日志可在以下位置找到:

  • MCP检查器控制台
  • Claude桌面版日志文件(取决于您的操作系统)
  • MCP服务器的标准错误输出

📚 详细文档

项目结构

mcp-wikidata/
├ mcp_wikidata/           # 主要包
├ __init__.py
├ server.py           # 主要的MCP服务器
├ config.py           # 配置
├ tools.py            # MCP工具定义
└ wikidata_client.py  # 维基数据API客户端
├ tests/                  # 测试
├ run_mcp_wikidata.sh    # 脚本包装器(推荐)
├ test_*.py              # 测试脚本
├ pyproject.toml         # 项目配置
├ .env.example           # 环境变量
└ README.md

🤝 贡献

欢迎大家贡献代码!您可以:

  • 报告错误
  • 提出改进建议
  • 添加新的MCP工具
  • 完善文档

📄 许可证

本项目采用MIT许可证,更多详细信息请参阅 LICENSE 文件。

📚 有用的资源


由Claude Code生成 🚀

  • 0 关注
  • 0 收藏,34 浏览
  • system 提出于 2025-09-18 23:24

相似服务问题

相关AI产品