🚀 百度数字人MCP服务器
百度智能云曦灵数字人开放平台现已全面适配MCP协议,欢迎创作者加入体验。曦灵数字人提供的MCP服务器包含13个符合MCP协议标准的API接口,涵盖基础视频生成、高级视频生成、音色克隆等功能。依托MCP Python SDK开发,任何支持MCP协议的代理助手(如Claude、Cursor、Cline和千帆AppBuilder)都能快速接入。

中文 | English
🚀 快速开始
1. 领取试用额度
2. 获取API密钥和密钥
- 前往应用管理配置需要使用的组件。
- 创建完成后,即可获取API Key (AppID) 和密钥 (AppKey)。
3. MCP配置
前提条件
- Python 3.12 或更高版本
- 曦灵开放平台的API密钥和密钥
你可以使用Python接入百度曦灵数字人MCP服务器,建议使用uv。
源码接入
如果你想自定义曦灵数字人的功能,可以使用源码接入:
- 安装UV
参考uv安装指南,确保命令行可以执行
uvx
命令,或者通过路径找到已安装的 uvx
工具。
- 将代码检出到本地计算机
- 使用支持MCP的代理助手添加MCP配置
{
"mcpServers": {
"DH-STDIO": {
"timeout": 60,
"type": "stdio",
"command": "uvx",
"args": [
"${path/to/dh-mcp-server}"
],
"env": {
"DH_API_AK": "${API Key}",
"DH_API_SK": "${Secret Key}"
}
}
}
- 将
${path/to/dh-mcp-server}
替换为你实际的本地路径。
- 将
${API Key}
和 ${Secret Key}
替换为你实际的“API密钥”和“密钥”。
Python包插件
我们已在pypi上发布了百度曦灵MCP服务器:“mcp-server-baidu-digitalhuman”,你可以使用任何Python包管理工具获取它。
- 使用UV挂载
- 使用pip安装
pip install mcp-server-baidu-digitalhuman
- 使用支持MCP的代理助手添加MCP配置
{
"mcpServers": {
"DH-STDIO": {
"timeout": 60,
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-baidu-digitalhuman"
],
"env": {
"DH_API_AK": "${API Key}",
"DH_API_SK": "${Secret Key}"
}
}
}
}
4. 使用声明
在使用上述工具之前,请阅读曦灵数字人自定义组件克隆协议。使用上述工具即表示你同意该协议。
✨ 主要特性
我们提供了多种工具,以满足不同场景的需求。它允许你在大模型中快速集成数字人服务,轻松构建数字人应用。
如果你对数字人有更多期望,想更深入地集成数字人服务,请访问百度智能云曦灵数字人开放平台与我们联系。MCP还将逐步开放更多功能,敬请期待。
功能 |
功能描述 |
包含工具 |
2D少样本数字人 |
根据上传的真人录制视频生成数字肖像,仅可用于基础视频制作,数字人使用通用唇形驱动。 |
• generateLite2dGeneralVideo • getLite2dGeneralStatus |
数字人视频合成 |
根据选定的数字肖像和音色生成数字人视频。 |
• generateDhVideo • getDhVideoStatus |
123数字人视频 |
提供一段10秒至4分钟说“123”的直播视频,无需生成肖像即可直接制作相应的数字人视频。 |
• generateDh123Video • getDh123VideoStatus |
语音合成 |
根据提供的文本内容和选定的音色,无需生成视频,即可生成相应的音频。 |
• generateText2Audio • getText2AudioStatus |
文件上传 |
平台支持上传音频和视频文件,用于后续的声音克隆、数字人制作、123数字人视频制作等。 |
• uploadFiles |
语音查询 |
查询可用的系统语音。 |
• getVoices |
形象查询 |
查询可用的形象。 |
• getFigures |
声音克隆 |
根据上传的音频生成音色,可用于语音合成和视频制作。 |
• generateVoiceClone • getVoiceCloneStatus |
💻 使用示例
2D少样本数字人
- 功能描述:根据上传的真人录制视频生成数字肖像,仅可用于基础视频制作,数字人使用通用唇形驱动(透明背景的webm视频)。
- 示例提示词:
使用文件ID为xxx的视频文件生成一个数字人,名为“张三”,是一个男孩的形象。
查看ID为xxx的数字人是否生成成功。
我可以使用哪些肖像?
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| generateLite2dGeneralVideo | 根据上传的真人录制视频生成数字肖像,仅可用于基础视频制作,数字人使用通用唇形驱动。 | • name:生成的数字肖像名称,长度不超过50
• gender:数字人的性别
• keepBackground:是否保留视频背景,true为保留,false为移除,默认值为false
• templateVideoId:用于生成数字肖像的视频文件ID | • figureId:根据上传的真人录制视频生成的数字肖像ID |
| getLite2dGeneralStatus | • 查询数字肖像的生成进度
• 也可用于查询系统可用的2D肖像。 | • figureId:指定肖像ID查询,若为空,则查询账户下的所有肖像
• systemFigure:查询平台的公共肖像,空:查询所有,true:返回平台的公共肖像,false:返回自定义肖像
• trainSuccess:是否查询训练完成且可用的肖像状态(空:不筛选,true:仅返回可用肖像(平台公共肖像和训练成功状态的自定义肖像),false:仅返回排队中、训练中或训练失败的自定义肖像)
• pageNo:页码,默认值为1
• pageSize:每页大小,默认值为10 | • figureId:根据上传的真人录制视频生成的数字肖像ID
• name:生成的数字肖像名称,长度不超过50
• gender:数字人的性别
• keepBackground:是否保留视频背景,true为保留,false为移除,默认值为false
• status:状态(LINE_UP(排队中)、GENERATING(生成中)、SUCCESS(成功)、FAILED(失败))
• failedCode:失败错误码
• failedMessage:制作失败的原因 |
数字人视频合成
- 功能描述:根据选定的数字肖像和音色生成数字人视频。
- 示例提示词:
使用数字肖像ID为xxx的形象和音色ID为yyy的声音,视频内容为“大家好,我是数字人播报的内容”,使用横屏全身的相机位置,使用“https://digital-human-material.bj.bcebos.com/-%5BLjava.lang.String%3B%4046f6cc1e.png”的视频背景,开启自动添加动作,开启字幕,生成一个1080P的数字人视频。
查看任务ID为xxx的数字人视频的生成进度。
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| generateDhVideo | 根据选定的数字肖像和音色生成数字人视频。 | • figureId:数字肖像ID
• driveType:驱动数字人的数据类型,支持文本驱动或音频驱动
• text:如果驱动类型为文本驱动,所需的视频内容长度不超过20000
• person:当驱动类型为文本驱动时,所需的音色ID
• inputAudioUrl:当驱动类型为音频驱动时,所需的音频链接URL
• width:输出视频分辨率的宽度
• hight:输出视频分辨率的高度
• cameraId:系统肖像的相机设置,0:横屏半身,1:竖屏半身,2:横屏全身,3:竖屏全身
• enabled:是否启用字幕,true为启用字幕,默认false为不启用。
• backgroundImageUrl:背景图像的URL
• autoAnimoji:系统肖像自动添加动作,true为自动添加,默认值为false | • taskId:当前视频合成任务的ID |
| getDhVideoStatus | 查询数字人视频合成的进度。 | • taskId:当前视频合成任务的ID | • taskId:当前视频合成任务的ID
• status:SUBMIT(提交合成)、GENERATING(合成中)、SUCCESS(合成成功)、FAILED(合成失败)
• failedCode:错误码
• failedMessage:制作失败的原因
• videoUrl:任务ID对应的合成成功的视频文件地址,将保存7天 |
123数字人视频合成
- 功能描述:提供一段10秒至4分钟说“123”的直播视频,无需生成肖像即可直接制作相应的数字人视频。
- 示例提示词:
使用文件ID为xxx的视频文件和音色ID为yyy的声音,视频内容为“大家好,我是数字人播报的内容”,生成一个数字人视频。
视频地址为https://open-api-test.bj.bcebos.com/ae870923-2a3b-4d5e-b6a2-e44b4025647220250417_163529_trim.mp4,音色为yyy,视频内容为“大家好,我是数字人播报的内容”,生成一个数字人视频。
查看任务ID为xxx的123数字人视频的生成进度。
你可以查看网站上的指南。
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| generateDh123Video | 根据真人录制的视频和选定的音色,无需生成肖像即可直接生成数字人视频。 | • templateVideoId:用于生成数字人视频的视频文件ID
• driveType:驱动数字人的数据类型,支持文本驱动或音频驱动
• text:如果驱动类型为文本驱动,所需的视频内容必须填写,长度不能超过20000
• person:如果驱动类型为文本驱动,所需的音色ID
• inputAudioUrl:如果驱动类型为音频驱动,所需的音频链接URL | • taskId:当前视频合成任务的ID |
| getDh123VideoStatus | 查询123数字人视频合成的进度。 | • taskId:当前视频合成任务的ID | • taskId:当前视频合成任务的ID
• status:状态:SUBMIT(提交合成)、RATING(合成中)、SUCCESS(合成成功)、FAILED
• failedCode:错误码
• failedMessage:制作失败的原因
• videoUrl:任务ID对应的合成成功的视频文件地址,将保存7天 |
语音合成
- 功能描述:根据提供的文本内容和选定的音色,无需生成视频,即可生成相应的音频。
- 示例提示词:
使用音色ID为xxx的声音生成音频,内容为“大家好,我是数字人播报的内容”。
查看任务ID为xxx的语音合成是否完成。
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| generateText2Audio | 根据提供的文本内容和选定的音色,无需生成视频,即可生成相应的音频。 | • text:所需的文本内容,长度不超过2000
• person:所需的音色ID | • taskId:当前音频合成的任务ID |
| getText2AudioStatus | 查询音频合成的进度。 | • taskId:当前视频合成任务的ID | • status:SUBMIT、GENERATING、SUCCESS、FAILED
• failedCode:失败代码
• failedMessage:制作失败的原因
• audioUrl:任务ID对应的合成成功的音频文件地址,将保存7天 |
文件上传
- 功能描述:平台支持上传音频和视频文件,用于后续的声音克隆、数字人制作、123数字人视频制作等。
- 示例提示词:
上传C:/Users/username/Desktop/test.mp3文件用于声音克隆。
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| uploadFiles | 根据服务类型上传所需的文件。 | • file:要上传的文件
• providerType:使用此文件的服务类型,目前仅限于三种服务类型:“2D少样本数字人制作”、“声音克隆”和“123数字人视频制作”。
• sourceFileName:上传的文件名,必须填写正确的文件名和后缀,例如:test.mp3。 | • fileId:文件ID
• fileName:上传的文件名 |
语音查询
- 功能描述:查询可用的系统语音。
- 示例提示词:
我之前克隆过哪些声音?
我想使用一位二十多岁温柔女士的声音。
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| getVoices | 查询可用的语音ID。 | • isSystem:“true”查询系统音色ID,“false”查询克隆音色ID,不传递任何值,则查询可用的音色ID | • perId:音色ID
• name:音色名称
• describe:克隆音色的描述,不超过100
• gender:性别
• systemProvided:是否为系统音色 |
形象查询
- 功能描述:查询可用的2D数字肖像ID。
- 示例提示词:
我之前生成过哪些肖像?
有哪些可用的肖像?
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| getFigures | 查询可用的形象。 | • isSystem:“true”查询系统形象,“false”查询生成的形象,不传递任何值,则查询所有可用的形象 | • figureId:2D形象ID
• name:2D形象名称
• gender:性别
• systemProvided:是否为系统形象 |
声音克隆
- 功能描述:根据上传的音频生成音色,可用于语音合成和视频制作。
- 示例提示词:
使用文件ID为xxx的音频文件克隆声音。名为“张三”,是一位三十多岁中年男性的音色,我将使用文本“这是我克隆的声音”进行试听。
查看ID为xxx的声音是否克隆成功。
- 工具详情:
| 工具名称 | 工具描述 | 输入参数 | 输出内容 |
| --- | --- | --- | --- |
| generateVoiceClone | 根据上传的音频生成声音,可用于语音合成和视频制作。 | • name:克隆声音的名称,长度不超过50
• gender:音色的性别
• describe:克隆声音的描述,不超过100
• uploadAudioId:用于克隆声音的音频文件ID
• example:用于试听的文本,长度不能超过100 | • perId:克隆声音的音色ID |
| getVoiceCloneStatus | 根据任务的语音说话者ID查询语音克隆任务的当前状态。 | • isSuccess:是否仅查询克隆成功的任务(true:仅查询成功的任务,false:查询所有克隆任务)
• perId:查询指定音色ID的任务 | • perId:克隆声音的音色ID
• name:音色名称
• describe:克隆声音的描述
• exampleText:用于试听的文本
• examplAudioUrl:使用试听文本合成的音频文件链接
• status:当前任务的状态,PREPARING、CLONING、SUCCESS、FAIL
• reason:如果克隆失败,此处描述失败的原因
• gender:被克隆声音的音色性别 |
🔧 技术细节
开发
要在本地使用MCP Inspector运行服务器进行测试和调试:
npx @modelcontextprotocol/inspector uvx ${path/to/dh-mcp-server}
这将以开发模式启动服务器,并允许你使用MCP Inspector测试可用的工具和功能。
测试
- 环境配置完成后,MCP代理将自动获取所有可用工具的列表。
- 在对话框中输入提示:“查询所有可用的数字人语音列表”。
📄 许可证
本项目采用MIT许可证 - 详情请参阅LICENSE文件。
💬 讨论与反馈
如果您有任何问题或建议,请随时与我们联系。
您可以通过以下方式与我们联系: