Wikidata MCP サーバー
モデルコンテキストプロトコル(MCP)を用いたWikidata APIのサーバー実装。このプロジェクトは、識別子(エンティティとプロパティ)の検索、メタデータ(ラベルと説明)の抽出、 SPARQLクエリの実行など、Wikidataを操作するためのツールを提供します。
インストール
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.pyLLM は有効なエンティティおよびプロパティ識別子を抽出し、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ツール
サーバーには次のツールが実装されています。
道具 | 説明 |
| クエリで Wikidata エンティティ ID を検索します。 |
| クエリで Wikidata プロパティ ID を検索します。 |
| 指定された Wikidata エンティティ ID に関連付けられたプロパティを取得します。 |
| Wikidata で SPARQL クエリを実行します。 |
| 指定された Wikidata エンティティ ID の英語のラベルと説明を取得します。 |
ライセンス
MITライセンス