media-agent-mcp 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,495 @@
1
+ Metadata-Version: 2.4
2
+ Name: media-agent-mcp
3
+ Version: 0.1.0
4
+ Summary: A Model Context Protocol server for media processing with AI tools
5
+ Author-email: Media Agent Team <team@mediaagent.com>
6
+ Keywords: ai,image,mcp,media,processing,video
7
+ Classifier: Development Status :: 3 - Alpha
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Requires-Python: >=3.12
13
+ Requires-Dist: httpx>=0.28.1
14
+ Requires-Dist: mcp[cli]>=1.12.2
15
+ Requires-Dist: numpy>=1.24.0
16
+ Requires-Dist: opencv-python>=4.12.0.88
17
+ Requires-Dist: pillow>=11.3.0
18
+ Requires-Dist: python-dotenv>=1.0.0
19
+ Requires-Dist: requests>=2.32.4
20
+ Requires-Dist: tos>=2.7.1
21
+ Requires-Dist: uvicorn>=0.32.1
22
+ Requires-Dist: volcengine-python-sdk>=1.0.0
23
+ Requires-Dist: volcengine>=1.0.194
24
+ Description-Content-Type: text/markdown
25
+
26
+ # Media Agent MCP
27
+
28
+ 一个基于 Model Context Protocol (MCP) 的媒体处理服务器,提供强大的AI驱动的媒体处理工具。
29
+
30
+ ## 🚀 功能特性
31
+
32
+ ### 核心工具 (9个)
33
+
34
+ 1. **TOS存储** - 将内容保存为URL
35
+ 2. **视频拼接** - 拼接多个视频文件
36
+ 3. **视频帧提取** - 提取视频的最后一帧
37
+ 4. **Seedream图像生成** - 使用AI模型生成图像
38
+ 5. **Seedance视频生成** - 使用AI模型生成视频(支持lite和pro版本)
39
+ 6. **Seededit角色维持** - 保持主要角色的一致性
40
+ 7. **Seed1.6视觉语言模型** - 执行视觉任务工作流
41
+ 8. **图像选择器** - 从多个图像中选择最佳的一个
42
+ 9. **视频选择器** - 从多个视频中选择最佳的一个
43
+
44
+ ### AI模型支持
45
+
46
+ - **Seedream**: 高质量图像生成
47
+ - **Seedance**: 视频生成(支持文本生成视频、首帧生成视频、首尾帧生成视频)
48
+ - **Seededit**: 图像编辑和角色一致性维护
49
+ - **Seed1.6**: 多模态视觉语言理解
50
+
51
+ ## 📋 系统要求
52
+
53
+ - Python >= 3.12
54
+ - 支持的操作系统:macOS, Linux, Windows
55
+
56
+ ## 🛠️ 安装
57
+
58
+ ### 方法一:使用 UVX(推荐)
59
+
60
+ ```bash
61
+ uvx media-agent-mcp
62
+ ```
63
+
64
+ ### 方法二:本地开发安装
65
+
66
+ #### 1. 克隆仓库
67
+
68
+ ```bash
69
+ git clone <repository-url>
70
+ cd media-agent-mcp
71
+ ```
72
+
73
+ #### 2. 安装依赖
74
+
75
+ 使用 uv(推荐):
76
+
77
+ ```bash
78
+ uv sync
79
+ ```
80
+
81
+ 或使用 pip:
82
+
83
+ ```bash
84
+ pip install -e .
85
+ ```
86
+
87
+ #### 3. 配置环境变量
88
+
89
+ 复制环境变量模板并填写配置:
90
+
91
+ ```bash
92
+ cp .env.template .env
93
+ ```
94
+
95
+ 编辑 `.env` 文件,填写以下必要配置:
96
+
97
+ ```env
98
+ # TOS存储配置
99
+ TOS_ACCESS_KEY=your_tos_access_key_here
100
+ TOS_SECRET_KEY=your_tos_secret_key_here
101
+ TOS_BUCKET_NAME=your_bucket_name_here
102
+ TOS_ENDPOINT=tos-ap-southeast-1.bytepluses.com
103
+ TOS_REGION=ap-southeast-1
104
+
105
+ # 火山引擎视觉智能SDK配置
106
+ VOLC_ACCESS_KEY=your_volcengine_access_key_here
107
+ VOLC_SECRET_KEY=your_volcengine_secret_key_here
108
+
109
+ # BytePlus ModelArk API配置
110
+ ARK_API_KEY=your_ark_api_key_here
111
+ ARK_BASE_URL=https://ark.ap-southeast.bytepluses.com
112
+
113
+ # AI模型端点配置
114
+ SEEDANCE_EP=seedance-1-0-lite
115
+ SEEDREAM_EP=seedream-1-0
116
+ SEEDEDIT_EP=seededit-3-0
117
+ VLM_EP=seed-1-6-chat
118
+ ```
119
+
120
+ ## 🚀 使用方法
121
+
122
+ ### 启动MCP服务器
123
+
124
+ #### 使用 UVX
125
+
126
+ ```bash
127
+ uvx media-agent-mcp
128
+ ```
129
+
130
+ #### 使用 UV(本地开发)
131
+
132
+ ```bash
133
+ uv run media-agent-mcp
134
+ ```
135
+
136
+ #### 使用stdio传输(默认)
137
+
138
+ ```bash
139
+ media-agent-mcp
140
+ ```
141
+
142
+ #### 使用SSE传输
143
+
144
+ ```bash
145
+ media-agent-mcp --transport sse --host 127.0.0.1 --port 8000
146
+ ```
147
+
148
+ #### 直接运行服务器文件
149
+
150
+ ```bash
151
+ cd src
152
+ python -m media_agent_mcp.server
153
+ ```
154
+
155
+ ### 命令行选项
156
+
157
+ ```bash
158
+ media-agent-mcp --help
159
+ ```
160
+
161
+ 可用选项:
162
+ - `--transport`: 传输方式 (sse 或 stdio,默认: stdio)
163
+ - `--host`: SSE传输的主机地址 (默认: 127.0.0.1)
164
+ - `--port`: SSE传输的端口 (默认: 8000)
165
+ - `--version`: 显示版本信息
166
+
167
+ ### 与MCP客户端集成
168
+
169
+ #### Claude Desktop配置
170
+
171
+ 在Claude Desktop的配置文件中添加:
172
+
173
+ ```json
174
+ {
175
+ "mcpServers": {
176
+ "media-agent": {
177
+ "command": "uvx",
178
+ "args": ["media-agent-mcp"]
179
+ }
180
+ }
181
+ }
182
+ ```
183
+
184
+ #### VS Code MCP扩展配置
185
+
186
+ ```json
187
+ {
188
+ "mcp.servers": {
189
+ "media-agent": {
190
+ "command": "uvx",
191
+ "args": ["media-agent-mcp"]
192
+ }
193
+ }
194
+ }
195
+ ```
196
+
197
+ ## 🔧 API工具详细说明
198
+
199
+ ### 1. 视频拼接工具
200
+
201
+ ```python
202
+ video_concat_tool(video_urls: list[str]) -> str
203
+ ```
204
+
205
+ 拼接多个视频URL并上传到TOS。
206
+
207
+ **参数:**
208
+ - `video_urls`: 要按顺序拼接的视频URL列表
209
+
210
+ **返回:** JSON字符串,包含状态、数据和消息
211
+
212
+ **示例:**
213
+ ```python
214
+ result = video_concat_tool([
215
+ "https://example.com/video1.mp4",
216
+ "https://example.com/video2.mp4"
217
+ ])
218
+ ```
219
+
220
+ ### 2. 视频帧提取工具
221
+
222
+ ```python
223
+ video_last_frame_tool(video_path: str) -> str
224
+ ```
225
+
226
+ 从视频文件中提取最后一帧并上传到TOS。
227
+
228
+ **参数:**
229
+ - `video_path`: 视频文件路径或URL
230
+
231
+ **返回:** JSON字符串,包含状态、数据和消息
232
+
233
+ ### 3. Seedream图像生成工具
234
+
235
+ ```python
236
+ seedream_generate_image_tool(
237
+ prompt: str,
238
+ style: str = "realistic",
239
+ size: str = "1024x1024"
240
+ ) -> str
241
+ ```
242
+
243
+ 使用Seedream AI模型生成图像。
244
+
245
+ **参数:**
246
+ - `prompt`: 图像描述文本
247
+ - `style`: 图像风格(realistic, artistic, cartoon等)
248
+ - `size`: 图像尺寸(如"1024x1024")
249
+
250
+ **示例:**
251
+ ```python
252
+ result = seedream_generate_image_tool(
253
+ prompt="一只可爱的小猫坐在花园里",
254
+ style="realistic",
255
+ size="1024x1024"
256
+ )
257
+ ```
258
+
259
+ ### 4. Seedance视频生成工具
260
+
261
+ ```python
262
+ seedance_generate_video_tool(
263
+ prompt: str = "",
264
+ first_frame_image: str = None,
265
+ last_frame_image: str = None,
266
+ duration: int = 5,
267
+ resolution: str = "720p",
268
+ ratio: str = "16:9"
269
+ ) -> str
270
+ ```
271
+
272
+ 使用Seedance AI模型生成视频。
273
+
274
+ **参数:**
275
+ - `prompt`: 视频描述文本(图像转视频时可选)
276
+ - `first_frame_image`: 首帧图像的URL或base64
277
+ - `last_frame_image`: 尾帧图像的URL或base64(可选)
278
+ - `duration`: 视频时长(5或10秒)
279
+ - `resolution`: 视频分辨率(480p, 720p, 1080p)
280
+ - `ratio`: 宽高比(16:9, 4:3, 1:1, 3:4, 9:16, adaptive等)
281
+
282
+ **示例:**
283
+ ```python
284
+ # 文本生成视频
285
+ result = seedance_generate_video_tool(
286
+ prompt="一只鸟在天空中飞翔",
287
+ duration=5,
288
+ resolution="720p"
289
+ )
290
+
291
+ # 首帧生成视频
292
+ result = seedance_generate_video_tool(
293
+ first_frame_image="https://example.com/first_frame.jpg",
294
+ duration=5
295
+ )
296
+ ```
297
+
298
+ ### 5. 其他工具
299
+
300
+ - **Seededit角色维持工具**: 保持图像中主要角色的一致性
301
+ - **Seed1.6 VLM工具**: 执行视觉语言任务
302
+ - **图像选择器**: 从多个图像中选择最佳的一个
303
+ - **视频选择器**: 从多个视频中选择最佳的一个
304
+ - **TOS保存工具**: 将内容保存到TOS并返回URL
305
+
306
+ ## 📁 项目结构
307
+
308
+ ```
309
+ media-agent-mcp/
310
+ ├── src/
311
+ │ └── media_agent_mcp/
312
+ │ ├── __init__.py
313
+ │ ├── server.py # MCP服务器主文件
314
+ │ ├── ai_models/ # AI模型模块
315
+ │ │ ├── __init__.py
316
+ │ │ ├── seedream.py # 图像生成
317
+ │ │ ├── seedance.py # 视频生成
318
+ │ │ ├── seededit.py # 图像编辑
319
+ │ │ └── seed16.py # 视觉语言模型
320
+ │ ├── video/ # 视频处理模块
321
+ │ │ ├── __init__.py
322
+ │ │ └── processor.py # 视频处理功能
323
+ │ ├── storage/ # 存储模块
324
+ │ │ ├── __init__.py
325
+ │ │ └── tos_client.py # TOS客户端
326
+ │ └── media_selectors/ # 媒体选择器
327
+ │ ├── __init__.py
328
+ │ ├── image_selector.py # 图像选择
329
+ │ └── video_selector.py # 视频选择
330
+ ├── .env.template # 环境变量模板
331
+ ├── .gitignore # Git忽略文件
332
+ ├── pyproject.toml # 项目配置
333
+ ├── uv.lock # 依赖锁定文件
334
+ └── README.md # 项目文档
335
+ ```
336
+
337
+ ## 🔑 API密钥获取
338
+
339
+ ### TOS存储
340
+ 1. 访问 [BytePlus TOS控制台](https://console.byteplus.com/tos)
341
+ 2. 创建存储桶并获取访问密钥
342
+ 3. 记录访问密钥、秘密密钥和存储桶名称
343
+
344
+ ### ModelArk API
345
+ 1. 访问 [BytePlus ModelArk控制台](https://console.byteplus.com/)
346
+ 2. 获取API密钥
347
+ 3. 选择合适的模型端点
348
+
349
+ ### 火山引擎视觉智能
350
+ 1. 访问 [火山引擎控制台](https://console.volcengine.com/)
351
+ 2. 开通视觉智能服务
352
+ 3. 获取访问密钥和秘密密钥
353
+
354
+ ## 🐛 故障排除
355
+
356
+ ### 常见问题
357
+
358
+ 1. **相对导入错误**
359
+ ```
360
+ ImportError: attempted relative import with no known parent package
361
+ ```
362
+ **解决方案**: 使用模块方式运行:
363
+ ```bash
364
+ cd src
365
+ python -m media_agent_mcp.server
366
+ ```
367
+
368
+ 2. **环境变量未设置**
369
+ 确保 `.env` 文件已正确配置所有必要的API密钥。
370
+
371
+ 3. **依赖安装问题**
372
+ ```bash
373
+ pip install --upgrade pip
374
+ pip install -e .
375
+ ```
376
+
377
+ 或使用uv:
378
+ ```bash
379
+ uv sync --reinstall
380
+ ```
381
+
382
+ 4. **TOS上传失败**
383
+ - 检查TOS配置是否正确
384
+ - 确认存储桶权限设置
385
+ - 验证网络连接
386
+
387
+ 5. **AI模型调用失败**
388
+ - 检查API密钥是否有效
389
+ - 确认模型端点配置
390
+ - 查看API配额和限制
391
+
392
+ ## 📝 开发
393
+
394
+ ### 开发环境设置
395
+
396
+ ```bash
397
+ # 克隆仓库
398
+ git clone <repository-url>
399
+ cd media-agent-mcp
400
+
401
+ # 使用uv创建虚拟环境并安装依赖
402
+ uv sync
403
+
404
+ # 激活虚拟环境
405
+ source .venv/bin/activate # Linux/macOS
406
+ # 或
407
+ .venv\Scripts\activate # Windows
408
+ ```
409
+
410
+ ### 运行测试
411
+
412
+ ```bash
413
+ # 运行测试套件
414
+ uv run test_server.py
415
+
416
+ # 运行特定测试
417
+ python -m pytest tests/
418
+ ```
419
+
420
+ ### 构建和发布
421
+
422
+ ```bash
423
+ # 构建包
424
+ uv build
425
+
426
+ # 发布到PyPI
427
+ uv publish
428
+ ```
429
+
430
+ ### 添加新工具
431
+
432
+ 1. 在相应模块中实现功能
433
+ 2. 在 `server.py` 中添加 `@mcp.tool()` 装饰器
434
+ 3. 添加类型注解和文档字符串
435
+ 4. 更新README文档
436
+ 5. 添加测试用例
437
+
438
+ ### 代码规范
439
+
440
+ - 使用类型注解
441
+ - 遵循PEP 8代码风格
442
+ - 添加详细的文档字符串
443
+ - 包含错误处理
444
+ - 返回统一的JSON格式
445
+
446
+ ## 📊 性能优化
447
+
448
+ - 使用异步处理提高并发性能
449
+ - 实现缓存机制减少重复计算
450
+ - 优化文件上传和下载流程
451
+ - 合理设置超时和重试机制
452
+
453
+ ## 🔒 安全考虑
454
+
455
+ - 不要在代码中硬编码API密钥
456
+ - 使用环境变量管理敏感信息
457
+ - 验证输入参数防止注入攻击
458
+ - 限制文件上传大小和类型
459
+ - 定期更新依赖包
460
+
461
+ ## 📄 许可证
462
+
463
+ MIT License
464
+
465
+ ## 🤝 贡献
466
+
467
+ 欢迎提交Issue和Pull Request!
468
+
469
+ ### 贡献流程
470
+
471
+ 1. Fork 仓库
472
+ 2. 创建功能分支
473
+ 3. 提交更改
474
+ 4. 添加测试
475
+ 5. 提交Pull Request
476
+
477
+ ## 📞 支持
478
+
479
+ 如有问题,请:
480
+
481
+ 1. 查看本文档的故障排除部分
482
+ 2. 搜索已有的Issues
483
+ 3. 提交新的Issue
484
+ 4. 联系开发团队
485
+
486
+ ## 📈 版本历史
487
+
488
+ - **v0.1.0** (Alpha) - 初始版本,包含9个核心工具
489
+
490
+ ---
491
+
492
+ **版本**: 0.1.0
493
+ **状态**: Alpha
494
+ **Python要求**: >= 3.12
495
+ **维护者**: Media Agent Team
@@ -0,0 +1,18 @@
1
+ media_agent_mcp/__init__.py,sha256=xOmCIpPlIRJH3RiA-dlBOhKlwyJp51XQRt2eeyU5EtI,255
2
+ media_agent_mcp/server.py,sha256=beN1Zp2gg-VUgXH9tD7Tu5SUMnzXfUU2KT-yp6t66hw,13594
3
+ media_agent_mcp/ai_models/__init__.py,sha256=WN8JDSJbj2-sNwaQg3MDwmm9mvJTC1mqpWliac3sHoc,427
4
+ media_agent_mcp/ai_models/seed16.py,sha256=P3KHNF_SfLryJz6qFP7UUtBfw_28ubdrj2lJkt3WsY8,4989
5
+ media_agent_mcp/ai_models/seedance.py,sha256=2kj1Qqc-_1I-Ub23FMNXR-gpxExhGCEQe2XacBdV3sY,9016
6
+ media_agent_mcp/ai_models/seededit.py,sha256=eLOox-8lZudTYe0CpWyONGHC8D12r7nakhkXIXmE7H4,3245
7
+ media_agent_mcp/ai_models/seedream.py,sha256=91xFVfC6nh_jYfuz0FK6LL2fHreLd-pRQ4mWHpjQlvg,4466
8
+ media_agent_mcp/media_selectors/__init__.py,sha256=eN3wyTPdHTsbW_xDyPXBLDaMA15YuI9qeiy-zeY7ZBQ,260
9
+ media_agent_mcp/media_selectors/image_selector.py,sha256=tcg-yz1lEex3Q-cAh1bzvngwNBz3rM5264TUnZVLLQ8,4573
10
+ media_agent_mcp/media_selectors/video_selector.py,sha256=NwwpZqZeW99aQznlU8vloTNbcn7epXlmYZgxY1gnuaA,6216
11
+ media_agent_mcp/storage/__init__.py,sha256=eio7ZiSeLjCxICSZwZisiR7wKJfXlT2PV7aDEQKBUQQ,215
12
+ media_agent_mcp/storage/tos_client.py,sha256=9c3GPmQe2stvxgZzsWYjVqKzVyvluZqYneCXYj-FQ3M,3174
13
+ media_agent_mcp/video/__init__.py,sha256=4ILnqYaUaYKI4GWOSg2SNZqt10UM1Y-8Q2SVvjoijqY,277
14
+ media_agent_mcp/video/processor.py,sha256=5ABPyj1IoD2xyIiB8dkEx4ZssPTXKHtuoFjy-dmnFks,11866
15
+ media_agent_mcp-0.1.0.dist-info/METADATA,sha256=d7vKEHQDq7owJ_FMKWUcZEPxb2WeQqFNc_ARYl75bPM,10974
16
+ media_agent_mcp-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
+ media_agent_mcp-0.1.0.dist-info/entry_points.txt,sha256=kHB6iLdmnTsqibMZGfsGJzbj_ZU2uJiOfAMA8rYX8bg,64
18
+ media_agent_mcp-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ media-agent-mcp = media_agent_mcp.server:main