Skip to main content
Glama
zzaebok

Wikidata MCP Server

by zzaebok

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.py

LLM は有効なエンティティおよびプロパティ識別子を抽出し、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ライセンス

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zzaebok/mcp-wikidata'

If you have feedback or need assistance with the MCP directory API, please join our Discord server