From d94d38a3143416192add830d86badc030da27a7b Mon Sep 17 00:00:00 2001 From: bes-r Date: Fri, 29 May 2026 21:57:32 +0200 Subject: [PATCH] feat: MCP-server boilerplates voor Forgejo en Home Assistant --- apps/forgejo-mcp/files/compose.yaml | 10 ++++ apps/forgejo-mcp/template.json | 55 ++++++++++++++++++++ apps/homeassistant-mcp/files/compose.yaml | 16 ++++++ apps/homeassistant-mcp/template.json | 62 +++++++++++++++++++++++ 4 files changed, 143 insertions(+) create mode 100644 apps/forgejo-mcp/files/compose.yaml create mode 100644 apps/forgejo-mcp/template.json create mode 100644 apps/homeassistant-mcp/files/compose.yaml create mode 100644 apps/homeassistant-mcp/template.json diff --git a/apps/forgejo-mcp/files/compose.yaml b/apps/forgejo-mcp/files/compose.yaml new file mode 100644 index 0000000..10538b0 --- /dev/null +++ b/apps/forgejo-mcp/files/compose.yaml @@ -0,0 +1,10 @@ +services: + << service_name >>: + image: ronmi/forgejo-mcp:latest + container_name: << service_name >> + command: http --address :<< port >> --server << forgejo_url >> + environment: + - FORGEJOMCP_TOKEN=<< forgejo_token >> + ports: + - "<< port >>:<< port >>" + restart: unless-stopped diff --git a/apps/forgejo-mcp/template.json b/apps/forgejo-mcp/template.json new file mode 100644 index 0000000..f873304 --- /dev/null +++ b/apps/forgejo-mcp/template.json @@ -0,0 +1,55 @@ +{ + "kind": "compose", + "metadata": { + "name": "Forgejo MCP Server", + "description": "MCP-server voor Forgejo en Gitea. Laat AI-assistenten zoals Claude je repositories, issues, pull requests en releases beheren via natuurlijke taal.", + "tags": ["mcp", "ai", "forgejo", "gitea", "claude"], + "icon": {"provider": "selfhst", "id": "forgejo"}, + "version": {"name": "latest"} + }, + "variables": [ + { + "title": "Algemeen", + "items": [ + { + "name": "service_name", + "type": "str", + "title": "Servicenaam", + "default": "forgejo-mcp", + "required": true + }, + { + "name": "port", + "type": "int", + "title": "Poort", + "default": 8090, + "required": true, + "description": "Poort waarop de MCP-server bereikbaar is. SSE-endpoint: http://server:poort/sse" + } + ] + }, + { + "title": "Forgejo verbinding", + "items": [ + { + "name": "forgejo_url", + "type": "str", + "title": "Forgejo URL", + "default": "https://jouw-forgejo-url", + "required": true, + "description": "Volledige URL van je Forgejo- of Gitea-instantie", + "config": {"placeholder": "https://git.example.com"} + }, + { + "name": "forgejo_token", + "type": "str", + "title": "API-token", + "default": "", + "required": true, + "description": "Maak een token aan via Forgejo → Instellingen → Toepassingen → Access Tokens. Geef minimaal 'repository' en 'issue' schrijfrechten.", + "config": {"placeholder": "jouw-api-token"} + } + ] + } + ] +} diff --git a/apps/homeassistant-mcp/files/compose.yaml b/apps/homeassistant-mcp/files/compose.yaml new file mode 100644 index 0000000..274010b --- /dev/null +++ b/apps/homeassistant-mcp/files/compose.yaml @@ -0,0 +1,16 @@ +services: + << service_name >>: + build: + context: https://github.com/tevonsb/homeassistant-mcp.git + container_name: << service_name >> + ports: + - "<< port >>:3000" + environment: + - HASS_HOST=<< hass_host >> + - HASS_TOKEN=<< hass_token >> + - HASS_SOCKET_URL=<< hass_host | replace("http://", "ws://") | replace("https://", "wss://") >>/api/websocket + - PORT=3000 + - NODE_ENV=production + volumes: + - << data_dir >>/<< service_name >>:/app/data + restart: unless-stopped diff --git a/apps/homeassistant-mcp/template.json b/apps/homeassistant-mcp/template.json new file mode 100644 index 0000000..b885722 --- /dev/null +++ b/apps/homeassistant-mcp/template.json @@ -0,0 +1,62 @@ +{ + "kind": "compose", + "metadata": { + "name": "Home Assistant MCP Server", + "description": "MCP-server voor Home Assistant. Laat AI-assistenten zoals Claude je slimme apparaten bedienen, automations beheren en statussen opvragen via natuurlijke taal.", + "tags": ["mcp", "ai", "home-assistant", "smarthome", "claude"], + "icon": {"provider": "selfhst", "id": "home-assistant"}, + "version": {"name": "latest"} + }, + "variables": [ + { + "title": "Algemeen", + "items": [ + { + "name": "service_name", + "type": "str", + "title": "Servicenaam", + "default": "homeassistant-mcp", + "required": true + }, + { + "name": "port", + "type": "int", + "title": "Poort", + "default": 3010, + "required": true, + "description": "Poort waarop de MCP-server bereikbaar is" + }, + { + "name": "data_dir", + "type": "str", + "title": "Data directory", + "default": "/opt/serverup/appdata", + "required": true + } + ] + }, + { + "title": "Home Assistant verbinding", + "items": [ + { + "name": "hass_host", + "type": "str", + "title": "Home Assistant URL", + "default": "http://homeassistant:8123", + "required": true, + "description": "URL van je Home Assistant instantie", + "config": {"placeholder": "http://192.168.1.x:8123"} + }, + { + "name": "hass_token", + "type": "str", + "title": "Long-lived access token", + "default": "", + "required": true, + "description": "Maak een token aan via Home Assistant → Profiel → Lange termijn toegangstokens (onderaan de pagina)", + "config": {"placeholder": "eyJ..."} + } + ] + } + ] +}