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 分