讯飞智能PPT生成服务MCP服务器,提供PPT生成、大纲生成、模板管理等功能。所有工具均为原子化,参数和依赖关系详见各工具描述。所有API鉴权信息通过环境变量AIPPT_APP_ID和AIPPT_API_SECRET读取。
The server defines 6 tools with visible schemas and descriptions in the source code. All tools are properly registered via @mcp.tool() decorators with parameter schemas and docstrings. However, the quality is held back by several issues: (1) Descriptions are written in Chinese with embedded usage instructions rather than following LLM-optimized patterns (descriptions range 200-400+ chars, violating the 50-200 char baseline); (2) Parameter descriptions lack formal constraints (enums, ranges, patterns), for example, 'ai_image' accepts 'normal' or 'advanced' but this is only documented in prose, not as an enum; (3) Output schemas are not formally documented, tools return response.json() without specifying field structures; (4) No error handling guidance, exception messages like 'raise Exception(f"创建PPT任务失败: {resp}")' provide raw API responses to the LLM with no recovery instructions; (5) Tool composition has implicit dependencies (e.g., create_ppt_task requires template_id from get_theme_list, create_ppt_by_outline requires outline from create_outline) which are documented in prose but not in parameter metadata; (6) Security concern: credentials are injected via environment variables (correct), but there is no permission gating or audit logging.
创建PPT大纲。 使用说明: 1. 用于根据文本内容生成PPT大纲。 2. 生成的大纲可用于create_ppt_by_outline工具。 3. 可通过search参数控制是否联网搜索补充内容。 4. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。 参数: - text: 需要生成大纲的内容描述。 - language: 大纲生成的语言,目前支持cn(中文)。 - search: 是否联网搜索,True表示联网搜索补充内容,False表示不联网。 返回: 包含生成的大纲内容的字典。
从文档创建PPT大纲。 使用说明: 1. 用于根据文档内容生成PPT大纲。 2. 支持通过file_url或file_path上传文档。 3. 文档格式支持:pdf(不支持扫描件)、doc、docx、txt、md。 4. 文档大小限制:10M以内,字数限制8000字以内。 5. 生成的大纲可用于create_ppt_by_outline工具。 6. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。 参数: - file_name: 文档文件名,必须包含文件后缀名。 - file_url: 文档文件的URL地址,与file_path二选一必填。 - file_path: 文档文件的本地路径,与file_url二选一必填。 - text: 补充的文本内容,用于指导大纲生成。 - language: 大纲生成的语言,目前支持cn(中文)。 - search: 是否联网搜索,True表示联网搜索补充内容,False表示不联网。 返回: 包含生成的大纲内容的字典。
根据大纲创建PPT。 使用说明: 1. 用于根据已生成的大纲创建PPT。 2. 大纲需通过create_outline或create_outline_by_doc工具生成。 3. template_id需通过get_theme_list工具获取。 4. 工具会返回任务ID(sid),需用get_task_progress轮询查询进度。 5. 任务完成后,可从get_task_progress结果中获取PPT下载地址。 6. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。 参数: - text: PPT生成的内容描述,用于指导PPT生成。 - outline: 大纲内容,需从create_outline或create_outline_by_doc工具返回的JSON响应中提取['data']['outline']字段的值。该字段包含生成的大纲内容,格式为dict。 - template_id: PPT模板ID,需通过get_theme_list工具获取。 - author: PPT作者名称,将显示在生成的PPT中。 - is_card_note: 是否生成PPT演讲备注,True表示生成,False表示不生成。 - search: 是否联网搜索,True表示联网搜索补充内容,False表示不联网。 - is_figure: 是否自动配图,True表示自动配图,False表示不配图。 - ai_image: AI配图类型,仅在is_figure为True时生效。可选值:normal-普通配图(20%正文配图),advanced-高级配图(50%正文配图)。 返回: 成功时返回包含sid的字典,失败时抛出异常。
创建PPT生成任务。 使用说明: 1. 在调用本工具前,必须先调用get_theme_list获取有效的template_id。 2. 工具会返回任务ID(sid),需用get_task_progress轮询查询进度。 3. 任务完成后,可从get_task_progress结果中获取PPT下载地址。 4. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。 参数: - text: PPT生成的内容描述,用于生成PPT的主题和内容。 - template_id: PPT模板ID,需通过get_theme_list获取。 - author: PPT作者名称,将显示在生成的PPT中。 - is_card_note: 是否生成PPT演讲备注,True表示生成,False表示不生成。 - search: 是否联网搜索,True表示联网搜索补充内容,False表示不联网。 - is_figure: 是否自动配图,True表示自动配图,False表示不配图。 - ai_image: AI配图类型,仅在is_figure为True时生效。可选值:normal-普通配图(20%正文配图),advanced-高级配图(50%正文配图)。 返回: 成功时返回包含sid的字典,失败时抛出异常。
Descriptions are overly long (200 - 450+ characters) and written as usage guides rather than LLM-optimized functional descriptions. Baseline for A-grade tools is 50 - 200 characters. Verbose descriptions with embedded instructions waste tokens and dilute signal.
Enumerated parameters are documented only in prose descriptions, not formalized as JSON Schema enums. Examples: 'pay_type' (free/not_free), 'ai_image' (normal/advanced), 'language' (cn only). LLMs cannot read prose constraints; they need structured enum definitions.
Output schemas are not documented. Tools return response.json() or simplified dicts without specifying field names, types, and purposes. Callers must infer structure, increasing hallucination risk.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
查询PPT生成任务进度。 使用说明: 1. 用于查询通过create_ppt_task或create_ppt_by_outline创建的任务进度。 2. 需定期轮询本工具直到任务完成。 3. 任务完成后,可从返回结果中获取PPT下载地址。 4. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。 参数: - sid: 任务ID,从create_ppt_task或create_ppt_by_outline工具获取。 返回: 包含任务状态和PPT下载地址的字典。
获取PPT模板列表。 使用说明: 1. 此工具用于获取可用的PPT模板列表,需先调用本工具获取template_id,后续PPT生成需用到。 2. 可通过style、color、industry等参数筛选模板。 3. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。 参数: - pay_type: 模板付费类型,可选值:free-免费模板,not_free-付费模板。 - style: 模板风格,如:简约、商务、科技等。 - color: 模板颜色,如:红色、蓝色等。 - industry: 模板行业,如:教育培训、金融等。 - page_num: 页码,从1开始。 - page_size: 每页数量,最大100。 返回: 包含模板列表的字典,每个模板包含template_id等信息。
Error handling provides no recovery guidance. Exceptions like 'raise Exception(f"创建PPT任务失败: {resp}")' return raw API responses to the LLM. Per pattern:recovery-guide, errors should tell the LLM what to do next (e.g., 'Invalid template_id. Call get_theme_list() first.').
Implicit tool dependencies are documented in prose but not formalized. create_ppt_task requires valid template_id from get_theme_list; create_ppt_by_outline requires outline from create_outline. Parameter descriptions should include explicit dependency hints.
Parameter constraints (min/max values, regex patterns) are missing. Example: 'page_num' defaults to 2 (suspicious, usually 1?), 'page_size' has no min/max bounds despite API limit of 100. Without explicit ranges, LLMs may pass invalid values.
create_outline_by_doc parameters 'file_url' and 'file_path' are marked as 'one of two required', but validation is client-side only. No error is raised if both are None; instead, the code silently omits both fields. Parameter description should clarify mutual exclusivity and validation should occur in the function.
Descriptions are in Chinese, not English. MCP servers should use English descriptions for maximum interoperability with LLMs and agent platforms.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools like create_ppt_task and create_outline are WRITE operations but are not annotated, making it unclear to the agent which tools are safe to retry.
No audit logging or permission gating. Credentials are injected via environment variables (correct), but there is no logging of who called which tool or what was created. For compliance and debugging, tool calls should be traceable.