DDC/CI Control Bridge

io.github.Defozo由 GitHub 帳號 Defozo 發布v1.0.5更新於 Oct 24, 2026

Control monitor brightness, contrast, power and input via DDC/CI with MCP and MQTT support.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓助理透過 DDC/CI 讀取並調整實體螢幕的亮度、對比度、輸入來源與電源等設定。

可以做什麼
讀取和寫入螢幕的 VCP 代碼,包括亮度、對比度數值以及其他支援的代碼,並在螢幕允許時設定輸入來源或電源狀態。列出已連接的螢幕,並重新掃描螢幕及其支援的 VCP 能力。以 MCP 資源形式讀取螢幕中繼資料和所有支援代碼的目前數值。可選用 MQTT 發布與訂閱,支援 Home Assistant 自動探索,讓同一組控制也能由自動化平台驅動。
適用情境
當你希望助理調整或檢視連接在本機上的實體螢幕時使用,例如調暗螢幕、切換輸入來源,或查看某台螢幕支援哪些 VCP 代碼。若想把螢幕控制接入 Home Assistant 或其他 MQTT 自動化平台,它同樣適用。
執行需求
以本機程序形式執行在連接螢幕的機器上,可透過 npm、npx 或獨立執行檔安裝;npm 方式需要 Node.js。螢幕必須支援 DDC/CI,並在其螢幕選單中啟用。Linux 上可能需要將使用者加入 i2c 群組並載入 i2c-dev 模組。獨立執行檔要求設定 DDC_API_KEY 環境變數。可選的 MQTT 設定包括 MQTT_ENABLED、MQTT_HOST 和 MQTT_PORT。
安裝前請注意
此伺服器會改變真實硬體狀態:寫入 VCP 代碼、亮度、輸入來源或電源會影響實體螢幕,可能使畫面變黑或關閉。獨立執行檔在未設定 DDC_API_KEY 時會直接結束,README 的用戶端設定中也出現 API 金鑰,應視為機密。啟用 MQTT 會連接代理並發布螢幕狀態與控制主題,只應指向可信任的代理。README 將提高權限列為疑難排解手段,需謹慎看待。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 DDC/CI Control Bridge,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

DDC/CI Control Bridge

[DDC/CI Control Bridge]

[NPM Version] [MIT licensed] [GitHub Release]

[Install MCP Server] [Install in VS Code]

Multi-protocol server for DDC/CI monitor control with MCP and MQTT support.

Features

  • DDC/CI Monitor Control: Read and write VCP codes to control monitor brightness, contrast, input source, and more
  • Model Context Protocol (MCP): Server with resources and tools for AI/agent integration
  • MQTT Client: Connect to any MQTT broker for IoT/automation platforms
    • Home Assistant auto-discovery support
    • Generic MQTT pub/sub for custom integrations
  • Cross-Platform: Works on Windows, Linux, and macOS
  • Dual Distribution: Available as standalone executable or npm package

Quick Start

Installation

Option 1: NPM Package (Global)

bash
npm install -g ddc-ci-control-bridgeddc-ci-bridge

Option 2: NPX (No Install)

bash
npx ddc-ci-control-bridge

Option 3: Standalone Executable

Download the binary for your platform from GitHub Releases:

  • Windows: ddc-ci-bridge-win.exe
  • Linux: ddc-ci-bridge-linux
  • macOS: ddc-ci-bridge-macos

⚠️ Note: The executable requires DDC_API_KEY environment variable to be set, or it will exit immediately.

Windows:

cmd
# Set API key (required)set DDC_API_KEY=your-secret-key
# Run the executableddc-ci-bridge-win.exe
# Or set multiple environment variablesset DDC_API_KEY=your-secret-keyset MQTT_ENABLED=trueset MQTT_HOST=192.168.1.100ddc-ci-bridge-win.exe

Linux/macOS:

bash
# Make executable (first time only)chmod +x ddc-ci-bridge-linux  # or ddc-ci-bridge-macos
# Run with API key (required)DDC_API_KEY=your-secret-key ./ddc-ci-bridge-linux
# Or with multiple environment variablesDDC_API_KEY=your-secret-key MQTT_ENABLED=true MQTT_HOST=192.168.1.100 ./ddc-ci-bridge-linux

Using with MCP Clients:

Configure your MCP client to use the executable path:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "C:\\path\\to\\ddc-ci-bridge-win.exe",      "args": [],      "env": {        "MQTT_ENABLED": "false"      }    }  }}

MCP Client Setup

Choose between Local (stdio) or Remote (HTTP) setup depending on your needs:

  • Local Setup: Run MCP server on the same machine as your monitors (recommended for most users)
  • Remote Setup: Run MCP server on a monitor-connected machine, access from other devices

🖥️ Local Setup (stdio - Same Machine)

Use this if your MCP client is on the same machine as your monitors.

Install in Cursor (Local)

Go to: Settings → Cursor Settings → MCP → Add new global MCP server

[Install MCP Server]

Or paste the following configuration into your ~/.cursor/mcp.json file:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false",        "MQTT_HOST": "localhost",        "MQTT_PORT": "1883"      }    }  }}

Optional MQTT: Set MQTT_ENABLED=true and configure MQTT_HOST to your MQTT broker IP for automation platform integration.

Install in VS Code (Local)

[Install in VS Code]

Add this to your VS Code MCP config file:

json
"mcp": {  "servers": {    "ddc-ci-bridge": {      "type": "stdio",      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Install in Claude Desktop (Local)

Open Claude Desktop developer settings and edit your claude_desktop_config.json file:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Install in Claude Code (Local)

Run this command:

sh
claude mcp add ddc-ci-bridge -- npx -y ddc-ci-control-bridge
Install in Windsurf (Local)

Add this to your Windsurf MCP config file:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Install in Cline (Local)

Add this to your Cline MCP configuration:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Install in Zed (Local)

Add this to your Zed settings.json:

json
{  "context_servers": {    "DDC/CI Bridge": {      "source": "custom",      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Install in Roo Code (Local)

Add this to your Roo Code MCP configuration:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Install in Augment Code (Local)

Option A: Using the UI

  1. Click the hamburger menu
  2. Select Settings
  3. Navigate to Tools section
  4. Click + Add MCP button
  5. Enter command: npx -y ddc-ci-control-bridge
  6. Name: DDC/CI Bridge
  7. Click Add

Option B: Manual Configuration

Add to settings.json:

json
"augment.advanced": {  "mcpServers": [    {      "name": "ddc-ci-bridge",      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  ]}
Install in JetBrains AI Assistant (Local)
  1. Go to Settings → Tools → AI Assistant → Model Context Protocol (MCP)
  2. Click + Add
  3. Select As JSON from the dropdown
  4. Add this configuration:
json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
  1. Click Apply to save changes
Install in Warp (Local)
  1. Navigate Settings → AI → Manage MCP servers
  2. Click + Add button
  3. Paste this configuration:
json
{  "DDC/CI Bridge": {    "command": "npx",    "args": ["-y", "ddc-ci-control-bridge"],    "env": {      "FASTMCP_API_KEY": "your-api-key-here",      "MQTT_ENABLED": "false"    },    "working_directory": null,    "start_on_launch": true  }}
  1. Click Save
Install in OpenAI Codex (Local)

Add to your Codex MCP configuration:

toml
[mcp_servers.ddc-ci-bridge]command = "npx"args = ["-y", "ddc-ci-control-bridge"]
[mcp_servers.ddc-ci-bridge.env]MQTT_ENABLED = "false"

Windows Users: Use full paths if you encounter timeout errors:

toml
[mcp_servers.ddc-ci-bridge]command = "cmd"args = ["/c", "npx", "-y", "ddc-ci-control-bridge"]startup_timeout_ms = 20_000
[mcp_servers.ddc-ci-bridge.env]SystemRoot = "C:\\Windows"FASTMCP_API_KEY = "your-api-key-here"MQTT_ENABLED = "false"
Install in LM Studio (Local)
  1. Navigate to Program (right side) → Install → Edit mcp.json
  2. Add this configuration:
json
{  "mcpServers": {    "DDC/CI Bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
  1. Click Save
  2. Toggle the MCP server on/off from the right side panel
Install in Qodo Gen (Local)
  1. Open Qodo Gen chat panel in VSCode or IntelliJ
  2. Click Connect more tools
  3. Click + Add new MCP
  4. Add this configuration:
json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Install in Perplexity Desktop (Local)
  1. Navigate Perplexity → Settings
  2. Select Connectors
  3. Click Add Connector
  4. Select Advanced
  5. Enter Server Name: DDC/CI Bridge
  6. Paste this JSON:
json
{  "command": "npx",  "args": ["-y", "ddc-ci-control-bridge"],  "env": {    "FASTMCP_API_KEY": "your-api-key-here",    "MQTT_ENABLED": "false"  }}
  1. Click Save
Install in Kiro (Local)
  1. Navigate Kiro → MCP Servers
  2. Click + Add button
  3. Paste this configuration:
json
{  "mcpServers": {    "DDC/CI Bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      },      "disabled": false,      "autoApprove": []    }  }}
  1. Click Save
Install in BoltAI (Local)
  1. Open Settings → Plugins
  2. Enter this JSON:
json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
  1. Save and restart if needed
Install in Zencoder (Local)
  1. Go to Zencoder menu (...)
  2. Select Agent tools
  3. Click Add custom MCP
  4. Add name and server configuration:
json
{  "command": "npx",  "args": ["-y", "ddc-ci-control-bridge"],  "env": {    "FASTMCP_API_KEY": "your-api-key-here",    "MQTT_ENABLED": "false"  }}
  1. Click Install
Install in Amazon Q Developer CLI (Local)

Add to your Amazon Q configuration:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "npx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Using Bun or Deno

Bun:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "bunx",      "args": ["-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      }    }  }}

Deno:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "deno",      "args": [        "run",        "--allow-env",        "--allow-net",        "npm:ddc-ci-control-bridge"      ],      "env": {        "MQTT_ENABLED": "false"      }    }  }}
Windows-Specific Configuration

On Windows, use this format (example with Cline):

json
{  "mcpServers": {    "ddc-ci-bridge": {      "command": "cmd",      "args": ["/c", "npx", "-y", "ddc-ci-control-bridge"],      "env": {        "MQTT_ENABLED": "false"      },      "disabled": false,      "autoApprove": []    }  }}

🌐 Remote Setup (HTTP - Different Machines)

Use this if you want to access monitor controls from a different machine on your network.

Step 1: Set up the MCP Server on Monitor-Connected Machine
  1. On the machine with monitors, create a .env file:
bash
DDC_API_KEY=your-secure-random-api-key-hereMCP_TRANSPORT=sseMCP_PORT=8000
# Optional: Enable MQTT for automation platformsMQTT_ENABLED=falseMQTT_HOST=localhostMQTT_PORT=1883
  1. Start the server:
bash
npm install -g ddc-ci-control-bridgeddc-ci-bridge

Or using npx:

bash
npx ddc-ci-control-bridge
  1. The server will display:
🔌 MCP Server: http://192.168.1.100:8000   Transport: sse   API Key: your-api...

Note the IP address and port for client configuration.

Step 2: Configure MCP Clients (Remote Connection)

Cursor:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "url": "http://192.168.1.100:8000",      "headers": {        "Authorization": "Bearer your-secure-random-api-key-here"      }    }  }}

VS Code:

json
"mcp": {  "servers": {    "ddc-ci-bridge": {      "type": "http",      "url": "http://192.168.1.100:8000",      "headers": {        "Authorization": "Bearer your-secure-random-api-key-here"      }    }  }}

Claude Desktop:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "url": "http://192.168.1.100:8000",      "headers": {        "Authorization": "Bearer your-secure-random-api-key-here"      }    }  }}

Windsurf:

json
{  "mcpServers": {    "ddc-ci-bridge": {      "serverUrl": "http://192.168.1.100:8000",      "headers": {        "Authorization": "Bearer your-secure-random-api-key-here"      }    }  }}

Note: Replace 192.168.1.100 with the actual IP address of your monitor-connected machine, and use the same API key you configured in the server's .env file.


Configuration

  1. Create a .env file:
bash
cp .env.example .env
  1. Edit .env and configure:
bash
DDC_API_KEY=your-secret-api-key-here
# Enable MQTT for automation platforms (optional)MQTT_ENABLED=falseMQTT_HOST=localhostMQTT_PORT=1883

To enable MQTT: Set MQTT_ENABLED=true and change MQTT_HOST to your MQTT broker IP (e.g., Home Assistant IP).

  1. Start the server:
bash
npm run dev

MQTT Integration

This server acts as an MQTT client and can connect to any MQTT broker.

Supported Platforms

  • Home Assistant: Auto-discovery via MQTT Discovery Protocol → See Home Assistant Guide
  • openHAB: MQTT binding with manual thing configuration
  • Node-RED: Subscribe to topics for custom flows
  • Domoticz: MQTT integration
  • Generic MQTT: Any platform that supports MQTT pub/sub

MQTT Topics

ddc-monitor/{index}/brightness/set|getddc-monitor/{index}/contrast/set|getddc-monitor/{index}/vcp/{code}/set|getddc-monitor/{index}/power/setddc-monitor/{index}/stateddc-monitor/bridge/status

MCP Resources

  • monitor://list - List all available monitors
  • monitor://{index}/capabilities - Full VCP code scan results
  • monitor://{index}/current-values - Current values of all supported codes
  • monitor://{index}/info - Monitor metadata

MCP Tools

  • get_vcp_code - Read a specific VCP code value
  • set_vcp_code - Write a value to a VCP code
  • get_brightness - Get monitor brightness (0-100)
  • set_brightness - Set monitor brightness (0-100)
  • refresh_monitors - Re-scan monitors and VCP capabilities

Development

Build

bash
npm run build

Build Executables

bash
npm run build:executables

This creates standalone executables in dist/bin/ for Windows, Linux, and macOS.

Run in Development

bash
npm run dev

Requirements

  • DDC/CI Support: Your monitor must support DDC/CI (most modern monitors do)
  • DDC/CI Enabled: Enable DDC/CI in your monitor's OSD settings
  • Permissions: On Linux, you may need to add your user to the i2c group

Linux Setup

bash
sudo usermod -a -G i2c $USERsudo modprobe i2c-dev

Log out and log back in for group changes to take effect.

Environment Variables

See .env.example for all available configuration options.

Key variables:

  • DDC_API_KEY - API key for server authentication (required)
  • MCP_TRANSPORT - Transport type: sse or stdio (default: sse)
  • MCP_PORT - HTTP port for SSE transport (default: 8000)
  • MQTT_ENABLED - Enable MQTT client (default: false)
  • MQTT_HOST - MQTT broker IP/hostname (default: localhost)
  • MQTT_PORT - MQTT broker port (default: 1883)
  • MQTT_USERNAME - Auto-configured as ddc-mcp
  • MQTT_PASSWORD - Auto-configured from DDC_API_KEY

Architecture

┌─────────────────────────────────────────┐│       DDC/CI Control Bridge             ││                                         ││  ┌─────────────────┐  ┌──────────────┐ ││  │  MCP Server     │  │ MQTT Client  │ ││  │  - Resources    │  │ - Pub/Sub    │ ││  │  - Tools        │  │ - Discovery  │ ││  └────────┬────────┘  └──────┬───────┘ ││           │                  │         ││           └────────┬─────────┘         ││                    │                   ││           ┌────────▼────────┐          ││           │ DDC Controller  │          ││           │ - VCP Scanning  │          ││           │ - Read/Write    │          ││           └────────┬────────┘          │└────────────────────┼───────────────────┘                     │            ┌────────▼────────┐            │ Physical Monitor│            │   (DDC/CI)      │            └─────────────────┘
External Clients:┌──────────────┐  ┌──────────────┐  ┌──────────────┐│ AI Agents    │  │ MQTT Broker  │  │ Automation   ││ (via MCP)    │  │ (any broker) │  │ Platforms    │└──────────────┘  └──────────────┘  └──────────────┘

License

MIT

Documentation

Contributing

Contributions welcome! Please open an issue or PR.

Troubleshooting

No monitors found

  • Ensure DDC/CI is enabled in your monitor's OSD settings
  • On Linux, check if i2c devices are available: ls -l /dev/i2c-*
  • Try running with elevated permissions (not recommended for production)

MQTT connection failed

  • Verify MQTT broker is running
  • Check credentials match the server output
  • Ensure firewall allows MQTT port (1883)

Commands not working

  • Check server logs for errors
  • Verify monitor supports the VCP code
  • Some codes may be read-only
  • Try restarting both server and Home Assistant

來源:README.md,提交 23a3e00

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.5最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分