mcpField
D
DDC/CI Control Bridge

DDC/CI Control Bridge

本地服务
github.com/Defozo其他554 周前更新

关于 DDC/CI Control Bridge

DDC/CI Control Bridge 是用于控制显示器的多协议服务,可通过 DDC/CI 读写 VCP 代码,调整亮度、对比度和输入源。它同时支持 MCP 与 MQTT,适用于 AI 工具接入和自动化平台集成。

主要功能

  1. 01读取和写入显示器 VCP 代码
  2. 02控制亮度、对比度及输入源
  3. 03通过 MQTT 接入自动化平台
  4. 04支持 Home Assistant 自动发现
  5. 05提供本地和远程 MCP 连接

适用场景

  1. 01从 AI 客户端调整显示器设置
  2. 02让 Home Assistant 发现并控制显示器
  3. 03从其他设备访问连接的显示器
  4. 04通过 MQTT 构建自定义自动化

MCP 相关

该 MCP 服务提供显示器控制工具,以及列出显示器、能力、当前值和元数据的资源。客户端可通过本地 stdio 或远程 HTTP 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"defozo-ddc-ci-control-bridge": {
"command": "npx",
"args": [
"-y",
"ddc-ci-control-bridge"
]
}
}
}
启动命令npx -y ddc-ci-control-bridge

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmddc-ci-control-bridge1.0.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

DDC/CI Control Bridge

DDC/CI Control Bridge

NPM Version MIT licensed GitHub Release

Install MCP Server 在 VS Code 中安装

支持 MCP 和 MQTT 的多协议 DDC/CI 显示器控制服务。

功能

  • DDC/CI 显示器控制:读取和写入 VCP 代码,以控制显示器亮度、对比度、输入源等
  • Model Context Protocol(MCP):提供资源和工具的服务,可与 AI/Agent 集成
  • MQTT 客户端:连接到任意 MQTT 代理,适用于 IoT/自动化平台
    • 支持 Home Assistant 自动发现
    • 通用 MQTT 发布/订阅,适用于自定义集成
  • 跨平台:支持 Windows、Linux 和 macOS
  • 双重分发:可作为独立可执行文件或 npm 包使用

快速开始

安装

选项 1:NPM 包(全局)

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

选项 2:NPX(无需安装)

npx ddc-ci-control-bridge

选项 3:独立可执行文件

从 GitHub Releases 下载适用于你平台的二进制文件:

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

⚠️ 注意: 必须设置 DDC_API_KEY 环境变量,否则可执行文件会立即退出。

Windows:

# Set API key (required)
set DDC_API_KEY=your-secret-key

# Run the executable
ddc-ci-bridge-win.exe

# Or set multiple environment variables
set DDC_API_KEY=your-secret-key
set MQTT_ENABLED=true
set MQTT_HOST=192.168.1.100
ddc-ci-bridge-win.exe

Linux/macOS:

# 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 variables
DDC_API_KEY=your-secret-key MQTT_ENABLED=true MQTT_HOST=192.168.1.100 ./ddc-ci-bridge-linux

与 MCP 客户端配合使用:

配置 MCP 客户端,使其使用可执行文件路径:

{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "C:\\path\\to\\ddc-ci-bridge-win.exe",
      "args": [],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
MCP 客户端设置

根据需要选择 本地(stdio) 或 远程(HTTP) 设置:

  • 本地设置:在与显示器相同的计算机上运行 MCP 服务(推荐大多数用户使用)
  • 远程设置:在连接显示器的计算机上运行 MCP 服务,并从其他设备访问

🖥️ 本地设置(stdio - 同一台计算机)

如果 MCP 客户端与显示器位于同一台计算机上,请使用此设置。

在 Cursor 中安装(本地)

前往:Settings → Cursor Settings → MCP → Add new global MCP server

安装 MCP 服务

或者将以下配置粘贴到 ~/.cursor/mcp.json 文件中:

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

可选 MQTT 设置:设置 MQTT_ENABLED=true,并将 MQTT_HOST 配置为 MQTT 代理的 IP,以便与自动化平台集成。

在 VS Code 中安装(本地)

在 VS Code 中安装

将以下内容添加到 VS Code MCP 配置文件中:

"mcp": {
  "servers": {
    "ddc-ci-bridge": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
在 Claude Desktop 中安装(本地)

打开 Claude Desktop 开发者设置,并编辑 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
在 Claude Code 中安装(本地)

运行以下命令:

claude mcp add ddc-ci-bridge -- npx -y ddc-ci-control-bridge
在 Windsurf 中安装(本地)

将以下内容添加到 Windsurf MCP 配置文件中:

{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
在 Cline 中安装(本地)

将以下内容添加到 Cline MCP 配置中:

{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
在 Zed 中安装(本地)

将以下内容添加到 Zed 的 settings.json 中:

{
  "context_servers": {
    "DDC/CI Bridge": {
      "source": "custom",
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
在 Roo Code 中安装(本地)

将以下内容添加到 Roo Code MCP 配置中:

{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
在 Augment Code 中安装(本地)

选项 A:使用 UI

  1. 点击汉堡菜单
  2. 选择 Settings
  3. 前往 Tools 部分
  4. 点击 + Add MCP 按钮
  5. 输入命令:npx -y ddc-ci-control-bridge
  6. 名称:DDC/CI Bridge
  7. 点击 Add

选项 B:手动配置

添加到 settings.json:

"augment.advanced": {
  "mcpServers": [
    {
      "name": "ddc-ci-bridge",
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  ]
}
在 JetBrains AI Assistant 中安装(本地)
  1. 前往 Settings → Tools → AI Assistant → Model Context Protocol (MCP)
  2. 点击 + Add
  3. 从下拉菜单中选择 As JSON
  4. 添加以下配置:
{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
  1. 点击 Apply 保存更改
在 Warp 中安装(本地)
  1. 前往 Settings → AI → Manage MCP servers
  2. 点击 + Add 按钮
  3. 粘贴以下配置:
{
  "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. 点击 Save
在 OpenAI Codex 中安装(本地)

添加到 Codex MCP 配置中:

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

[mcp_servers.ddc-ci-bridge.env]
MQTT_ENABLED = "false"

Windows 用户:如果遇到超时错误,请使用完整路径:

[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"
在 LM Studio 中安装(本地)
  1. 前往 Program(右侧)→ Install → Edit mcp.json
  2. 添加以下配置:
{
  "mcpServers": {
    "DDC/CI Bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
  1. 点击 Save
  2. 在右侧面板中切换 MCP 服务的开关
在 Qodo Gen 中安装(本地)
  1. 在 VSCode 或 IntelliJ 中打开 Qodo Gen 聊天面板
  2. 点击 Connect more tools
  3. 点击 + Add new MCP
  4. 添加以下配置:
{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
在 Perplexity Desktop 中安装(本地)
  1. 前往 Perplexity → Settings
  2. 选择 Connectors
  3. 点击 Add Connector
  4. 选择 Advanced
  5. 输入服务名称:DDC/CI Bridge
  6. 粘贴以下 JSON:
{
  "command": "npx",
  "args": ["-y", "ddc-ci-control-bridge"],
  "env": {
    "FASTMCP_API_KEY": "your-api-key-here",
    "MQTT_ENABLED": "false"
  }
}
  1. 点击 Save
在 Kiro 中安装(本地)
  1. 前往 Kiro → MCP Servers
  2. 点击 + Add 按钮
  3. 粘贴以下配置:
{
  "mcpServers": {
    "DDC/CI Bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
  1. 点击 Save
在 BoltAI 中安装(本地)
  1. 打开 Settings → Plugins
  2. 输入以下 JSON:
{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
  1. 保存,并在需要时重启
在 Zencoder 中安装(本地)
  1. 前往 Zencoder 菜单 (...)
  2. 选择 Agent tools
  3. 点击 Add custom MCP
  4. 添加名称和服务配置:
{
  "command": "npx",
  "args": ["-y", "ddc-ci-control-bridge"],
  "env": {
    "FASTMCP_API_KEY": "your-api-key-here",
    "MQTT_ENABLED": "false"
  }
}
  1. 点击 Install
在 Amazon Q Developer CLI 中安装(本地)

添加到 Amazon Q 配置中:

{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "npx",
      "args": ["-y", "ddc-ci-control-bridge"],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
使用 Bun 或 Deno

Bun:

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

Deno:

{
  "mcpServers": {
    "ddc-ci-bridge": {
      "command": "deno",
      "args": [
        "run",
        "--allow-env",
        "--allow-net",
        "npm:ddc-ci-control-bridge"
      ],
      "env": {
        "MQTT_ENABLED": "false"
      }
    }
  }
}
Windows 专用配置

在 Windows 上,请使用以下格式(以 Cline 为例):

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

🌐 远程设置(HTTP - 不同机器)

如果你想从网络中的另一台机器访问显示器控件,请使用此设置。

第 1 步:在连接显示器的机器上设置 MCP 服务
  1. 在连接显示器的机器上创建 .env 文件:
DDC_API_KEY=your-secure-random-api-key-here
MCP_TRANSPORT=sse
MCP_PORT=8000

# Optional: Enable MQTT for automation platforms
MQTT_ENABLED=false
MQTT_HOST=localhost
MQTT_PORT=1883
  1. 启动服务:
npm install -g ddc-ci-control-bridge
ddc-ci-bridge

或使用 npx:

npx ddc-ci-control-bridge
  1. 服务将显示:
🔌 MCP Server: http://192.168.1.100:8000
   Transport: sse
   API Key: your-api...

记下 IP 地址和端口,以便配置客户端。

第 2 步:配置 MCP 客户端(远程连接)

Cursor:

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

VS Code:

"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:

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

Windsurf:

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

**注意:**将 192.168.1.100 替换为连接显示器的机器的实际 IP 地址,并使用在服务的 .env 文件中配置的同一个 API 密钥。


配置
  1. 创建 .env 文件:
cp .env.example .env
  1. 编辑 .env 并进行配置:
DDC_API_KEY=your-secret-api-key-here

# Enable MQTT for automation platforms (optional)
MQTT_ENABLED=false
MQTT_HOST=localhost
MQTT_PORT=1883

**启用 MQTT:**设置 MQTT_ENABLED=true,并将 MQTT_HOST 更改为 MQTT 代理的 IP 地址(例如 Home Assistant 的 IP 地址)。

  1. 启动服务:
npm run dev

MQTT 集成

此服务充当 MQTT 客户端,可连接到任何 MQTT 代理。

支持的平台
  • Home Assistant:通过 MQTT Discovery Protocol 自动发现 → 查看 Home Assistant 指南
  • openHAB:通过 MQTT 绑定手动配置 thing
  • Node-RED:订阅主题以创建自定义流程
  • Domoticz:MQTT 集成
  • 通用 MQTT:任何支持 MQTT 发布/订阅的平台
MQTT 主题
ddc-monitor/{index}/brightness/set|get
ddc-monitor/{index}/contrast/set|get
ddc-monitor/{index}/vcp/{code}/set|get
ddc-monitor/{index}/power/set
ddc-monitor/{index}/state
ddc-monitor/bridge/status

MCP 资源

  • monitor://list - 列出所有可用的显示器
  • monitor://{index}/capabilities - 完整的 VCP 代码扫描结果
  • monitor://{index}/current-values - 所有受支持代码的当前值
  • monitor://{index}/info - 显示器元数据

MCP 工具

  • get_vcp_code - 读取特定 VCP 代码的值
  • set_vcp_code - 为 VCP 代码写入值
  • get_brightness - 获取显示器亮度(0-100)
  • set_brightness - 设置显示器亮度(0-100)
  • refresh_monitors - 重新扫描显示器和 VCP 功能

开发

构建
npm run build
构建可执行文件
npm run build:executables

这会在 dist/bin/ 中为 Windows、Linux 和 macOS 创建独立的可执行文件。

在开发模式下运行
npm run dev

要求

  • DDC/CI 支持:显示器必须支持 DDC/CI(大多数现代显示器都支持)
  • 启用 DDC/CI:在显示器的 OSD 设置中启用 DDC/CI
  • 权限:在 Linux 上,你可能需要将用户添加到 i2c 组
Linux 设置
sudo usermod -a -G i2c $USER
sudo modprobe i2c-dev

注销并重新登录,使组更改生效。

环境变量

请参阅 .env.example,了解所有可用的配置选项。

主要变量:

  • DDC_API_KEY - 用于服务身份验证的 API 密钥(必需)
  • MCP_TRANSPORT - 传输类型:sse 或 stdio(默认值:sse)
  • MCP_PORT - SSE 传输的 HTTP 端口(默认值:8000)
  • MQTT_ENABLED - 启用 MQTT 客户端(默认值:false)
  • MQTT_HOST - MQTT 代理 IP 地址/主机名(默认值:localhost)
  • MQTT_PORT - MQTT 代理端口(默认值:1883)
  • MQTT_USERNAME - 自动配置为 ddc-mcp
  • MQTT_PASSWORD - 根据 DDC_API_KEY 自动配置

架构

┌─────────────────────────────────────────┐
│       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    │
└──────────────┘  └──────────────┘  └──────────────┘

许可证

MIT

文档

贡献

欢迎贡献!请提交 issue 或 PR。

故障排除

未找到显示器
  • 确保已在显示器的 OSD 设置中启用 DDC/CI
  • 在 Linux 上,检查 i2c 设备是否可用:ls -l /dev/i2c-*
  • 尝试使用更高权限运行(不建议用于生产环境)
MQTT 连接失败
  • 确认 MQTT 代理正在运行
  • 检查凭据是否与服务输出相匹配
  • 确保防火墙允许 MQTT 端口(1883)
命令无法正常工作
  • 检查服务日志中是否有错误
  • 确认显示器支持该 VCP 代码
  • 某些代码可能为只读
  • 尝试重启服务和 Home Assistant

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。