Skip to main content
Glama

Kodi MCP Server

by laHeud
test_mcp_response.py4.28 kB
#!/usr/bin/env python3 """ Script pour tester les réponses du serveur MCP Vérifie que tous les tools ont les propriétés requises """ import requests import json # URL du serveur MCP MCP_URL = "http://192.168.1.81:8081" def test_initialize(): """Test de l'initialisation""" print("🔍 Test initialize...") payload = { "jsonrpc": "2.0", "method": "initialize", "id": 1 } response = requests.post(MCP_URL, json=payload) result = response.json() print(f"✅ Initialize: {json.dumps(result, indent=2)}") return result def test_tools_list(): """Test de la liste des tools""" print("\n🔍 Test tools/list...") payload = { "jsonrpc": "2.0", "method": "tools/list", "id": 2 } response = requests.post(MCP_URL, json=payload) result = response.json() # Vérifier la structure if "result" in result and "tools" in result["result"]: tools = result["result"]["tools"] print(f"✅ Nombre de tools: {len(tools)}") # Vérifier chaque tool for i, tool in enumerate(tools): print(f"\n📦 Tool {i+1}: {tool.get('name', 'SANS NOM')}") # Vérifications issues = [] if not tool.get("name"): issues.append("❌ Propriété 'name' manquante ou vide") elif not isinstance(tool.get("name"), str): issues.append(f"❌ 'name' n'est pas une string: {type(tool.get('name'))}") if not tool.get("description"): issues.append("❌ Propriété 'description' manquante ou vide") elif not isinstance(tool.get("description"), str): issues.append(f"❌ 'description' n'est pas une string: {type(tool.get('description'))}") if not tool.get("inputSchema"): issues.append("❌ Propriété 'inputSchema' manquante") elif not isinstance(tool.get("inputSchema"), dict): issues.append(f"❌ 'inputSchema' n'est pas un dict: {type(tool.get('inputSchema'))}") # Vérifier les propriétés inattendues expected_keys = {"name", "description", "inputSchema"} actual_keys = set(tool.keys()) unexpected = actual_keys - expected_keys if unexpected: issues.append(f"⚠️ Propriétés inattendues: {unexpected}") # Vérifier les valeurs None for key, value in tool.items(): if value is None: issues.append(f"❌ Propriété '{key}' est None") if issues: print("\n".join(issues)) else: print(" ✅ Tool valide") print(f" - name: {tool['name']}") print(f" - description: {tool['description'][:50]}...") print(f" - inputSchema: {list(tool['inputSchema'].keys())}") else: print(f"❌ Réponse invalide: {json.dumps(result, indent=2)}") return result def test_tool_call(): """Test d'exécution d'un tool simple""" print("\n🔍 Test tools/call (get_now_playing)...") payload = { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_now_playing", "arguments": {} }, "id": 3 } response = requests.post(MCP_URL, json=payload) result = response.json() print(f"Réponse: {json.dumps(result, indent=2)[:200]}...") return result if __name__ == "__main__": print("🧪 Test du serveur MCP Kodi\n") print(f"URL: {MCP_URL}\n") try: # Test 1: Initialize test_initialize() # Test 2: Liste des tools test_tools_list() # Test 3: Exécution d'un tool test_tool_call() print("\n✅ Tests terminés!") except requests.exceptions.ConnectionError: print(f"❌ Impossible de se connecter à {MCP_URL}") print("Vérifiez que le serveur MCP est démarré") except Exception as e: print(f"❌ Erreur: {e}") import traceback traceback.print_exc()

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/laHeud/kodi-mcp-server'

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