Content
# iFlytek Smart Document PPT Generation Service MCP Server
## Overview
The iFlytek Smart Document PPT Generation Service MCP Server is an intelligent document AI assistant built on the iFlytek Spark large model. It is fully compatible with the [MCP protocol](https://modelcontextprotocol.io/) and supports quick integration with various intelligent assistants (such as `Claude`, `Cursor`, and `Qianfan AppBuilder`) through the MCP protocol.
This service provides six API interfaces that comply with MCP protocol standards, covering core functionalities such as PPT template retrieval, PPT generation task creation, task progress inquiry, and outline generation, helping users efficiently create PPT documents and enhance work and learning efficiency.
Developed using the `MCP Python SDK`, it supports configuring service authentication information through environment variables to ensure secure and reliable API calls.
## Tools
### 1. Get PPT Template List `get_theme_list`
- **Description**: Retrieve a list of available PPT templates, supporting filtering by style, color, industry, etc. Environment variables `AIPPT_APP_ID` and `AIPPT_API_SECRET` must be set first.
- **Parameters**:
- `pay_type`: Template payment type (optional values: `free` - free templates, `not_free` - paid templates, default value: `not_free`)
- `style`: Template style (e.g., minimalist, business, technology, optional)
- `color`: Template color (e.g., red, blue, optional)
- `industry`: Template industry (e.g., education and training, finance, optional)
- `page_num`: Page number (starting from 1, default value: 2)
- `page_size`: Number of items per page (maximum 100, default value: 10)
- **Output**: A dictionary containing the template list, with each template including `template_id`, `name`, `style`, and other information.
### 2. Create PPT Generation Task `create_ppt_task`
- **Description**: Create a PPT generation task based on text content and template ID. A valid `template_id` must be obtained through `get_theme_list`, and the task ID (`sid`) will be returned for progress inquiry.
- **Parameters**:
- `text`: Description of the content to generate the PPT (required)
- `template_id`: PPT template ID (required, obtained from `get_theme_list`)
- `author`: Name of the PPT author (default value: `XXXX`)
- `is_card_note`: Whether to generate speaker notes (`True`/`False`, default value: `True`)
- `search`: Whether to search online for supplementary content (`True`/`False`, default value: `False`)
- `is_figure`: Whether to automatically add images (`True`/`False`, default value: `True`)
- `ai_image`: AI image type (only effective when `is_figure=True`, optional values: `normal` - regular images, `advanced` - advanced images, default value: `normal`)
- **Output**: Returns `{"sid": "task ID"}` on success; throws an exception on failure.
### 3. Query PPT Generation Task Progress `get_task_progress`
- **Description**: Query the progress of tasks created through `create_ppt_task` or `create_ppt_by_outline`. After the task is completed, it returns the PPT download link.
- **Parameters**:
- `sid`: Task ID (required, obtained from the task creation tool)
- **Output**: A dictionary containing the task status (`status`) and the PPT download link (`download_url`).
### 4. Create PPT Outline `create_outline`
- **Description**: Generate a PPT outline based on text content, supporting online searches for supplementary content. The generated outline can be used for `create_ppt_by_outline`.
- **Parameters**:
- `text`: Description of the content for which the outline needs to be generated (required)
- `language`: Language for outline generation (currently only supports `cn` - Chinese, default value: `cn`)
- `search`: Whether to search online (`True`/`False`, default value: `False`)
- **Output**: A dictionary containing the outline content, formatted as `{"data": {"outline": outline content}}`.
### 5. Create PPT Outline from Document `create_outline_by_doc`
- **Description**: Generate a PPT outline based on document content, supporting document uploads via URL or local path (formats: pdf, doc, docx, txt, md, size ≤ 10MB, word count ≤ 8000).
- **Parameters**:
- `file_name`: Document file name (required, must include the file extension)
- `file_url`: Document URL (one of `file_url` or `file_path` must be provided)
- `file_path`: Document local path (one of `file_url` or `file_path` must be provided)
- `text`: Supplementary text content (guiding outline generation, required)
- `language`: Language for outline generation (currently only supports `cn` - Chinese, default value: `cn`)
- `search`: Whether to search online (`True`/`False`, default value: `False`)
- **Output**: A dictionary containing the outline content, formatted the same as `create_outline`.
### 6. Create PPT from Outline `create_ppt_by_outline`
- **Description**: Create a PPT based on the generated outline and template ID. The outline must be obtained through `create_outline` or `create_outline_by_doc`, and the template ID must be obtained through `get_theme_list`.
- **Parameters**:
- `text`: Description of the content to generate the PPT (required)
- `outline`: Outline content (required, must extract the `['data']['outline']` field returned from `create_outline`)
- `template_id`: PPT template ID (required, obtained from `get_theme_list`)
- `author`: Name of the PPT author (default value: `XXXX`)
- `is_card_note`: Whether to generate speaker notes (`True`/`False`, default value: `True`)
- `search`: Whether to search online for supplementary content (`True`/`False`, default value: `False`)
- `is_figure`: Whether to automatically add images (`True`/`False`, default value: `True`)
- `ai_image`: AI image type (only effective when `is_figure=True`, default value: `normal`)
- **Output**: Returns `{"sid": "task ID"}` on success; throws an exception on failure.
## Getting Started
### Obtain Authentication Information
Apply for an application on the [iFlytek Open Platform](https://www.xfyun.cn/) to obtain `AIPPT_APP_ID` and `AIPPT_API_SECRET`, and set them as environment variables:
```bash
export AIPPT_APP_ID="your application ID"
export AIPPT_API_SECRET="your API key"
```
### Python Integration
#### Recommended Method: Use uvx for One-Click Start (Minimal Integration)
`uvx` is a lightweight tool that supports quickly running the MCP service without additional dependency installations. If `uvx` is already installed, you can start the service directly with the following steps:
##### Install uvx (install for the first time)
```bash
# Install uv according to the official documentation (supports macOS/Linux/Windows)
curl -fsSL https://install.astral.sh/uv | bash
```
##### Start the Service
```bash
uvx aippt-mcp
```
This command will automatically pull and run the iFlytek Smart Document PPT Generation Service MCP Server without the need to manually manage dependencies or code.
### MCP Client Configuration
Add service configuration in the MCP client (such as Claude.app)
#### Configuration for Starting with uvx (Recommended)
```json
{
"mcpServers": {
"aippt-mcp": {
"command": "uvx",
"args": ["aippt-mcp"],
"env": {
"AIPPT_APP_ID": "<your application ID>",
"AIPPT_API_SECRET": "<your API key>"
}
}
}
}
```
## Notes
1. **Parameter Specifications**:
- `template_id` must be obtained through the `get_theme_list` tool to ensure it is a valid template ID.
- `sid` task ID must be obtained from the return of the task creation tool (`create_ppt_task`/`create_ppt_by_outline`).
- When uploading documents, either `file_url` or `file_path` must be provided, and the file name must include the correct extension (e.g., `.pdf`/`.docx`).
2. **Task Flow**:
- To generate a PPT, first obtain the template ID (`get_theme_list`), then create a task (`create_ppt_task`/`create_ppt_by_outline`), poll the progress using `get_task_progress`, and obtain the download link after the task is completed.
## Feedback
If you encounter any issues while using the service, please feel free to provide feedback through `issues` or contact the [iFlytek Open Platform Customer Service](https://www.xfyun.cn/support). We encourage you to submit `PRs` to contribute code, and thank you for your support!
Connection Info
You Might Also Like
markitdown
Python tool for converting files and office documents to Markdown.
OpenAI Whisper
OpenAI Whisper MCP Server - 基于本地 Whisper CLI 的离线语音识别与翻译,无需 API Key,支持...
oh-my-opencode
Background agents · Curated agents like oracle, librarians, frontend...
shellward
AI Agent Security Middleware — 8-layer defense against prompt injection,...
Alicization-Town
**⚔️ Alicization Town** is a decentralized, multi-agent pixel sandbox world...
github-stars
A Cloudflare-powered MCP Server for searching GitHub starred repositories...