DVB-I MCP服务器
A. 模型上下文协议(MCP) 提供对DVB-I服务发现和节目元数据端点访问的服务器,如中所定义 ETSI TS 103 770.
该服务器使AI助手和基于LLM的应用程序能够通过标准化的MCP接口与DVB-I广播服务交互,检索电视时间表、节目信息和内容元数据。
特性
- DVB-I服务发现:获取并解析DVB-I服务列表
- 日程信息:查询当前/下一个节目和时间表范围
- 程序元数据:使用CRID检索详细的程序信息
- 内容组织:访问框集、类别和分组内容
- 相关内容:查找相关剧集和分页内容
- MCP协议支持:完全支持MCP流式HTTP和传统SSE传输
快速开始
使用Docker(推荐)
# Pull and run the latest image
docker run -p 3001:3001 ghcr.io/ccma-enginyeria/dvb-i-mcp-server:latest
# Or use Docker Compose
docker compose up使用npm
# Install dependencies
npm install
# Start the server
npm start
# Or for development with auto-reload
npm run dev服务器将在端口上启动 3001 默认情况下。
API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp | POST | MCP可流式HTTP端点(推荐) |
/sse | GET | 旧MCP客户端的传统SSE传输 |
/messages | POST | SSE传输的传统消息端点 |
/health | GET | 健康检查端点 |
MCP工具
服务器为DVB-I操作提供以下MCP工具:
服务发现
| 工具 | 说明 |
|---|---|
fetch-dvb-i-service-list | 检索完整的DVB-I服务列表 |
get-current-datetime | 返回日程查询的服务器时间 |
日程信息
| 工具 | 说明 |
|---|---|
fetch-now-and-next-programs-for-channel | 获取服务的当前程序和下一个程序 |
fetch-schedule-for-date-range | 获取某个时间范围内的计划 |
项目信息
| 工具 | 说明 |
|---|---|
fetch-program-detailed-information | 通过CRID检索详细的程序元数据 |
fetch-related-episodes-for-program | 获取节目的相关剧集 |
fetch-paginated-content | 处理大型内容集的分页 |
内容组织(框集)
| 工具 | 说明 |
|---|---|
fetch-content-categories-for-service | 获取可用内容类别 |
fetch-groups-for-category | 获取类别中的组 |
fetch-programs-for-category-group | 获取类别组中的程序 |
配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 3001 | 服务器端口 |
使用示例
与MCP检查员一起
- 启动服务器:
npm start - 打开 MCP检查员
- 连接到
http://localhost:3001/mcp - 浏览和测试可用工具
使用克劳德桌面
添加到您的Claude Desktop配置(claude_desktop_config.json):
{
"mcpServers": {
"dvb-i": {
"url": "http://localhost:3001/mcp"
}
}
}示例:获取服务列表
使用DVB-I参考服务列表:
Tool: fetch-dvb-i-service-list
Parameters:
serviceList: "https://dvb-i-reference.dvb.org/client/backend/servicelist.php?list=example.xml"示例:获取当前程序
Tool: fetch-now-and-next-programs-for-channel
Parameters:
ScheduleInfoEndpoint: "https://example.com/schedule"
ContentGuideServiceRef: "service_id_from_servicelist"DVB-I规范参考
此实现遵循DVB-I规范:
- ETSI TS 103 770:DVB-I服务发现和节目元数据
- ETSI TS 102 323:TV Anytime元数据(TVA)
- ETSI EN 102 809 标准:HbbTV应用信息表(AITX)
DVB-I端点已实现
| DVB-I接口 | 章节 | 实现 |
|---|---|---|
| 服务列表发现 | 6.2 | fetch-dvb-i-service-list |
| 日程信息 | 6.3 | fetch-now-and-next-programs-for-channel, fetch-schedule-for-date-range |
| 项目信息 | 6.4 | fetch-program-detailed-information |
| 更多剧集 | 6.5 | fetch-related-episodes-for-program, fetch-paginated-content |
| 集团信息 | 6.7 | fetch-content-categories-for-service, fetch-groups-for-category, fetch-programs-for-category-group |
发展
项目结构
dvb-i-mcp-server/
├── dvb-i/ # DVB-I MCP tool implementations
│ ├── server.ts # MCP server factory
│ ├── service-list-tools.ts # Service list tools
│ ├── schedule-tools.ts # Schedule query tools
│ ├── program-detail-tools.ts
│ ├── more-episodes-tools.ts
│ ├── group-info-tools.ts # Box Sets / categories tools
│ └── aitx-tools.ts # Application Information Table parser
├── dvb-i-endpoints.ts # Express router with MCP transports
├── xml-utils.ts # XML parsing utilities
├── index.ts # Server entry point
├── package.json
├── tsconfig.json
├── Dockerfile
└── docker-compose.yml建筑
# Compile TypeScript
npm run build
# Run compiled version
npm run serveDocker构建
# Build image locally
docker build -t dvb-i-mcp-server .
# Run container
docker run -p 3001:3001 dvb-i-mcp-server贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
