mcpField
M
Mcp Wikidata

Mcp Wikidata

本地服务
github.com/zzaebok搜索与检索4931 周前更新

关于 Mcp Wikidata

这是一个基于 Model Context Protocol 的 Wikidata API 服务实现。它提供搜索实体与属性标识符、获取元数据以及执行 SPARQL 查询的工具,适合需要访问 Wikidata 结构化知识的 LLM 应用开发者。

主要功能

  1. 01搜索 Wikidata 实体 ID
  2. 02搜索 Wikidata 属性 ID
  3. 03获取实体的属性列表
  4. 04获取实体的英文标签与描述
  5. 05执行 SPARQL 查询

适用场景

  1. 01让 LLM 查找 Wikidata 实体与属性的标识符
  2. 02通过 SPARQL 查询结构化知识并回答问题
  3. 03基于 Wikidata 信息推荐影片等内容

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端提供 search_entity、search_property、get_properties、execute_sparql 和 get_metadata 等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"wikidata": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Wikidata MCP 服务

smithery badge

基于模型上下文协议(MCP)的 Wikidata API 服务实现。 此项目提供了与 Wikidata 交互的工具,例如搜索标识符(实体和属性)、提取元数据(标签和描述)以及执行 SPARQL 查询。


安装
通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 Wikidata MCP 服务:

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
# if you want to run client example together
$ uv sync --extra example

运行

使用以下命令运行服务:

$ uv run src/server.py

如果想使用简单的客户端代码(搭配 langchain-mcp-adapters)进行测试,请运行客户端:

# in another shell
$ uv run src/client.py

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

查看执行输出
{
  "messages": [
      HumanMessage(
          content="Can you recommend me a movie directed by Bong Joonho?",
      ),
      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": "Mother"}}]',
          name="execute_sparql",
      ),
      AIMessage(
          content='I recommend the movie "Mother," which was directed by Bong Joon-ho.',
      ),
  ]
}

Wikidata MCP 工具

该服务实现了以下工具:

工具描述
search_entity(query: str)根据查询内容搜索 Wikidata 实体 ID。
search_property(query: str)根据查询内容搜索 Wikidata 属性 ID。
get_properties(entity_id: str)获取与指定 Wikidata 实体 ID 关联的属性。
execute_sparql(sparql_query: str)在 Wikidata 上执行 SPARQL 查询。
get_metadata(entity_id: str, language: str = "en")获取指定 Wikidata 实体 ID 的英文标签和描述。

许可证

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。