Skip to main content
Glama

MCP LEDAPI Intent Controller

by kri77
MCPForLedAPI.py2.33 kB
from fastapi import FastAPI, HTTPException from pydantic import BaseModel import requests app = FastAPI(title="MCP LED Intent Controller for LedAPI") LED_API_BASE = "http://localhost:5000" # Context Model class IntentRequest(BaseModel): intent: str parameters: dict = {} # LED Pattern Translator def set_led_pattern(pattern: str): if len(pattern) != 4 or any(c not in "01" for c in pattern): raise ValueError("Invalid LED pattern format.") res = requests.post(f"{LED_API_BASE}/setLedStatus", json={"pattern": pattern}) return res.json() def get_led_status(): res = requests.get(f"{LED_API_BASE}/status") return res.json() # Intent Dispatcher def handle_intent(intent: str, parameters: dict): intent = intent.lower() if intent == "turnonled": color = parameters.get("color", "").lower() pattern = { "red": "1000", "yellow": "0100", "green": "0010", "blue": "0001" }.get(color) if not pattern: raise ValueError(f"Unsupported color: {color}") return set_led_pattern(pattern) elif intent == "turnoffled": return set_led_pattern("0000") elif intent == "setpattern": pattern = parameters.get("pattern", "") return set_led_pattern(pattern) elif intent == "powerdown": return set_led_pattern("0000") elif intent == "getstatus": return get_led_status() elif intent == "setmood": mood = parameters.get("mood", "").lower() mood_patterns = { "calm": "0001", # blue "alert": "1111", # all "focus": "0010", # green "idle": "0000" # off } pattern = mood_patterns.get(mood) if not pattern: raise ValueError(f"Unsupported mood: {mood}") return set_led_pattern(pattern) else: raise ValueError(f"Unknown intent: {intent}") # API Endpoint @app.post("/intent") def intent_router(request: IntentRequest): try: result = handle_intent(request.intent, request.parameters) return {"result": result} except Exception as e: raise HTTPException(status_code=400, detail=str(e)) # Swagger UI: http://localhost:8000/docs # Redoc: http://localhost:8000/redoc

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/kri77/MCPForLedAPI'

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