Skip to main content
Glama
zzaebok

Wikidata MCP Server

by zzaebok

Servidor MCP de Wikidata

insignia de herrería

Una implementación de servidor para la API de Wikidata mediante el Protocolo de Contexto de Modelo (MCP). Este proyecto proporciona herramientas para interactuar con Wikidata, como la búsqueda de identificadores (de entidad y propiedad), la extracción de metadatos (de etiqueta y descripción) y la ejecución de consultas Sparql .


Instalación

Instalación mediante herrería

Para instalar Wikidata MCP Server para Claude Desktop automáticamente a través de Smithery :

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

Instalación manual

Instale uv si aún no está instalado.

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

Luego, instala las dependencias.

$ 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

Correr

Ejecute el servidor con:

$ uv run src/server.py

Si desea probarlo con un código de cliente simple (con langchain-mcp-adapters ), ejecute el cliente con:

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

El LLM extrae identificadores válidos de entidades y propiedades, ejecuta una consulta sparql y finalmente recomienda una película dirigida por Bong Joon-ho.

{ "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.', ), ] }

Herramientas MCP de Wikidata

Las siguientes herramientas están implementadas en el servidor:

Herramienta

Descripción

search_entity(query: str)

Busque un ID de entidad de Wikidata mediante su consulta.

search_property(query: str)

Busque un ID de propiedad de Wikidata mediante su consulta.

get_properties(entity_id: str)

Obtener las propiedades asociadas con un ID de entidad de Wikidata determinado.

execute_sparql(sparql_query: str)

Ejecutar una consulta SPARQL en Wikidata.

get_metadata(entity_id: str, language: str = "en")

Recupere la etiqueta y la descripción en inglés para una ID de entidad de Wikidata determinada.


Licencia

Licencia 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