Servidor MCP de Wikidata
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 claudeInstalación manual
Instale uv si aún no está instalado.
$ curl -LsSf https://astral.sh/uv/install.sh | shLuego, 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 exampleCorrer
Ejecute el servidor con:
$ uv run src/server.pySi desea probarlo con un código de cliente simple (con langchain-mcp-adapters ), ejecute el cliente con:
# in another shell
$ uv run src/client.pyEl 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 |
| Busque un ID de entidad de Wikidata mediante su consulta. |
| Busque un ID de propiedad de Wikidata mediante su consulta. |
| Obtener las propiedades asociadas con un ID de entidad de Wikidata determinado. |
| Ejecutar una consulta SPARQL en Wikidata. |
| Recupere la etiqueta y la descripción en inglés para una ID de entidad de Wikidata determinada. |
Licencia
Licencia MIT