このプロジェクトについて
ccu-mcpは、AIアシスタント(Claude、Cursor、その他MCPクライアント)をHomeMaticスマートホームシステムに橋渡しするModel Context Protocol(MCP)サーバーです。CCUの組み込みJSON-RPC API(`/api/homematic.cgi`経由)に直接接続するため、アドオン、XML-API、クラウドサービスは不要です。debmatic、CCU3、OpenCCU(旧RaspberryMatic)を含むあらゆるHomeMatic CCUで動作します。
このサーバーは、デバイス検出、タイプ解決、セッション管理、値変換を処理し、「浴室の温度は?」「開いている窓はありますか?」「リビングの暖房を21度に設定して」「バッテリー残量が少ないデバイスをすべて表示して」といった自然言語の質問を可能にするツールを公開します。また、命名規則に従ったデバイス名の変更、チャンネル名の不一致の検出、デバイスの健全性チェックなどの高度な操作もサポートします。
**主な機能:**
- **CCUへの直接接続**:アドオンやクラウドは不要。標準のJSON-RPCエンドポイントを使用。
- **複数のトランスポート**:サブプロセス(stdio)またはスタンドアロンHTTPサーバー(Docker)として実行可能。
- **Dockerサポート**:linux/amd64およびlinux/arm64用のイメージを公開。サプライチェーンセキュリティのための証明書も付属。
- **複数CCUプロファイル**:1つのサーバーから複数のCCU(例:本番と開発)を設定・切り替え可能。
- **セキュリティ**:ベアラートークン認証(自動生成または明示指定)、DNSリバインディング保護、CORS許可リスト、TLSサポート(自己署名証明書のピン留めを含む)、オプションのfail2ban統合。
- **セットアップウィザード**:対話型の`init`コマンドがCCUをプローブし、TLS証明書をピン留めし、ログインをテストし、すぐ使える`.env`ファイルを書き出します。会話型セットアップモードでは、LLMがチャットでプロセスをガイドできます。
- **診断**:`doctor`コマンドが設定をエンドツーエンドで検証します。
- **レート制限**:CCUを保護するためのバーストおよび持続レート制限を内蔵。
- **リソースポーリング**:MCPリソース変更通知のためのオプションのポーリング。
**インストールと使用方法:**
- **クイックスタート(stdio)**:`CCU_HOST`と`CCU_PASSWORD`環境変数を設定し、`npx ccu-mcp --stdio`を実行します。`.mcp.json`ファイルでMCPクライアント(例:Claude Code)を設定します。
- **Docker(HTTP)**:イメージをプルし、環境変数で実行し、コンテナのデータボリュームから認証トークンを取得します。サーバーURLとベアラートークンでクライアントを設定します。
- **設定**:すべての設定は環境変数で行います(READMEの表を参照)。インラインenv、`.env`ファイル、シェルエクスポートをサポート。
- **CLIフラグ**:`init`、`doctor`、`secret`、`--stdio`、`--http`、`--env`、`--version`、`--help`。
**セキュリティに関する考慮事項:**
- サーバーはデフォルトで平文HTTPを使用しますが、ループバック以外のインターフェースでトークンを提供する場合は警告します。認識するには`MCP_ALLOW_PLAINTEXT=true`を設定します。
- リモートアクセスには、TLS(リバースプロキシまたはネイティブHTTPS)を使用し、403エラーを避けるために`MCP_ALLOWED_HOSTS`を設定します。
- トークンローテーションは、クライアントの中断を避けるための猶予期間付きでサポートされています。
- CORSはデフォルトで拒否です。ブラウザベースのクライアント用にオリジンを許可リストに登録します。
**要件:** Node.js 24以上(ソース/stdio用)またはDocker。実行中のHomeMatic CCUと管理者資格情報。
**クライアント設定例(stdio):**
```json
{
"mcpServers": {
"ccu-mcp": {
"command": "npx",
"args": ["ccu-mcp", "--stdio"],
"env": {
"CCU_HOST": "your-ccu-hostname-or-ip",
"CCU_PASSWORD": "your-ccu-admin-password"
}
}
}
}
```
**クライアント設定例(HTTP):**
```json
{
"mcpServers": {
"ccu-mcp": {
"url": "http://your-server-ip:3000",
"headers": {
"Authorization": "Bearer PASTE-YOUR-TOKEN-HERE"
}
}
}
}
```
このプロジェクトはオープンソースであり、貢献を歓迎します。OpenSSFベストプラクティスとScorecardのバッジが含まれており、セキュリティと品質に重点を置いていることを示しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.