RayenMalouche/AI-Agents-Performance-Testing-MCP-Server
If you are the rightful owner of AI-Agents-Performance-Testing-MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Java-based MCP (Model Context Protocol) server designed to test the performance of the Discovery Intech client.
Performance Test MCP Server
Un serveur MCP (Model Context Protocol) développé en Java pour tester les performances du client Discovery Intech.
Fonctionnalités
Outils MCP Disponibles
- run_performance_test - Exécute un test de performance unique
- run_load_test - ExĂ©cute un test de charge avec plusieurs requĂȘtes concurrent es
- analyze_test_results - Analyse et résume les résultats des tests
- monitor_costs - Surveille et suit les coûts de l'API
- benchmark_scenarios - Exécute des scénarios de benchmark prédéfinis
- export_results - Exporte les résultats vers différents formats
Prérequis
- Java 21 ou supérieur
- Maven 3.8+
- Le client Discovery Intech en cours d'exécution (par défaut sur http://localhost:8072)
Installation
- Cloner le projet
- Compiler avec Maven :
mvn clean compile
Utilisation
Mode STDIO (pour MCP clients)
java -cp target/classes com.mcp.RayenMalouche.performance.testing.server.PerformanceTestingServer.PerformanceTestingServerApplication --stdio
Mode HTTP/SSE (pour tests et inspection)
java -cp target/classes com.mcp.RayenMalouche.performance.testing.server.PerformanceTestingServer.PerformanceTestingServerApplication
Mode Streamable HTTP (pour MCP Inspector)
java -cp target/classes com.mcp.RayenMalouche.performance.testing.server.PerformanceTestingServer.PerformanceTestingServerApplication --streamable-http
Endpoints
Quand le serveur fonctionne en mode HTTP :
- MCP endpoint : http://localhost:45451/
- SSE endpoint : http://localhost:45451/sse
- Health check : http://localhost:45451/api/health
Exemples d'utilisation des outils
1. Test de performance unique
{
"query": "Créez un dataset complet sur toutes les solutions Sage de Discovery Intech",
"targetUrl": "http://localhost:8072",
"testId": "test_sage_001"
}
2. Test de charge
{
"queries": [
"Créez un dataset sur les solutions Sage",
"Générez un dataset sur les solutions QAD",
"Produisez un dataset sur Microsoft Dynamics 365"
],
"concurrentUsers": 5,
"requestsPerUser": 2,
"targetUrl": "http://localhost:8072"
}
3. Scénarios de benchmark
{
"scenarios": ["sage", "qad", "microsoft", "sap"],
"targetUrl": "http://localhost:8072"
}
Scénarios disponibles :
sage
: Solutions Sageqad
: Solutions QADmicrosoft
: Microsoft Dynamics 365sap
: Solutions SAPsectors
: Secteurs d'activitéservices
: Services proposéscompany
: Information sur l'entrepriseall
: Tous les scénarios
4. Analyse des résultats
{
"testIds": ["test_sage_001", "test_qad_002"],
"generateReport": true
}
5. Monitoring des coûts
{
"timeframe": "day",
"modelName": "llama-3.1-8b-instant"
}
Options de timeframe : hour
, day
, week
6. Export des résultats
{
"format": "json",
"filepath": "/tmp/test_results.json",
"includeDetails": true
}
Formats disponibles : json
, csv
, html
Métriques collectées
Pour chaque test, les métriques suivantes sont collectées :
- Temps de réponse (ms)
- Nombre de tokens utilisés (estimation)
- Coût estimé (basé sur le pricing Groq)
- Taille du dataset (nombre d'éléments)
- Nombre d'appels MCP effectués
- URLs récupérées
- Status de réussite/échec
- Messages d'erreur (si applicable)
Structure des résultats
TestResult
{
"testId": "test_001",
"timestamp": "2025-01-XX:XX:XX",
"query": "Question de test",
"responseTime": 15000,
"tokensUsed": 1500,
"cost": 0.12,
"success": true,
"datasetSize": 25,
"mcpCallsCount": 8,
"urlsFetched": ["https://www.discoveryintech.com/..."],
"errorMessage": null
}
LoadTestResult
{
"testId": "load_test_123",
"startTime": "2025-01-XX:XX:XX",
"endTime": "2025-01-XX:XX:XX",
"totalTests": 10,
"successfulTests": 9,
"failedTests": 1,
"averageResponseTime": 12500.5,
"totalTokens": 15000,
"totalCost": 1.25,
"concurrentUsers": 5,
"requestsPerUser": 2
}
Configuration
Le serveur utilise les ports suivants par défaut :
- HTTP/SSE : 45451
- Health check : 45451/api/health
Pour modifier la configuration, vous pouvez :
- Modifier les constantes dans le code source
- Utiliser des variables d'environnement
- Ajouter un fichier application.properties
Logging
Les logs sont affichés sur stderr pour ne pas interférer avec le protocole MCP sur stdout.
Développement
Structure du projet
src/main/java/com/dicovery/performance/mcp/test/server/
âââ PerformanceTestingServerApplication.java # Classe principale
âââ README.md # Documentation
Compilation et exécution
mvn clean compile
mvn spring-boot:run -Dspring-boot.run.arguments="--stdio"
Tests
mvn test
Dépannage
Erreurs communes
- Connexion refusée : Vérifiez que le client Discovery Intech est en cours d'exécution
- Timeout : Augmentez le timeout pour les requĂȘtes longues
- Erreur de parsing JSON : VĂ©rifiez le format des requĂȘtes
Debug
Activez les logs détaillés en ajoutant :
-Dlogging.level.com.dicovery=DEBUG
Contribution
- Fork le projet
- Créez une branche feature
- Committez vos changements
- Pushez vers la branche
- Créez une Pull Request