mcp-ai-music 1.0.3 → 1.0.4

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.
Files changed (2) hide show
  1. package/dist/index.js +26 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -85,7 +85,7 @@ const PROGRESS_QUERY_OUTPUT_SCHEMA = {
85
85
  // 工具定义
86
86
  const GENERATE_MUSIC_TOOL = {
87
87
  name: "generate_music",
88
- description: "生成音乐。根据提示词和风格生成原创音乐,支持自定义模式和纯音乐模式。\n\n注意:生成需要时间,请每10-30秒轮询调用query_progress查询进度工具,直到状态为'complete'或'failed'。\n\n参数行为说明:\n- customMode: 是否启用自定义模式(默认 true)。\n- instrumental: 是否为纯音乐。\n- 当 customMode=true 且 instrumental=false 时,prompt 将作为精确歌词使用;\n 当 customMode=false 且 instrumental=false 时,将自动生成歌词;\n 当 instrumental=true 时,始终为纯音乐(不含歌词)。\n\n返回字段说明:\n- taskId: 任务ID,用于查询进度\n- status: 任务状态 (pending)\n- message: 状态描述",
88
+ description: "生成音乐。根据提示词和风格生成原创音乐,支持自定义模式和纯音乐模式。\n\n注意:\n- 生成需要时间,请每10-30秒轮询调用 query_progress 查询进度工具,直到状态为 'complete' 'failed'。\n- 平台仅保存音频与封面文件 15 天,请及时下载保存。\n\n参数行为说明:\n- customMode: 是否启用自定义模式(默认 true)。\n- instrumental: 是否为纯音乐。\n- 当 customMode=true 且 instrumental=false 时,prompt 将作为精确歌词使用;\n 当 customMode=false 且 instrumental=false 时,将自动生成歌词;\n 当 instrumental=true 时,始终为纯音乐(不含歌词)。\n\n返回字段说明:\n- taskId: 任务ID,用于查询进度\n- status: 任务状态 (pending)\n- message: 状态描述",
89
89
  inputSchema: {
90
90
  type: "object",
91
91
  properties: {
@@ -131,7 +131,7 @@ const GENERATE_MUSIC_TOOL = {
131
131
  };
132
132
  const COVER_MUSIC_TOOL = {
133
133
  name: "cover_music",
134
- description: "翻唱音乐。上传音频文件并转换为新的风格,保留核心旋律。\n\n注意:生成需要时间,请每10-30秒轮询调用query_progress工具,直到状态为'complete'或'failed'。\n\n返回字段说明:\n- taskId: 任务ID,用于查询进度\n- status: 任务状态 (pending)\n- message: 状态描述",
134
+ description: "翻唱音乐。上传音频文件并转换为新的风格,保留核心旋律。\n\n注意:\n- 生成需要时间,请每10-30秒轮询调用 query_progress 工具,直到状态为 'complete' 'failed'。\n- 平台仅保存音频与封面文件 15 天,请及时下载保存。\n\n返回字段说明:\n- taskId: 任务ID,用于查询进度\n- status: 任务状态 (pending)\n- message: 状态描述",
135
135
  inputSchema: {
136
136
  type: "object",
137
137
  properties: {
@@ -176,7 +176,7 @@ const COVER_MUSIC_TOOL = {
176
176
  };
177
177
  const EXTEND_MUSIC_TOOL = {
178
178
  name: "extend_music",
179
- description: "扩展音乐。在保留原始音频风格的同时扩展音轨长度。\n\n注意:生成需要时间,请每10-30秒轮询调用query_progress工具,直到状态为'complete'或'failed'。\n\n返回字段说明:\n- taskId: 任务ID,用于查询进度\n- status: 任务状态 (pending)\n- message: 状态描述",
179
+ description: "扩展音乐。在保留原始音频风格的同时扩展音轨长度。\n\n注意:\n- 生成需要时间,请每10-30秒轮询调用 query_progress 工具,直到状态为 'complete' 'failed'。\n- 平台仅保存音频与封面文件 15 天,请及时下载保存。\n\n返回字段说明:\n- taskId: 任务ID,用于查询进度\n- status: 任务状态 (pending)\n- message: 状态描述",
180
180
  inputSchema: {
181
181
  type: "object",
182
182
  properties: {
@@ -668,6 +668,29 @@ async function handleQueryProgress(input) {
668
668
  rawData: result
669
669
  } : null,
670
670
  };
671
+ // 如果任务失败,按要求返回格式化数据,并透传后端错误信息到顶层 errorMessage
672
+ if (status === 'failed') {
673
+ const failureReason = result.errorMessage || result.msg || "";
674
+ const messageText = failureReason ? `任务失败: ${failureReason}` : "任务失败";
675
+ return {
676
+ content: [
677
+ {
678
+ type: "text",
679
+ text: JSON.stringify([
680
+ {
681
+ taskId,
682
+ status: "failed",
683
+ progress: 0,
684
+ message: messageText,
685
+ result: null,
686
+ },
687
+ ]),
688
+ },
689
+ ],
690
+ isError: false,
691
+ errorMessage: failureReason,
692
+ };
693
+ }
671
694
  // 检查是否来自自定义服务端且返回错误
672
695
  if (result.code !== undefined) {
673
696
  // 自定义服务端格式:code 0=成功,其他=失败
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-ai-music",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "AI作曲MCP服务 - 基于Suno4.5 API的音乐生成、翻唱、扩展和进度查询工具",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {