Skip to main content
Glama

MCP Wikidata Server

by joelgombin

MCP Wikidata Server

Un serveur Model Context Protocol (MCP) qui fournit un accès aux données Wikidata pour les Large Language Models.

🔧 Fonctionnalités

  • 5 outils MCP pour interagir avec Wikidata :
    • search_entities : Recherche textuelle d'entités
    • get_entity : Récupération détaillée d'entités par ID
    • sparql_query : Exécution de requêtes SPARQL personnalisées
    • get_relations : Exploration des relations d'entités
    • find_by_property : Recherche par propriété-valeur
  • APIs supportées :
    • Wikibase API (recherche et récupération d'entités)
    • SPARQL Query Service (requêtes complexes)
    • Support multilingue et cache intelligent

📋 Prérequis

  • Python 3.10+
  • uv (gestionnaire de paquets Python moderne)

📦 Installation

1. Cloner le projet

git clone https://github.com/joelgombin/mcp-wikidata.git cd mcp-wikidata

2. Installer les dépendances

uv sync

3. Tester l'installation

uv run python test_connection.py

⚙️ Configuration avec Claude Desktop

Configuration recommandée (portable)

Ajoutez cette configuration à votre fichier Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json sur macOS) :

{ "mcpServers": { "mcp-wikidata": { "command": "/path/to/your/mcp-wikidata/run_mcp_wikidata.sh", "args": [] } } }

Important : Remplacez /path/to/your/mcp-wikidata/ par le chemin absolu vers votre dossier d'installation.

Alternative avec uv direct

Si vous préférez une configuration sans script wrapper :

{ "mcpServers": { "mcp-wikidata": { "command": "uv", "args": ["run", "mcp-wikidata"], "cwd": "/path/to/your/mcp-wikidata", "env": { "PATH": "/usr/local/bin:/usr/bin:/bin:~/.local/bin" } } } }

🧪 Tests et vérification

Test avec MCP Inspector

npx @modelcontextprotocol/inspector uv run mcp-wikidata

Tests manuels des APIs

uv run python test_manual.py

Test client MCP complet

uv run python test_mcp_client.py

🔧 Utilisation des outils

search_entities

Recherche d'entités par texte :

{ "query": "Einstein", "language": "en", "limit": 5, "type": "item" }

get_entity

Récupération d'entité par ID :

{ "entity_id": "Q937", "language": "en", "simplified": true }

sparql_query

Requête SPARQL personnalisée :

{ "query": "SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q5 . SERVICE wikibase:label { bd:serviceParam wikibase:language \"en\" . } } LIMIT 10", "format": "json" }

get_relations

Relations d'une entité :

{ "entity_id": "Q937", "relation_type": "outgoing", "limit": 20 }

find_by_property

Recherche par propriété :

{ "property": "P106", "value": "physicist", "limit": 10 }

⚙️ Configuration avancée

Variables d'environnement

Créez un fichier .env basé sur .env.example :

# User-Agent pour les requêtes API WIKIDATA_USER_AGENT=MCP-Wikidata/0.1.0 # Limitation du taux de requêtes (par minute) WIKIDATA_RATE_LIMIT=60 # Timeout des requêtes en secondes WIKIDATA_TIMEOUT=30 # TTL du cache en secondes WIKIDATA_CACHE_TTL=3600 # Nombre maximum de résultats par requête WIKIDATA_MAX_RESULTS=50 # Langue par défaut WIKIDATA_DEFAULT_LANGUAGE=en

Logs de debug

Pour diagnostiquer des problèmes :

uv run mcp-wikidata --log-level DEBUG

🔧 Dépannage

Erreur "server disconnected" dans Claude Desktop

  1. Vérifiez l'installation d'uv :
    which uv # Doit retourner un chemin comme /Users/username/.local/bin/uv
  2. Testez le script wrapper :
    ./run_mcp_wikidata.sh --help
  3. Vérifiez les permissions :
    chmod +x run_mcp_wikidata.sh
  4. Redémarrez Claude Desktop après modification de la configuration

Erreur "spawned uv ENOENT"

Cette erreur indique que Claude Desktop ne trouve pas la commande uv. Le script wrapper run_mcp_wikidata.sh résout automatiquement ce problème en cherchant uv dans plusieurs emplacements courants.

Logs de diagnostic

Les logs détaillés sont disponibles dans :

  • Console de MCP Inspector
  • Fichiers de log Claude Desktop (selon votre OS)
  • Sortie stderr du serveur MCP

📁 Structure du projet

mcp-wikidata/ ├ mcp_wikidata/ # Package principal ├ __init__.py ├ server.py # Serveur MCP principal ├ config.py # Configuration ├ tools.py # Définitions des outils MCP └ wikidata_client.py # Client API Wikidata ├ tests/ # Tests ├ run_mcp_wikidata.sh # Script wrapper (recommandé) ├ test_*.py # Scripts de test ├ pyproject.toml # Configuration du projet ├ .env.example # Variables d'environnement └ README.md

🤝 Contribution

Les contributions sont bienvenues ! N'hésitez pas à :

  • Signaler des bugs
  • Proposer des améliorations
  • Ajouter de nouveaux outils MCP
  • Améliorer la documentation

📄 Licence

MIT License - voir le fichier LICENSE pour plus de détails.

📚 Ressources utiles


Généré avec Claude Code 🚀

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables Large Language Models to seamlessly interact with ClickHouse databases, supporting resource listing, schema retrieval, and query execution.
    Last updated -
    1
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.
    Last updated -
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that retrieves information from Wikipedia to provide context to LLMs, allowing users to search articles, get summaries, full content, sections, and links from Wikipedia.
    Last updated -
    9
    73
    Python
    MIT License
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    A server implementation for interacting with Wikidata API using the Model Context Protocol, providing tools for searching identifiers, extracting metadata, and executing SPARQL queries.
    Last updated -
    5
    22
    Python
    MIT License

View all related MCP servers

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/joelgombin/mcp-wikidata'

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