家庭显示代理
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.txtMCP服务器配置
将此配置添加到您的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.shGitHub操作工作流
该存储库包括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许可证
麻省理工学院
