Mcp

Mcp

🚀 百度数字人MCP服务器

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

python pypi

中文 | English

🚀 快速开始

1. 领取试用额度

2. 获取API密钥和密钥

  • 前往应用管理配置需要使用的组件。
  • 创建完成后,即可获取API Key (AppID) 和密钥 (AppKey)。

3. MCP配置

前提条件

  • Python 3.12 或更高版本
  • 曦灵开放平台的API密钥和密钥

你可以使用Python接入百度曦灵数字人MCP服务器,建议使用uv源码接入 如果你想自定义曦灵数字人的功能,可以使用源码接入:

  1. 安装UV 参考uv安装指南,确保命令行可以执行 uvx 命令,或者通过路径找到已安装的 uvx 工具。
  2. 将代码检出到本地计算机
  3. 使用支持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包管理工具获取它。

  1. 使用UV挂载
  2. 使用pip安装 pip install mcp-server-baidu-digitalhuman
  3. 使用支持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测试可用的工具和功能。

测试

  1. 环境配置完成后,MCP代理将自动获取所有可用工具的列表。
  2. 在对话框中输入提示:“查询所有可用的数字人语音列表”。

📄 许可证

本项目采用MIT许可证 - 详情请参阅LICENSE文件。

💬 讨论与反馈

如果您有任何问题或建议,请随时与我们联系。 您可以通过以下方式与我们联系:

  • 0 关注
  • 0 收藏,34 浏览
  • system 提出于 2025-10-07 07:00

相似服务问题

相关AI产品