Back to MCP directory
publicPublicdnsLocal runtime

mcp-wikidata

一个基于Model Context Protocol的Wikidata API服务实现,提供实体/属性搜索、元数据提取和SPARQL查询功能。

article

README

🚀 维基数据 MCP 服务器

维基数据 MCP 服务器是一个基于模型上下文协议(MCP)实现的维基数据 API 服务器。它提供了一系列与维基数据交互的工具,如搜索标识符(实体和属性)、提取元数据(标签和描述)以及执行 SPARQL 查询,为用户与维基数据的交互提供了便利。

smithery badge

🚀 快速开始

本项目提供了便捷的安装和运行方式,让你可以快速使用维基数据 MCP 服务器。

📦 安装指南

通过 Smithery 安装

要自动通过 Smithery 安装 Wikidata MCP Server for Claude Desktop,可使用以下命令:

npx -y @smithery/cli install @zzaebok/mcp-wikidata --client claude

手动安装

如果尚未安装 uv,请先执行以下命令进行安装:

$ curl -LsSf https://astral.sh/uv/install.sh | sh

然后安装依赖项:

$ git clone https://github.com/zzaebok/mcp-wikidata.git
$ cd mcp-wikidata
$ uv sync
# 如果你想一起运行客户端示例
$ uv sync --extra example

💻 使用示例

运行服务器

使用以下命令运行服务器:

$ uv run src/server.py

客户端测试

如果你想通过简单的客户端代码进行测试(与 langchain-mcp-adapters 一起使用),请在另一个终端窗口中运行客户端:

# 在另一个终端窗口中
$ uv run src/client.py

LLM 会提取有效的实体和属性标识符,执行 SPARQL 查询,并最终推荐一部由奉俊昊执导的电影。

查看执行输出
{
  "messages": [
      HumanMessage(
          content="你能推荐我一部奉俊昊导演的电影吗?",
      ),
      AIMessage(
          tool_calls=[
              {
                  "name": "search_entity",
                  "args": {"query": "Bong Joon-ho"},
              }
          ],
      ),
      ToolMessage(
          content="Q495980",
          name="search_entity",
      ),
      AIMessage(
          tool_calls=[
              {
                  "name": "get_properties",
                  "args": {"entity_id": "Q495980"},
              }
          ],
      ),
      ToolMessage(
          content='["P345", "P244", "P214", "P227", ...]',
          name="get_properties",
      ),
      AIMessage(
          tool_calls=[
              {
                  "name": "search_property",
                  "args": {"query": "director"},
              }
          ],
      ),
      ToolMessage(
          content="P57",
          name="search_property",
      ),
      AIMessage(
          tool_calls=[
              {
                  "name": "execute_sparql",
                  "args": {
                      "sparql_query": 'SELECT ?film ?filmLabel WHERE {\n  ?film wdt:P57 wd:Q495980.\n  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }\n} LIMIT 1'
                  },
              }
          ],
      ),
      ToolMessage(
          content='[{"film": {"type": "uri", "value": "http://www.wikidata.org/entity/Q483761"}, "filmLabel": {"xml:lang": "en", "type": "literal", "value": "Memories of Murder"}}]',
          name="execute_sparql",
      ),
      AIMessage(
          content="Memories of Murder",
      ),
  ]
}

📚 详细文档

工具列表

| 属性 | 详情 | |------|------| | search_entity | 根据查询字符串搜索实体标识符 | | get_properties | 获取指定实体的属性列表 | | search_property | 根据查询字符串搜索属性标识符 | | execute_sparql | 执行 SPARQL 查询并返回结果 |

📄 许可证

该项目的许可信息如下:

欢迎使用 Wikidata MCP Server!如果有任何问题或建议,请随时联系维护团队。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client