返回 MCP 目录
public公开dns本地运行

mcp-wikidata

一个基于Model Context Protocol的Wikidata数据访问服务器,为大型语言模型提供5种工具与Wikidata交互,包括实体搜索、SPARQL查询等功能。

article

README

🚀 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生成 🚀

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端