提供有声书创作与音频能力(ABS 读写、音效/音频检索、二创、音色推荐、章节角色分析等),通过 HTTP Streamable MCP 调用。
MCP 地址:https://aigc.ximalaya.com/audiobooklm/mcp
https://aigc.ximalaya.comhttps://aigc.ximalaya.com/audiobooklm/mcpAUDIOBOOKLM_TOKEN(Bearer Token)aigc.ximalaya.com。当用户首次使用本技能,或检测到未配置 token 时,OpenClaw 必须先提示以下内容,再进入工具调用:
AUDIOBOOKLM_TOKEN),再继续使用本技能。推荐提示文案(可直接复用):
使用 audiobooklm 前,请先到 https://aigc.ximalaya.com 登录并在个人中心创建 API Token,然后将 token 配置到 OpenClaw(Bearer Token / AUDIOBOOKLM_TOKEN)。配置完成后我再为你执行读取书籍、音效检索或二创操作。
{"success":false} 或 code!=20000,按失败处理并转述真实错误。请求头固定:
Accept: application/json, text/event-streamAuthorization: Bearer <AUDIOBOOKLM_TOKEN>Content-Type: application/json调用顺序(不可跳过):
initializenotifications/initializedtools/list / tools/call(都要带 mcp-session-id)若无 token 或 token 无效,服务会返回 401(invalid_token)。
OpenClaw 不应硬编码工具总数;先调用 tools/list,再按返回结果路由。
以下为当前主流程常用工具:
chapter_splitsearch_faqannotate_pinyincharacter_analyzetimber_assignsearch_sound_labelsound_effectchapter_character_analysischapter_character_predictdialogue_splitsearch_audiofan_made_audiopatch_absread_absimage_generationcreate_albumupload_audio_to_albumlist_tts_voicessynthesize_ttsasr_audio_to_text说明:部分环境会通过服务端配置隐藏某些工具(如 text_writing、analysis_audio_fx、analysis_sound_description 等);是否可用必须以本轮 tools/list 为准。
read_absscope={"domain":"books"}scope={"domain":"book","book_id":"<id>"}scope={"domain":"chapter","book_id":"<id>","chapter_id":"<id>"}patch_absscope={"domain":"book"} 且不传 book_idread_abs(books) 取 team_id,再 patch_abs(create_book),再 patch_abs(add_chapter...)search_sound_labelsearch_audiomock.json 做语义匹配命中(返回已有 audio_url/audio_path)audio_urlfan_made_audioaudio_url + user_instructiontimber_assign{"description":"成熟男声","text":"..."}(效果更稳定)description 非强制;未提供时工具会尝试基于文本自动分析,但可控性会下降list_tts_voices + synthesize_ttslist_tts_voices 取 speakerId,再 synthesize_tts(text, speaker_id)search_audio(其音色是自动匹配,非强指定)chapter_character_analysisdialogue_split -> chapter_character_predictimage_generation{"prompt":"..."},若下游超时按真实错误返回scope 必填对象,domain 仅可为 books|book|chapterfields 可选数组pagination 可选对象cookie 可选scope 必填对象,domain 为 chapter|book|booksoperations 必填数组,每项需 op_id/type/reasonbase_version 可选dry_run 可选,默认 falsecookie 可选query 必填top_k 可选,默认 3user_query 必填cookie 可选text、speaker_id、rate 等 TTS 细粒度参数(由工具内部自动决策)audio_url 必填user_instruction 必填cookie 可选description 可选(建议传,便于控风格)content_file/content_text/text/enable_ai_analysis/speaker_list/topk/rate/cookiecookie 可选limit 可选(<=0 表示不限制)text 必填speaker_id 必填(来自 list_tts_voices 的 speakerId)cookie 可选data 必填use_audio_fx(默认 true)、analysis_mode(默认 2)、data_mode(默认 1)content_file、filenamemax_chapter_length、handle_intro_text、enable_ai_fallback、start_chapter_number、enable_loose_patterns、ai_spliter、auto_cleanercontent_file、content、content_text 三选一(content_text 是 content 同义字段)context_window、max_window_length、scope、max_characterstext_list 或 lines 至少一项chapter_name/context_window/max_window_lengthtext_list 时不会做真实说话人识别,对白段 speaker 会固定为“对白”;若要尽量提取说话人,优先传 linestext_list 必填scope/max_characterstext_list 段落数不超过 200(底层模型链路对超长输入会退化/报错)content_file 必填max_dialogues_per_character/include_relationshipsquery 必填top_k 可选(默认 3)text 必填prompt 必填success=false):直接转述 msg,不加臆测结论。tools/list 校验后再路由,不要硬调。tools/list:确认服务在线与工具集。read_abs(scope.domain=books):验证 token 权限与团队上下文。read_abs 成功,再执行用户任务;若失败,优先提示用户检查 token 是否过期/绑定错误团队。read_abs({"scope":{"domain":"books"}}):按书名匹配 book_id。read_abs({"scope":{"domain":"book","book_id":"<id>"}}):取章节列表并定位最后一章 chapter_id。read_abs({"scope":{"domain":"chapter","book_id":"<id>","chapter_id":"<id>"}}):返回正文并生成摘要。read_abs(books) 取可用 team_id。patch_abs(create_book):scope={"domain":"book"} 且不传 book_id。patch_abs(add_chapter):对新书 book_id 添加第一章。read_abs(book) 回读验证写入结果。search_audio 正确用法(给 OpenClaw 的 TTS 适配重点)search_audio(user_query=用户原话)。source=mock:代表命中已有素材(可能是 audio_url,也可能是本地 audio_path)。source=generated:代表已完成“文本生成 + 音色推荐 + TTS 合成”。mock,需先告知“当前命中已有素材”,再询问是否改成更具体需求重试以触发生成链路。search_audio 能力边界(必须告知模型)search_audio 一次调用只能产出 1 条结果,不支持 top_k/分页。speaker_id。user_query 应包含:timber_assign + 其他可控链路,不要把 search_audio 当成可编排 TTS 引擎。data。sound_effect(默认 analysis_mode=2)。chapter_character_analysis。dialogue_split -> chapter_character_predict。character_analyze(注意可能耗时长,需超时提示)。dialogue_split 用 text_list 入参时,本质是格式转换,不会可靠识别对白说话人。lines -> dialogue_split -> chapter_character_predict。chapter_character_analysis/chapter_character_predict 属于 LLM 推断结果,应以“建议值”呈现,不要宣称绝对准确。list_tts_voices -> synthesize_tts。list_tts_voices,按 speakerName 匹配确认后再调 synthesize_tts。timber_assign 做推荐试听;需要固定单音色再转 synthesize_tts。synthesize_tts 不在本轮 tools/list,回退到 timber_assign 或 search_audio,并明确告知“当前环境不支持直指定 speaker_id 合成”。audio_url 与实际使用的 speaker_id;若文本超过 200 字,需提示已被服务端截断。create_album(album_name, book_type, book_content/book_file)。text_writing 或 LLM 自身能力生成多集文案(每集建议 1500 字左右)。list_tts_voices 获取 speakerId。synthesize_tts(text, speaker_id) 为每一集生成音频 URL。upload_audio_to_album(album_id, audio_url, title) 将合成好的音频挂载到指定专辑。audioUrl 为空),应记录失败集数并提示用户重试,不要中断后续上传。asr_audio_to_text(audio_url) 将长音频转为文字。# 1) initialize(记录响应头里的 mcp-session-id)
curl -i -sS -X POST "https://aigc.ximalaya.com/audiobooklm/mcp" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ${AUDIOBOOKLM_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"openclaw","version":"1.0.0"}}}'
# 2) initialized(带 mcp-session-id)
curl -i -sS -X POST "https://aigc.ximalaya.com/audiobooklm/mcp" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ${AUDIOBOOKLM_TOKEN}" \
-H "Content-Type: application/json" \
-H "mcp-session-id: <session-id>" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}'
# 3) tools/list(带 mcp-session-id)
curl -i -sS -X POST "https://aigc.ximalaya.com/audiobooklm/mcp" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ${AUDIOBOOKLM_TOKEN}" \
-H "Content-Type: application/json" \
-H "mcp-session-id: <session-id>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
create_album,upload_audio_to_album,list_tts_voices,synthesize_tts,asr_audio_to_text toolssearch_audio 能力描述:明确“mock 命中优先,未命中才自动文生音频(LLM 文案 + 音色推荐 + TTS)”,避免误当作通用站内音频检索。list_tts_voices -> synthesize_tts,并补齐回退与截断提示规则。tools/list 动态路由原则、chapter_character_analysis 的 content_text 同义入参、dialogue_split 在 text_list 模式下仅做格式转换的限制。