xunfeiPpt MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xunfeiPpt MCP ServerCreate a presentation about artificial intelligence trends"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
讯飞智文PPT生成服务 - MCP Server
基于讯飞智文API的PPT生成服务MCP Server,支持多种传输协议和UV专用自动化部署。现已支持三协议同时启动模式!
🚀 快速开始
一键自动部署(推荐)
# 运行uv专用自动部署脚本(生成三协议服务管理器)
bash uv_deploy.sh
# 启动所有三种协议服务
./service_manager.sh start
# 查看服务状态
./service_manager.sh status直接使用服务管理器(开箱即用)
# 下载最新服务管理器
wget https://raw.githubusercontent.com/Alieforwang/xunfeiPpt/main/service_manager.sh
chmod +x service_manager.sh
# 启动所有服务(HTTP端口60,SSE端口61,HTTP-STREAM端口62)
./service_manager.sh start手动部署
# 1. 克隆项目
git clone https://github.com/Alieforwang/xunfeiPpt.git
cd xunfeiPpt
# 2. 安装uv和Python 3.13+
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.13
# 3. 同步依赖
uv sync
# 4. 启动单个服务(调试用)
uv run python main.py http --host 0.0.0.0 --port 60Related MCP server: Office-PowerPoint-MCP
📚 完整文档
uv部署指南 - 专用uv脚本详细使用说明
使用指南 - 完整的功能使用说明
部署指南 - 详细的部署说明和故障排除
服务管理 - 服务管理指南
HTTP Stream指南 - 新的传输协议说明
API密钥池 - 多密钥配置指南
⚡ 核心特性
🎯 PPT生成功能
智能PPT模板选择 - 支持风格、行业、颜色筛选
自动内容大纲生成 - 基于AI的结构化大纲生成
文档转PPT功能 - 支持PDF、DOC、DOCX、TXT、MD
完整的ReACT工作流 - THINK → ACT → OBSERVE → ITERATE
任务进度追踪 - 实时监控PPT生成状态
API密钥池管理 - 多密钥负载均衡和故障转移
🌐 传输协议支持(三协议同启)
http - HTTP协议(端口60,Web应用集成)
sse - Server-Sent Events(端口61,实时通信)
http-stream - HTTP Stream Transport(端口62,MCP 2025-03-26)
stdio - 标准输入输出(单独模式,Claude Desktop集成)
🔧 部署特性
三协议并发 - HTTP(60) + SSE(61) + HTTP-STREAM(62) 同时运行
开箱即用 - 独立service_manager.sh脚本,无需配置文件
专用uv环境管理 - 按MCP+uv官网标准
Python 3.13+ 环境自动安装
标准pyproject.toml配置和uv sync依赖管理
环境变量配置 - HOST/PORT灵活设置
PID文件管理 - 独立进程控制和监控
📁 项目结构
pptMcpSeriver/
├── main.py # 主服务文件(支持所有协议)
├── service_manager.sh # 🌟 三协议服务管理脚本(开箱即用)
├── uv_deploy.sh # UV专用部署脚本
├── README.md # 项目说明
├── pyproject.toml # 项目配置
├── uv.lock # 依赖锁定文件
├── fixed_sse_transport.py # SSE传输修复
├── http_stream_transport.py # HTTP Stream传输
├── docs/ # 文档目录
│ ├── README.md # 文档索引
│ ├── USAGE.md # 使用说明
│ ├── DEPLOYMENT_GUIDE.md # 部署指南
│ ├── SERVICE_GUIDE.md # 服务管理指南
│ ├── API_KEY_POOL_GUIDE.md # API密钥池指南
│ ├── HTTP_STREAM_GUIDE.md # HTTP Stream指南
│ └── SSE_ISSUE_ANALYSIS.md # SSE问题分析
└── tests/ # 测试目录
├── README.md # 测试说明
├── test_api_pool.py # API池测试
├── test_sse.py # SSE传输测试
└── ... # 其他测试文件✨ 核心功能
🎯 PPT生成工具
模板管理: 获取和筛选PPT模板
内容生成: 基于文本创建PPT
大纲生成: 智能生成PPT结构
文档导入: 支持从文档创建大纲
ReACT工作流: 智能代理推理和行动模式
API密钥池: 支持多密钥负载均衡和故障转移
🔄 三协议并发支持
HTTP (端口60): RESTful API接口
SSE (端口61): Server-Sent Events实时通信
HTTP Stream (端口62): 流式传输协议
stdio: 标准输入输出(独立模式)
🔑 API密钥池管理
负载均衡: 自动轮询和最优选择
故障转移: 自动切换可用密钥
并发控制: 密钥级别的并发限制
统计监控: 使用情况和错误率跟踪
🛠️ 部署选项
🔧 部署方案对比
特性 | uv_deploy.sh | service_manager.sh | 手动部署 |
UV环境管理 | ✅ 专用 | ✅ 使用现有 | ⚠️ 手动 |
三协议同启 | ✅ 自动生成 | ✅ 开箱即用 | ❌ |
配置文件依赖 | ✅ 自动生成 | ❌ 独立运行 | ⚠️ 手动 |
错误处理 | ✅ 完整 | ✅ 完整 | ⚠️ 基础 |
进程管理 | ✅ PID文件 | ✅ PID文件 | ❌ |
适用场景 | 首次部署 | 日常使用 | 开发调试 |
🚀 部署步骤
方案1:UV专用部署(推荐新用户)
# 1. 克隆项目
git clone https://github.com/Alieforwang/xunfeiPpt.git
cd xunfeiPpt
# 2. 运行UV部署脚本
bash uv_deploy.sh
# 3. 启动三协议服务
./service_manager.sh start方案2:开箱即用(推荐服务器)
# 1. 下载服务管理器
wget https://raw.githubusercontent.com/your-repo/pptMcpSeriver/main/service_manager.sh
chmod +x service_manager.sh
# 2. 确保uv环境已安装
curl -LsSf https://astral.sh/uv/install.sh | sh
# 3. 启动服务
./service_manager.sh start验证部署
# 检查所有服务状态
./service_manager.sh status
# 访问三个协议端点
curl http://localhost:60 # HTTP
curl http://localhost:61 # SSE
curl http://localhost:62 # HTTP-STREAM📖 使用说明
🔌 连接MCP服务器
三协议并发访问
# HTTP协议(端口60)
http://localhost:60/mcp
http://localhost:60/ # 状态页面
# SSE协议(端口61)
http://localhost:61/sse # SSE端点
http://localhost:61/messages/ # 消息端点
http://localhost:61/ # 状态页面
# HTTP Stream协议(端口62)
http://localhost:62/mcp # HTTP Stream端点
http://localhost:62/ # 状态页面环境变量配置
# 自定义绑定地址和端口
HOST=0.0.0.0 PORT=8080 ./service_manager.sh start
# 将启动: HTTP(8080), SSE(8081), HTTP-STREAM(8082)🛠️ 可用工具
get_theme_list - 获取PPT模板列表
create_ppt_task - 创建PPT生成任务
get_task_progress - 查询任务进度
create_outline - 创建PPT大纲
create_outline_by_doc - 从文档创建大纲
create_ppt_by_outline - 根据大纲创建PPT
create_full_ppt_workflow - ReACT模式完整工作流
get_api_pool_stats - 获取API密钥池状态
📋 ReACT工作流示例
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_full_ppt_workflow",
"arguments": {
"topic": "人工智能在教育中的应用",
"style_preference": "简约",
"industry": "教育培训",
"author": "AI助手",
"enable_figures": true,
"enable_notes": true
}
}
}🔧 服务管理
三协议服务管理(推荐)
# 启动所有三种协议服务
./service_manager.sh start
# 停止所有服务
./service_manager.sh stop
# 重启所有服务
./service_manager.sh restart
# 查看所有服务状态
./service_manager.sh status
# 查看服务日志
./service_manager.sh logs # 所有服务日志
./service_manager.sh logs http # HTTP服务日志
./service_manager.sh logs sse # SSE服务日志
./service_manager.sh logs stream # HTTP-STREAM服务日志
./service_manager.sh logs http -f # 实时查看HTTP日志单协议启动(调试用)
# 启动单个协议(用于调试)
uv run python main.py http --host 0.0.0.0 --port 60
uv run python main.py sse --host 0.0.0.0 --port 61
uv run python main.py http-stream --host 0.0.0.0 --port 62
uv run python main.py stdio # Claude Desktop集成🌐 网络配置
防火墙设置
# Linux (firewalld)
sudo firewall-cmd --permanent --add-port=60-62/tcp
sudo firewall-cmd --reload
# Linux (ufw)
sudo ufw allow 60:62/tcp端口说明(三协议模式)
60: HTTP传输协议(基础端口)
61: SSE传输协议(基础端口+1)
62: HTTP Stream传输协议(基础端口+2)
端口自定义
# 使用环境变量自定义基础端口
PORT=8080 ./service_manager.sh start
# 将启动: HTTP(8080), SSE(8081), HTTP-STREAM(8082)
# 自定义绑定地址
HOST=127.0.0.1 ./service_manager.sh start🔍 故障排除
常见问题
端口被占用
# 检查三协议端口占用 sudo netstat -tlnp | grep -E ":(60|61|62)\s" # 使用其他端口 PORT=8080 ./service_manager.sh start服务启动失败
# 查看具体错误日志 ./service_manager.sh logs # 检查uv环境 uv --version uv sync文件权限错误
# 确保脚本可执行 chmod +x service_manager.sh chmod +x uv_deploy.shAPI密钥配置
# 检查main.py中的API_KEY_POOL配置 # 确保至少有一个有效的讯飞智文API密钥
诊断工具
# API测试
python tests/test_api_pool.py
# SSE连接测试
python tests/test_sse.py
# 完整功能测试
python tests/test_simple_ppt.py🔗 集成配置
Claude Desktop配置
{
"mcpServers": {
"pptmcpseriver": {
"command": "python",
"args": ["D:/pptMcpSeriver/main.py", "stdio"],
"cwd": "D:/pptMcpSeriver"
}
}
}Cherry Studio配置(HTTP协议)
{
"name": "PPT生成服务-HTTP",
"type": "http",
"url": "http://localhost:60/mcp"
}📊 协议对比
协议 | 状态 | 适用场景 | ReACT支持 | 端口 |
http | ✅ 推荐 | Web应用、AI代理 | ✅ | 60 |
sse | ✅ 稳定 | 实时通信、流式响应 | ✅ | 61 |
http-stream | ✅ 稳定 | 新标准、高性能 | ✅ | 62 |
stdio | ✅ 稳定 | Claude Desktop集成 | ✅ | - |
📚 文档资源
📖 详细使用说明 - 完整功能指南
🔑 API密钥池配置 - 多密钥并发配置
🌐 HTTP Stream指南 - 最新传输协议
🔧 服务管理指南 - 服务管理详解
🧪 测试说明 - 测试工具使用
🎯 使用建议
选择协议指南
AI代理/智能助手 → 使用
http(稳定推荐)Claude Desktop → 使用
stdioWeb应用集成 → 使用
http实时通信需求 → 使用
sse最新标准支持 → 使用
http-stream
ReACT工作流优势
🧠 智能决策 - 自动选择最佳模板和参数
🔄 自动重试 - 失败时自动调整策略
📋 详细日志 - 完整记录执行过程
⚡ 高效率 - 一次调用完成整个流程
🚀 快速测试
# 1. 启动三协议服务
./service_manager.sh start
# 2. 测试API密钥池功能
cd tests
python test_api_pool.py
# 3. 查看服务状态
./service_manager.sh status
# 4. 访问状态页面
curl http://localhost:60/
curl http://localhost:61/
curl http://localhost:62/🤝 贡献
欢迎提交Issue和Pull Request来改进项目!
📄 许可证
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
📦 仓库地址
🔗 相关链接
注意: 使用前请确保已获得有效的讯飞智文API密钥,并在main.py中配置API_KEY_POOL。
🌟 新特性: 现已支持三协议同时启动,一次部署即可同时提供HTTP、SSE和HTTP-STREAM三种访问方式!
Available Tools
8 toolscreate_full_ppt_workflowC
ReACT模式完整PPT生成工作流 - 智能代理推荐使用
这是一个高级工作流工具,支持Reasoning and Acting (ReACT) 模式,AI代理可以按以下步骤执行完整的PPT生成流程:
🧠 THINK (思考阶段):
- 分析用户的PPT需求和主题
- 确定适合的PPT风格和行业类别
- 规划内容结构和要点
🎯 ACT (行动阶段):
1. 调用 get_theme_list 获取适合的PPT模板
2. 调用 create_outline 生成结构化大纲
3. 调用 create_ppt_by_outline 基于大纲生成PPT
4. 调用 get_task_progress 监控生成进度
👁️ OBSERVE (观察阶段):
- 检查每步的执行结果
- 验证模板选择的合理性
- 确认大纲内容的完整性
- 监控PPT生成状态直到完成
🔄 ITERATE (迭代优化):
- 根据结果调整参数
- 必要时重新选择模板或修改大纲
- 确保最终输出质量
使用建议:
- 适合需要完整PPT生成流程的复杂任务
- 支持自动错误处理和重试机制
- 提供详细的执行过程和结果反馈
- 可根据用户需求灵活调整参数
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | PPT主题或题目,描述要生成的PPT内容 | |
| author | No | PPT作者名称 | AI助手 |
| industry | No | 所属行业或领域,如:教育培训、科技互联网、金融、医疗等 | 通用 |
| enable_notes | No | 是否生成演讲备注 | |
| requirements | No | 具体要求和细节,如:目标受众、内容重点、风格偏好等 | |
| enable_search | No | 是否联网搜索补充内容 | |
| enable_figures | No | 是否启用自动配图功能 | |
| style_preference | No | PPT风格偏好,如:简约、商务、科技、教育等 | 简约 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It mentions automatic error handling, retry, and detailed feedback, which is useful. However, it does not disclose what the tool returns, whether it is synchronous or asynchronous, how it interacts with the mentioned sibling tools, or any permission or rate-limit considerations. Critical behavioral traits remain unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely long, repetitive, and padded with emojis and generic process descriptions (THINK, ACT, OBSERVE, ITERATE). Many sentences do not add actionable value beyond restating common agent behaviors. It is not front-loaded with a clear single-sentence purpose, and the bulk could be trimmed significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (8 parameters, workflow orchestrating multiple sibling tools, no annotations, no output schema), the description is incomplete. It fails to clarify what calling this tool actually does versus invoking the individual tools, what the return value is, or how the workflow is actually executed. Key information an agent needs for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 8 parameters are already documented in the input schema. The description does not add any meaning beyond what the schema provides; it only vaguely references flexible parameter adjustment. Baseline 3 is appropriate when the schema carries the full load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it is a complete PPT generation workflow using ReACT mode, which conveys the general purpose. However, it reads more like an instruction set for the agent to call other tools rather than a direct statement of what this tool itself does (e.g., whether it orchestrates automatically or returns a plan). The lack of a specific verb and the ambiguity about its own action make it vague despite naming sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says it is suitable for complex tasks requiring a complete PPT generation process and mentions flexibility with parameters. There is no explicit guidance on when NOT to use it or how it compares to alternatives like create_ppt_task or create_outline. The usage context is implied but not fully developed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outlineA
创建PPT大纲。使用说明:1. 用于根据文本内容生成PPT大纲。2. 生成的大纲可用于create_ppt_by_outline工具。3. 可通过search参数控制是否联网搜索补充内容。4. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 需要生成大纲的内容描述 | |
| search | No | 是否联网搜索,True表示联网搜索补充内容,False表示不联网 | |
| language | No | 大纲生成的语言,目前支持cn(中文) | cn |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the required environment variables (AIPPT_APP_ID/AIPPT_API_SECRET), which is genuine behavioral context. However, it says nothing about whether the outline is persisted, latency, cost, or failure modes, leaving significant gaps for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose then enumerates four compact usage notes; each line earns its place. Slightly listy but no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with full schema coverage, no output schema, and no annotations, the description covers purpose, workflow linkage (create_ppt_by_outline), the search toggle, and the auth prerequisite. The main missing piece is post-call behavior such as whether the outline is returned inline or stored for later retrieval.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (text, search, language) are already documented in the schema. The description restates the search toggle's meaning but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (创建PPT大纲) and clarifies it generates an outline from text content, which implicitly distinguishes it from the sibling create_outline_by_doc. It stops short of explicitly naming that alternative, so sibling differentiation is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The numbered list gives clear context: use when you have text description, the output feeds create_ppt_by_outline, and search toggles web augmentation. It does not state when NOT to use this tool (e.g., vs create_outline_by_doc for document input), but the workflow chaining guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outline_by_docA
从文档创建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。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 补充的文本内容,用于指导大纲生成 | |
| search | No | 是否联网搜索,True表示联网搜索补充内容,False表示不联网 | |
| file_url | No | 文档文件的URL地址,与file_path二选一必填 | |
| language | No | 大纲生成的语言,目前支持cn(中文) | cn |
| file_name | Yes | 文档文件名,必须包含文件后缀名 | |
| file_path | No | 文档文件的本地路径,与file_url二选一必填 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and it delivers: format support (pdf non-scanned, doc/docx/txt/md), 10MB and 8000-character limits, and the AIPPT_APP_ID/AIPPT_API_SECRET prerequisite. It omits return shape and whether generation is synchronous or task-based.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in one sentence, then uses a compact numbered list for constraints. Slightly long, but each numbered item carries distinct operational information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites, input formats, limits, and the downstream create_ppt_by_outline handoff, which is what an agent needs to call it correctly. Without an output schema, the description could say more about the returned outline structure, but the workflow linkage largely compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the schema. The description reinforces the file_url/file_path mutual-exclusivity and format constraints but adds no new syntax or semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: creating a PPT outline from a document ('从文档创建PPT大纲'). The 'by_doc' input source is clear, but it never contrasts itself with the sibling create_outline, which likely produces an outline from scratch rather than a document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit context: it is for generating outlines from document content, lists accepted formats, size/word limits, required env vars, and names the downstream consumer create_ppt_by_outline. It does not state when to prefer create_outline over this document-based variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ppt_by_outlineA
根据大纲创建PPT - 使用直接创建方式(绕过API bug)。使用说明: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。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | PPT生成的内容描述,用于指导PPT生成 | |
| author | No | PPT作者名称,将显示在生成的PPT中 | XXXX |
| search | No | 是否联网搜索,True表示联网搜索补充内容,False表示不联网 | |
| outline | Yes | 大纲内容,需从create_outline或create_outline_by_doc工具返回的JSON响应中提取['data']['outline']字段的值。该字段包含生成的大纲内容,格式为dict | |
| ai_image | No | AI配图类型,仅在is_figure为True时生效。可选值:normal-普通配图(20%正文配图),advanced-高级配图(50%正文配图) | normal |
| is_figure | No | 是否自动配图,True表示自动配图,False表示不配图 | |
| template_id | Yes | PPT模板ID,需通过get_theme_list工具获取 | |
| is_card_note | No | 是否生成PPT演讲备注,True表示生成,False表示不生成 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the async contract (returns sid), the required downstream polling step, where the download URL surfaces, and an authentication prerequisite (AIPPT_APP_ID / AIPPT_API_SECRET). Failure modes, timeouts, and rate limits are not covered, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action before the numbered usage steps, and each step earns its place by advancing the workflow. Slight redundancy with the schema descriptions in points 2 and 3 keeps it from being maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter async tool with no annotations and no output schema, the description compensates well by explaining the sid/polling/download flow. What remains missing is how the tool relates to the other creation siblings, but the operational picture is essentially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all eight parameters. The description only restates the outline/template_id sourcing that the schema descriptions already contain, adding no new semantic detail (e.g. acceptable outline shapes or default behavior). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (创建PPT based on 大纲) and notes the direct-creation variant that bypasses an API bug. It references the sibling tools for prerequisites, but never explicitly contrasts itself with create_ppt_task or create_full_ppt_workflow, so an agent can't fully disambiguate the creation siblings from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear numbered workflow: use it only after an outline exists, obtain template_id via get_theme_list, then poll with get_task_progress. This is strong context, but it never states when a different creation tool (e.g. create_full_ppt_workflow) would be the better choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ppt_taskA
创建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。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | PPT生成的内容描述,用于生成PPT的主题和内容 | |
| author | No | PPT作者名称,将显示在生成的PPT中 | XXXX |
| search | No | 是否联网搜索,True表示联网搜索补充内容,False表示不联网 | |
| ai_image | No | AI配图类型,仅在is_figure为True时生效。可选值:normal-普通配图(20%正文配图),advanced-高级配图(50%正文配图) | normal |
| is_figure | No | 是否自动配图,True表示自动配图,False表示不配图 | |
| template_id | Yes | PPT模板ID,需通过get_theme_list获取 | |
| is_card_note | No | 是否生成PPT演讲备注,True表示生成,False表示不生成 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses that the tool is asynchronous, returns a task ID (sid), requires polling, and depends on AIPPT_APP_ID/AIPPT_API_SECRET environment variables being set. It omits failure modes, timeouts, or rate limits, but the core async contract is explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded purpose sentence followed by a numbered prerequisite/workflow list; every item earns its place by covering a step the agent would otherwise miss. Slightly long, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and 7 parameters, the description supplies the async lifecycle (sid, polling, download URL) and the auth prerequisite, which are exactly the gaps structured fields cannot cover. It stops short of describing error behavior or text-format expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including defaults and the ai_image/is_figure dependency. The description only reinforces that template_id comes from get_theme_list, adding little beyond structured data, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (创建PPT生成任务) and clearly frames it as a task-creation step. It does not explicitly contrast itself with close siblings like create_ppt_by_outline or create_full_ppt_workflow, leaving the agent to infer which entry point fits, but the noun itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete sequencing: call get_theme_list first to obtain a valid template_id, then poll with get_task_progress, then fetch the download URL from the progress result. That is strong context for invoking it correctly, though it never states when to prefer this tool over the outline-based or full-workflow alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_pool_statsA
获取API密钥池状态统计。使用说明:1. 显示当前密钥池中所有密钥的使用情况。2. 包含并发数、请求数、错误率等信息。3. 用于监控和调试API调用性能。4. 无需参数,直接调用即可。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the returned content (concurrency, request count, error rate) and that it surfaces all keys in the pool, which is useful. However, it says nothing about permissions/auth requirements, read-only nature, or rate limits, leaving gaps in the behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The numbered structure is readable and front-loads purpose, but item 4 ('无需参数,直接调用即可') is pure redundancy against the empty input schema and could be dropped. Item 2 and 3 are somewhat overlapping descriptions of returned data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema monitoring tool, the description supplies the key value: the categories of data returned (concurrency, request count, error rate). No output schema exists, so explaining the return shape is appropriate, and it does so adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema fully documents the (empty) input surface and the baseline of 4 applies. The line '无需参数,直接调用即可' adds nothing beyond the empty schema but does not mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('获取API密钥池状态统计' – get API key pool status statistics), which is unambiguous. It does not explicitly distinguish itself from siblings, but the sibling set (PPT/theme/task tools) is clearly unrelated, so differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Point 3 explicitly states the intended context: '用于监控和调试API调用性能' (used for monitoring and debugging API call performance). This is clear context for when to use it, though no alternatives or exclusion conditions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_progressA
查询PPT生成任务进度。使用说明:1. 用于查询通过create_ppt_task或create_ppt_by_outline创建的任务进度。2. 需定期轮询本工具直到任务完成。3. 任务完成后,可从返回结果中获取PPT下载地址。4. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。
| Name | Required | Description | Default |
|---|---|---|---|
| sid | Yes | 任务ID,从create_ppt_task或create_ppt_by_outline工具获取 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers: polling requirement, auth prerequisite via environment variables, and that the download URL appears in the result. It does not cover failure/error states or how to interpret a not-yet-complete response, so it falls just short of full disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one clause, then a tight numbered list of four operational rules. Every line carries distinct information with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter polling tool with no output schema, the description compensates well by explaining what the result yields (the PPT download URL) and the auth requirement. The main gap is the absence of guidance on error/incomplete states, but overall an agent has what it needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single sid parameter is already fully documented in the schema, including its origin from the create tools, so the description adds no syntax or format detail beyond it. A baseline 3 is appropriate when schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (query PPT generation task progress) and immediately scopes it to tasks created by create_ppt_task or create_ppt_by_outline, naming the siblings explicitly. An agent can distinguish this polling tool from the creation tools and read-only siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use (tasks made by the two create tools), how-to-use (poll periodically until complete), and a prerequisite (set AIPPT_APP_ID and AIPPT_API_SECRET first). It even tells the agent what to do on completion, leaving little inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_theme_listA
获取PPT模板列表。使用说明:1. 此工具用于获取可用的PPT模板列表,需先调用本工具获取template_id,后续PPT生成需用到。2. 可通过style、color、industry等参数筛选模板。3. 需先设置环境变量AIPPT_APP_ID和AIPPT_API_SECRET。
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | 模板颜色,如:红色、蓝色等 | |
| style | No | 模板风格,如:简约、商务、科技等 | |
| industry | No | 模板行业,如:教育培训、金融等 | |
| page_num | No | 页码,从1开始 | |
| pay_type | No | 模板付费类型,可选值:free-免费模板,not_free-付费模板 | not_free |
| page_size | No | 每页数量,最大100 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses the non-obvious prerequisite that AIPPT_APP_ID and AIPPT_API_SECRET environment variables must be set, plus the downstream dependency on template_id. It stops short of describing the returned list's shape or pagination behavior, so it is not fully self-contained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one phrase, followed by a compact numbered list of usage notes. It is efficient and easy to scan, though the filter mention slightly duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter list tool with no output schema, the description covers the essentials: the key output (template_id), prerequisites (env vars), and filtering. Only a sketch of the returned record structure is missing, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page_num, page_size, pay_type, style, color, and industry are all already documented in the schema. The description only restates the filter parameters (style/color/industry) without adding format, syntax, or value details, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("获取PPT模板列表" / get the PPT template list) that no sibling duplicates — the other tools create tasks, outlines, or workflows, none list templates. An agent can immediately tell what this tool returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong ordering context: the tool must be called first because the returned template_id is required for later PPT generation, and notes style/color/industry filtering. It lacks explicit when-not conditions or named alternative tools, but no sibling overlaps this function, so the guidance is essentially complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.1.0- First observed
create_full_ppt_workflow - First observed
create_outline - First observed
create_outline_by_doc - First observed
create_ppt_by_outline - First observed
create_ppt_task - First observed
get_api_pool_stats - First observed
get_task_progress - First observed
get_theme_list
TDQS
Scored across 8 tools
create_ppt_task and create_ppt_by_outline both create PPT generation tasks that return an sid, giving agents overlapping paths to the same outcome. create_full_ppt_workflow further duplicates the entire pipeline (templates → outline → PPT → progress), so boundaries between the atomic tools and the orchestration tool are blurry. get_theme_list, get_task_progress, and get_api_pool_stats are clearly distinct.
Names follow a predictable snake_case verb_noun pattern with get_/create_ prefixes (get_theme_list, create_outline, get_task_progress). Minor inconsistency in the *_by_* suffix variants (create_outline_by_doc, create_ppt_by_outline) but these remain readable and self-describing.
Eight tools is well-scoped for a PPT-generation service covering templates, outline creation, task creation, and progress polling. The dedicated workflow tool is somewhat redundant given the atomic tools already exist, but the count is reasonable rather than bloated.
The surface covers the full generation lifecycle: template discovery, outline creation (from text or document), PPT creation, and progress polling with download URL retrieval, plus an end-to-end workflow and key-pool monitoring. Minor gaps exist around task cancellation or listing, but core workflows have no dead ends.
Maintenance
Related MCP Connectors
Generate professional PowerPoint presentations from text, YouTube videos, or structured JSON data.…
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
Generate polished PowerPoint presentations from text prompts, YouTube videos, or structured outlin…
Generate, edit, and export AI presentations to PDF, PPTX, or a shareable link.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceCreates professional PowerPoint presentations from Markdown or JSON with intelligent layout recommendations, rich content support including tables and images, and automatic template selection based on content analysis.7Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to programmatically create, manipulate, and analyze Microsoft PowerPoint presentations with advanced formatting and template management.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables PowerPoint automation on Windows, including template-based creation, real-time editing, LaTeX equations, animations, and multimodal slide analysis, all via natural language.152 PyPI113MIT
- AlicenseNot gradedqualityCmaintenanceEnables creation of professional PowerPoint presentations with AI-generated content and images, supporting multiple LLMs and image services via MCP protocol.MIT