LISEZ-MOI.md•4.16 kB
# Serveur MCP pour LimeSurvey
Ce serveur MCP permet d'interagir avec l'API LimeSurvey en respectant les spécifications du [Model Context Protocol](https://modelcontextprotocol.io/specification/2025-06-18). Il expose les fonctionnalités principales de LimeSurvey sous forme d'endpoints MCP standardisés.
## Fonctionnalités
- 🚀 Création de questionnaires
- ❓ Ajout de questions et réponses
- 📋 Gestion des groupes de questions
- ✅ Activation des sondages
- 📊 Export des réponses
- 🔍 Liste des sondages disponibles
## Prérequis
- Python 3.7+
- Accès à une instance LimeSurvey (version 3.X+)
- Compte administrateur sur LimeSurvey
## Installation
1. Clonez le dépôt :
```bash
git clone https://gitlab.com/mehdi_guiraud/mcp-limesurvey.git
cd mcp-limesurvey
```
2. Configurez les variables d'environnement :
```bash
cp .env.example .env
# Éditez .env avec vos identifiants LimeSurvey
nano .env
```
3. Installez les dépendances :
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
## Démarrage du serveur
```bash
./start_server.sh
```
Le serveur sera accessible sur `http://localhost:8080`
## Intégration avec Claude Desktop
### Étape 1: Ajouter le serveur MCP dans Claude Desktop
1. Ouvrez Claude Desktop
2. Allez dans **Settings** → **Model Context Protocol**
3. Cliquez sur **Add Custom Server**
4. Renseignez les informations :
- **Server Name**: LimeSurvey MCP
- **Base URL**: `http://localhost:8080/mcp`
- **Specification URL**: `http://localhost:8080/spec`
### Étape 2: Utilisation avec Claude Desktop
Interagissez avec LimeSurvey directement depuis Claude Desktop en utilisant la syntaxe MCP :
#### Créer un nouveau questionnaire
```json
{
"model": "limesurvey",
"action": "create_survey",
"parameters": {
"survey_title": "Sondage Client",
"survey_language": "fr"
}
}
```
#### Ajouter une question
```json
{
"model": "limesurvey",
"action": "add_question",
"parameters": {
"survey_id": 123456,
"group_id": 1,
"question_text": "Êtes-vous satisfait de notre service ?",
"question_type": "5",
"question_options": {
"subquestions": ["Très satisfait", "Satisfait", "Neutre", "Insatisfait", "Très insatisfait"]
}
}
}
```
#### Activer un questionnaire
```json
{
"model": "limesurvey",
"action": "activate_survey",
"parameters": {
"survey_id": 123456
}
}
```
#### Exporter les réponses
```json
{
"model": "limesurvey",
"action": "export_responses",
"parameters": {
"survey_id": 123456,
"format": "json"
}
}
```
## Endpoints MCP disponibles
| Action | Paramètres requis | Description |
|--------|-------------------|-------------|
| `create_survey` | `survey_title`, `survey_language` | Crée un nouveau questionnaire |
| `add_question` | `survey_id`, `group_id`, `question_text`, `question_type` | Ajoute une question à un questionnaire |
| `add_group` | `survey_id`, `group_title`, `group_description` | Ajoute un groupe de questions |
| `activate_survey` | `survey_id` | Active un questionnaire |
| `list_surveys` | Aucun | Liste tous les questionnaires |
| `export_responses` | `survey_id` | Exporte les réponses d'un questionnaire |
## Spécification technique
Le serveur implémente complètement la spécification MCP du 2025-06-18. Vous pouvez accéder à la spécification complète via :
```http
GET http://localhost:8080/spec
```
## Sécurité
1. **Authentification** : Utilise les identifiants stockés dans `.env`
2. **Validation** : Toutes les requêtes sont validées contre le schéma MCP
3. **Gestion de session** : Cache et recycle automatiquement les sessions LimeSurvey
## Personnalisation
Pour ajouter de nouvelles méthodes à l'API :
1. Ajoutez le endpoint dans `config/config.yaml`
2. Implémentez la méthode dans `app/main.py`
3. Ajoutez la documentation dans la fonction `get_mcp_spec`
## Licence
Ce projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de détails.
---
**Note** : Assurez-vous que l'API RPC est activée dans votre LimeSurvey (`Configuration → Interfaces → Activer l'API RPC`).