{"apiVersion":"v1","directorySlug":"kochwilli-mcp-dd0f75f8c1","title":"Kochwilli","description":null,"pageUrl":"https://www.mcpbundles.com/skills/kochwilli-mcp-dd0f75f8c1","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.kochwilli.cc/mcp","hostedMcpUrl":null,"toolCount":34,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"cc.kochwilli/kochwilli-mcp-dd0f75f8c1","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"proxmox_get_nodes","description":"Listet alle Proxmox-Nodes im Cluster mit Status, CPU- und RAM-Auslastung.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Proxmox: Nodes auflisten","logicalName":"proxmox_get_nodes","displayName":"Proxmox: Nodes auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_list_vms","description":"Listet alle VMs (qemu) und LXC-Container auf einem Node mit Status (running/stopped), VMID und Namen.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node"],"properties":{"node":{"type":"string"}}},"title":"Proxmox: VMs und Container auflisten","logicalName":"proxmox_list_vms","displayName":"Proxmox: VMs und Container auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_vm_status","description":"Ruft den aktuellen Status (running/stopped, CPU, RAM, Uptime) einer einzelnen VM oder eines LXC-Containers ab.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node","vmid","type"],"properties":{"node":{"type":"string"},"type":{"enum":["qemu","lxc"],"type":"string"},"vmid":{"type":"number"}}},"title":"Proxmox: Status einer VM/eines Containers","logicalName":"proxmox_vm_status","displayName":"Proxmox: Status einer VM/eines Containers","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_vm_action","description":"Startet, stoppt oder startet eine VM oder einen LXC-Container neu.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node","vmid","type","action"],"properties":{"node":{"type":"string"},"type":{"enum":["qemu","lxc"],"type":"string"},"vmid":{"type":"number"},"action":{"enum":["start","stop","shutdown","reboot"],"type":"string"}}},"title":"Proxmox: VM/Container starten, stoppen oder neustarten","logicalName":"proxmox_vm_action","displayName":"Proxmox: VM/Container starten, stoppen oder neustarten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_get_next_id","description":"Fragt beim Cluster die nächste freie VMID ab, bevor eine neue VM oder LXC erstellt wird.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Proxmox: Nächste freie VMID ermitteln","logicalName":"proxmox_get_next_id","displayName":"Proxmox: Nächste freie VMID ermitteln","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_list_storage_content","description":"Listet den Inhalt eines Storage auf einem Node auf, z.B. um verfügbare LXC-Templates (vztmpl) oder ISOs zu finden, bevor ein Container erstellt wird.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node","storage"],"properties":{"node":{"type":"string"},"storage":{"type":"string"}}},"title":"Proxmox: Storage-Inhalt auflisten (Templates, ISOs, etc.)","logicalName":"proxmox_list_storage_content","displayName":"Proxmox: Storage-Inhalt auflisten (Templates, ISOs, etc.)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_create_lxc","description":"Erstellt einen neuen LXC-Container aus einem OS-Template. Für die Vorlage vorher proxmox_list_storage_content nutzen, um den exakten Template-Pfad zu finden.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node","vmid","hostname","ostemplate","password"],"properties":{"node":{"type":"string"},"vmid":{"type":"number"},"cores":{"type":"number","default":2},"bridge":{"type":"string","default":"vmbr0"},"disk_gb":{"type":"number","default":8},"storage":{"type":"string","default":"local-lvm"},"swap_mb":{"type":"number","default":512},"hostname":{"type":"string"},"password":{"type":"string"},"ip_config":{"type":"string","default":"dhcp"},"memory_mb":{"type":"number","default":1024},"ostemplate":{"type":"string"},"unprivileged":{"type":"boolean","default":true},"start_after_create":{"type":"boolean","default":true},"inject_agent_ssh_key":{"type":"boolean","default":true}}},"title":"Proxmox: Neuen LXC-Container erstellen","logicalName":"proxmox_create_lxc","displayName":"Proxmox: Neuen LXC-Container erstellen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_clone_vm","description":"Klont eine bestehende VM oder LXC (z.B. ein Template) zu einer neuen VMID.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node","source_vmid","new_vmid","type","name"],"properties":{"name":{"type":"string"},"node":{"type":"string"},"type":{"enum":["qemu","lxc"],"type":"string"},"new_vmid":{"type":"number"},"full_clone":{"type":"boolean","default":true},"source_vmid":{"type":"number"}}},"title":"Proxmox: VM oder LXC klonen","logicalName":"proxmox_clone_vm","displayName":"Proxmox: VM oder LXC klonen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_set_config","description":"Setzt beliebige Konfigurationswerte (z.B. net0, memory, cores) für eine bestehende VM oder LXC.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node","vmid","type","config"],"properties":{"node":{"type":"string"},"type":{"enum":["qemu","lxc"],"type":"string"},"vmid":{"type":"number"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}}},"title":"Proxmox: Konfiguration einer VM/eines Containers ändern","logicalName":"proxmox_set_config","displayName":"Proxmox: Konfiguration einer VM/eines Containers ändern","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"proxmox_delete_vm","description":"Löscht eine VM oder einen LXC-Container unwiderruflich, inklusive zugehöriger Disks. Stoppt den Container/die VM bei Bedarf vorher automatisch.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["node","vmid","type"],"properties":{"node":{"type":"string"},"type":{"enum":["qemu","lxc"],"type":"string"},"vmid":{"type":"number"},"force_stop_first":{"type":"boolean","default":true}}},"title":"Proxmox: VM oder LXC löschen","logicalName":"proxmox_delete_vm","displayName":"Proxmox: VM oder LXC löschen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cloudflare_list_dns_records","description":"Listet alle DNS-Einträge der konfigurierten Zone (kochwilli.cc) auf.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Cloudflare: DNS-Einträge auflisten","logicalName":"cloudflare_list_dns_records","displayName":"Cloudflare: DNS-Einträge auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cloudflare_create_dns_record","description":"Erstellt einen neuen DNS-Eintrag in der Zone, z.B. einen CNAME für einen neuen Dienst auf den Cloudflare Tunnel.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["type","name","content"],"properties":{"name":{"type":"string"},"type":{"enum":["A","AAAA","CNAME","TXT"],"type":"string"},"content":{"type":"string"},"proxied":{"type":"boolean","default":true}}},"title":"Cloudflare: DNS-Eintrag erstellen","logicalName":"cloudflare_create_dns_record","displayName":"Cloudflare: DNS-Eintrag erstellen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cloudflare_delete_dns_record","description":"Löscht einen DNS-Eintrag anhand seiner Record-ID (siehe cloudflare_list_dns_records).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["record_id"],"properties":{"record_id":{"type":"string"}}},"title":"Cloudflare: DNS-Eintrag löschen","logicalName":"cloudflare_delete_dns_record","displayName":"Cloudflare: DNS-Eintrag löschen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cloudflare_list_tunnels","description":"Listet alle Cloudflare Tunnel des Accounts auf.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Cloudflare: Tunnel auflisten","logicalName":"cloudflare_list_tunnels","displayName":"Cloudflare: Tunnel auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cloudflare_get_tunnel_config","description":"Ruft die aktuelle Ingress-Konfiguration (Public-Hostname-Routing) eines Tunnels ab.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["tunnel_id"],"properties":{"tunnel_id":{"type":"string"}}},"title":"Cloudflare: Tunnel-Konfiguration (Ingress-Regeln) abrufen","logicalName":"cloudflare_get_tunnel_config","displayName":"Cloudflare: Tunnel-Konfiguration (Ingress-Regeln) abrufen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cloudflare_update_tunnel_config","description":"Setzt die komplette Ingress-Liste (Public-Hostname-Routing) eines Tunnels neu. Die Liste MUSS als letzten Eintrag eine Catch-all-Regel ohne hostname enthalten (z.B. service: 'http_status:404').","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["tunnel_id","ingress"],"properties":{"ingress":{"type":"array","items":{"type":"object","required":["service"],"properties":{"path":{"type":"string"},"service":{"type":"string"},"hostname":{"type":"string"}}}},"tunnel_id":{"type":"string"}}},"title":"Cloudflare: Tunnel-Konfiguration setzen","logicalName":"cloudflare_update_tunnel_config","displayName":"Cloudflare: Tunnel-Konfiguration setzen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nas_ssh_exec","description":"Führt einen beliebigen Shell-Befehl auf der Synology NAS per SSH aus. Für gezielte Docker-Bereinigung (Container/Ordner entfernen) im Rahmen der Migration.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["command"],"properties":{"cwd":{"type":"string"},"command":{"type":"string"}}},"title":"NAS: Shell-Befehl per SSH ausführen","logicalName":"nas_ssh_exec","displayName":"NAS: Shell-Befehl per SSH ausführen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nas_docker_list","description":"Listet alle Docker-Container auf der NAS mit Name, Image und Status auf.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"NAS: Docker-Container auflisten","logicalName":"nas_docker_list","displayName":"NAS: Docker-Container auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nas_docker_remove_container","description":"Stoppt und entfernt einen einzelnen Docker-Container auf der NAS anhand seines Namens.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name"],"properties":{"name":{"type":"string"}}},"title":"NAS: Docker-Container entfernen","logicalName":"nas_docker_remove_container","displayName":"NAS: Docker-Container entfernen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"lxc_ssh_exec","description":"Verbindet sich per SSH zu einer beliebigen IP im LAN (typischerweise ein frisch erstellter LXC-Container oder VM) und führt dort einen Shell-Befehl aus. Ersetzt die fehleranfällige Proxmox-Browser-Konsole für Setup-Aufgaben in neuen Containern.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["host","command","password"],"properties":{"host":{"type":"string"},"port":{"type":"number","default":22},"user":{"type":"string","default":"root"},"command":{"type":"string"},"password":{"type":"string"},"timeout_ms":{"type":"number","default":60000}}},"title":"Beliebigen Container/VM per SSH erreichen und Befehl ausführen","logicalName":"lxc_ssh_exec","displayName":"Beliebigen Container/VM per SSH erreichen und Befehl ausführen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"obsidian_list_notes","description":"Listet alle Dateien/Notizen in einem Vault-Ordner auf (leer = Vault-Wurzel).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"folder":{"type":"string"}}},"title":"Obsidian: Notizen in einem Ordner auflisten","logicalName":"obsidian_list_notes","displayName":"Obsidian: Notizen in einem Ordner auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"obsidian_get_note","description":"Liest den vollständigen Inhalt einer Notiz (Markdown-Datei) aus dem Vault.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path"],"properties":{"path":{"type":"string"}}},"title":"Obsidian: Notiz lesen","logicalName":"obsidian_get_note","displayName":"Obsidian: Notiz lesen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"obsidian_search_notes","description":"Durchsucht alle Notizen im Vault per Volltextsuche nach einem Suchbegriff.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"query":{"type":"string"}}},"title":"Obsidian: Notizen durchsuchen","logicalName":"obsidian_search_notes","displayName":"Obsidian: Notizen durchsuchen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"obsidian_create_or_update_note","description":"Erstellt eine neue Notiz oder überschreibt eine bestehende komplett mit neuem Inhalt.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","content"],"properties":{"path":{"type":"string"},"content":{"type":"string"}}},"title":"Obsidian: Notiz erstellen oder überschreiben","logicalName":"obsidian_create_or_update_note","displayName":"Obsidian: Notiz erstellen oder überschreiben","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"obsidian_append_to_note","description":"Hängt Text an das Ende einer bestehenden Notiz an, ohne den bisherigen Inhalt zu löschen.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","content"],"properties":{"path":{"type":"string"},"content":{"type":"string"}}},"title":"Obsidian: Text an Notiz anhängen","logicalName":"obsidian_append_to_note","displayName":"Obsidian: Text an Notiz anhängen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ha_get_state","description":"Ruft den aktuellen Zustand (state + attributes) einer einzelnen Home Assistant Entität ab, z.B. 'light.wohnzimmer' oder 'binary_sensor.prasenzsensor_2'.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["entity_id"],"properties":{"entity_id":{"type":"string"}}},"title":"Home Assistant: Zustand einer Entität abfragen","logicalName":"ha_get_state","displayName":"Home Assistant: Zustand einer Entität abfragen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ha_list_states","description":"Listet alle Entitäten mit ihrem aktuellen Zustand. Optional nach Domain filtern (z.B. 'light', 'sensor', 'binary_sensor'), da die Vollliste sehr groß sein kann.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"domain":{"type":"string"}}},"title":"Home Assistant: Alle Entitäten auflisten","logicalName":"ha_list_states","displayName":"Home Assistant: Alle Entitäten auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ha_call_service","description":"Ruft einen Home Assistant Service auf, z.B. um ein Licht zu schalten (domain 'light', service 'turn_on'/'turn_off'), eine Automation auszulösen (domain 'automation', service 'trigger'), oder eine Szene zu aktivieren.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain","service"],"properties":{"domain":{"type":"string"},"service":{"type":"string"},"entity_id":{"type":"string"},"service_data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"title":"Home Assistant: Service aufrufen (Licht schalten, Automation auslösen, etc.)","logicalName":"ha_call_service","displayName":"Home Assistant: Service aufrufen (Licht schalten, Automation auslösen, etc.)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ha_get_history","description":"Ruft die Zustandshistorie einer Entität für einen Zeitraum ab, z.B. um Sensorverläufe oder Anwesenheit über Zeit zu prüfen.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["entity_id"],"properties":{"hours":{"type":"number","default":24},"entity_id":{"type":"string"}}},"title":"Home Assistant: Verlauf einer Entität abrufen","logicalName":"ha_get_history","displayName":"Home Assistant: Verlauf einer Entität abrufen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unifi_list_clients","description":"Listet alle jemals gesehenen Clients/Geraete im UniFi-Netzwerk (nicht nur aktuell verbundene), inkl. Name, MAC, Hersteller, aktueller/fixer IP und ob eine feste IP-Reservierung existiert. Basis fuer IP-Adressplanung.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"UniFi: Alle bekannten Clients auflisten","logicalName":"unifi_list_clients","displayName":"UniFi: Alle bekannten Clients auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unifi_list_active_clients","description":"Listet nur die aktuell aktiv verbundenen Clients (WLAN/LAN) mit Live-Daten.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"UniFi: Aktuell verbundene Clients auflisten","logicalName":"unifi_list_active_clients","displayName":"UniFi: Aktuell verbundene Clients auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unifi_list_devices","description":"Listet die UniFi-eigenen Geraete (Access Points, Switches, Gateway) mit Name, Modell, MAC und IP.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"UniFi: Netzwerk-Hardware auflisten","logicalName":"unifi_list_devices","displayName":"UniFi: Netzwerk-Hardware auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unifi_list_networks","description":"Listet die konfigurierten Netzwerke/VLANs mit Subnetz, VLAN-ID und DHCP-Range.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"UniFi: Netzwerke/VLANs auflisten","logicalName":"unifi_list_networks","displayName":"UniFi: Netzwerke/VLANs auflisten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unifi_set_client_fixed_ip","description":"Setzt/aendert die feste IP-Reservierung eines Clients anhand seiner UniFi-internen ID (id-Feld aus unifi_list_clients). Aktiviert use_fixedip automatisch.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["client_id","fixed_ip"],"properties":{"fixed_ip":{"type":"string"},"client_id":{"type":"string"},"network_id":{"type":"string"}}},"title":"UniFi: Feste IP fuer einen Client setzen","logicalName":"unifi_set_client_fixed_ip","displayName":"UniFi: Feste IP fuer einen Client setzen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Kochwilli&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Aua29jaHdpbGxpLmNjL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Kochwilli%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.kochwilli.cc%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Kochwilli%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.kochwilli.cc%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Kochwilli&connectorUrl=https%3A%2F%2Fmcp.kochwilli.cc%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Kochwilli\" --url \"https://mcp.kochwilli.cc/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kochwilli-mcp-dd0f75f8c1","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kochwilli-mcp-dd0f75f8c1/tools/{tool}","mcpServerUrl":"https://mcp.kochwilli.cc/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kochwilli-mcp-dd0f75f8c1?live=1"}