显示控制代理

一个用于控制和查询整个系统的MCP代理,通过API提供显示任务排队、覆盖层生成、流状态查询和故障检查功能,以便LLM客户端进行编排。

  • by c0d3rb4b4
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 c0d3rb4b4/home-display-agent

使用说明

家庭显示代理

MCP代理,它公开了控制/查询整个系统的工具:排队显示作业、通过API生成覆盖、查询流状态和检查故障,因此LLM客户端可以编排一切。

项目结构

home-display-agent/
├── src/
│   ├── __init__.py
│   ├── main.py              # MCP server entry point
│   ├── config.py            # Configuration management
│   └── tools/
│       ├── __init__.py
│       ├── audio_id.py      # Audio identification tools
│       ├── image_opt.py     # Image optimization tools
│       ├── overlay.py       # Overlay generation tools
│       ├── dispatcher.py    # Job dispatcher tools
│       └── monitor.py       # Monitoring tools
├── config/
│   └── default.env          # Default configuration
├── deploy/
│   ├── deploy.sh            # Deployment script
│   ├── stop.sh              # Stop services
│   └── logs.sh              # View logs
├── Dockerfile
├── docker-compose.yml
└── requirements.txt

MCP服务器配置

将此配置添加到您的MCP客户端(例如,Claude Desktop):

使用Docker

{
  "mcpServers": {
    "home-display-agent": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--network", "home-display-agent_home-display-network",
        "-e", "AUDIO_ID_URL=http://audio-id:8000",
        "-e", "IMAGE_OPT_URL=http://image-opt:8000",
        "-e", "OVERLAY_URL=http://overlay:8000",
        "-e", "DISPATCHER_URL=http://dispatcher:8000",
        "-e", "MONITOR_URL=http://monitor:8000",
        "home-display-agent"
      ]
    }
  }
}

直接使用Python

{
  "mcpServers": {
    "home-display-agent": {
      "command": "python",
      "args": ["-m", "src.main"],
      "cwd": "/path/to/home-display-agent",
      "env": {
        "AUDIO_ID_URL": "http://localhost:8001",
        "IMAGE_OPT_URL": "http://localhost:8002",
        "OVERLAY_URL": "http://localhost:8003",
        "DISPATCHER_URL": "http://localhost:8004",
        "MONITOR_URL": "http://localhost:8005"
      }
    }
  }
}

可用工具

音频识别

  • audio_identify -从文件或流中识别音频内容
  • audio_status -获取音频识别作业的状态

图像优化

  • image_optimize -优化图像的显示(调整大小、格式、质量)
  • image_info -获取图像的元数据和信息

叠加生成

  • overlay_create -使用文本和图形创建叠加图像
  • overlay_list_templates -列出可用的叠加模板
  • overlay_preview -生成叠加的预览

调度员

  • dispatcher_enqueue -将显示作业排队处理
  • dispatcher_queue_status -获取当前队列状态
  • dispatcher_job_status -获取特定作业的状态
  • dispatcher_cancel -取消挂起或正在运行的作业

监视器

  • monitor_health -检查所有服务的健康状况
  • monitor_stream_status -获取当前流/显示状态
  • monitor_failures -获取最近的失败和错误
  • monitor_metrics -获取系统指标和统计数据

Docker编写服务

这 docker-compose.yml 包括:

  • 家庭显示代理:MCP服务器
  • rabbitmq:带管理UI的RabbitMQ 3(端口5672、15672)
  • 桑巴:用于媒体存储的Samba文件服务器(端口139、445)

部署

快速开始

# Clone the repository
git clone https://github.com/c0d3rb4b4/home-display-agent.git
cd home-display-agent

# Build and start services
docker compose build
docker compose up -d

# View logs
docker compose logs -f

使用部署脚本

# Deploy
./deploy/deploy.sh

# View logs
./deploy/logs.sh

# Stop services
./deploy/stop.sh

GitHub操作工作流

该存储库包括GitHub Actions工作流(.github/workflows/deploy.yml)它自动构建并部署到推送 main 使用自托管运行器进行分支。

配置

配置是通过环境变量完成的。看 config/default.env 有关可用选项:

变量 默认值 描述
AUDIO_ID_URL http://audio-id:8000 音频识别服务URL
IMAGE_OPT_URL http://image-opt:8000 图像优化服务URL
OVERLAY_URL http://overlay:8000 覆盖生成服务URL
DISPATCHER_URL http://dispatcher:8000 调度程序服务URL
MONITOR_URL http://monitor:8000 监视服务URL
RABBITMQ_HOST rabbitmq RabbitMQ主机
RABBITMQ_PORT 5672 RabbitMQ端口
RABBITMQ_USER guest RabbitMQ用户名
RABBITMQ_PASSWORD guest RabbitMQ密码
SAMBA_HOST samba Samba服务器主机
SAMBA_SHARE media Samba共享名称
LOG_LEVEL INFO 日志记录级别

发展

需求

  • Python 3.12+
  • Docker和Docker Compose

地方发展

# Install dependencies
pip install -r requirements.txt

# Run the MCP server locally
python -m src.main

许可证

麻省理工学院