返回市场
麦普维基数据

麦普维基数据

作者:zzaebok31 星标更新:2025-04-23

项目介绍

Wikidata MCP Server

smithery 徽章

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


安装

通过Smithery安装

要通过Smithery自动安装Wikidata MCP Server到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查询,并最终推荐一部由奉俊昊导演的电影。

<details> <summary><i>查看执行输出</i></summary>
{
  "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": "Mother"}}]',
          name="execute_sparql",
      ),
      AIMessage(
          content='我推荐您观看由奉俊昊导演的电影《母亲》。',
      ),
  ]
}
</details>

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 许可证