๐ PowerPoint Translator using Amazon Bedrock
A powerful PowerPoint translation tool that harnesses Amazon Bedrock models to deliver high - quality translations. This service can be utilized as a standalone command - line tool or as a FastMCP (Fast Model Context Protocol) service for seamless integration with AI assistants such as Amazon Q Developer. It ensures that PowerPoint presentations are translated while retaining their formatting and structure.
โจ Features
- PowerPoint Translation: Translate the text content within PowerPoint presentations.
- Amazon Bedrock Integration: Leverage Amazon Bedrock models for top - notch translation quality.
- Format Preservation: Keep the original formatting, layouts, and styles intact.
- Standalone & MCP Support: Use it as a command - line tool or integrate it with AI assistants via FastMCP.
- Multiple Languages: Support translation between a wide range of languages.
- Batch Processing: Efficiently handle multiple slides and text elements.
- Selective Translation: Translate entire presentations or specific slides as needed.
๐ป Usage Examples
Translation
The PowerPoint Translator maintains the original formatting while accurately translating content:
Original presentation slide in English with complex layout |
Same presentation translated to Korean with preserved formatting and layout |
Kiro MCP Examples
Command - line Usage
Translate entire presentation:
uv run python server.py --translate --input-file presentation.pptx --target-language ko
Translate specific slides:
uv run python server.py --translate-slides "1,3,5" --input-file presentation.pptx --target-language ja
Get slide information:
uv run python server.py --slide-info --input-file presentation.pptx
๐ฆ Installation
Prerequisites
- Python 3.11 or higher
- AWS Account with Bedrock access
- AWS CLI configured with appropriate credentials
- Access to Amazon Bedrock models (e.g., Claude, Nova, etc.)
AWS Credentials Setup
Before using this service, make sure your AWS credentials are correctly configured. You have several options:
-
AWS CLI Configuration (Recommended):
aws configure
This will prompt you for:
- AWS Access Key ID
- AWS Secret Access Key
- Default region name
- Default output format
-
AWS Profile Configuration:
aws configure --profile your-profile-name
-
Environment Variables (if needed):
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-east-1
-
IAM Roles (when running on EC2 instances)
The service will automatically use your configured AWS credentials. You can specify which profile to use in the .env
file.
Installation Steps
-
Clone the repository:
git clone <repository-url>
cd ppt-translator
-
Install dependencies using uv (recommended):
uv sync
Or using pip:
pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env
Edit the .env
file with your configuration:
# AWS Configuration
AWS_REGION=us-east-1
AWS_PROFILE=default
# Translation Configuration
DEFAULT_TARGET_LANGUAGE=ko
BEDROCK_MODEL_ID=us.anthropic.claude-3-7-sonnet-20250219-v1:0
# Translation Settings
MAX_TOKENS=4000
TEMPERATURE=0.1
ENABLE_POLISHING=true
BATCH_SIZE=20
CONTEXT_THRESHOLD=5
# Debug Settings
DEBUG=false
Note: AWS credentials (Access Key ID and Secret Access Key) are not needed in the .env
file if you have already configured them using aws configure
. The service will automatically use your AWS CLI credentials.
๐ Documentation
Usage
Standalone Command - Line Usage
The PowerPoint Translator can be used directly from the command line:
uv run python server.py --translate --input-file orig.pptx --target-language ko
uv run python server.py --translate-slides "1,3,5" --input-file orig.pptx --target-language ko
uv run python server.py --translate-slides "2-4" --input-file orig.pptx --target-language ko
uv run python server.py --translate-slides "1,3-5,8" --input-file orig.pptx --target-language ko
uv run python server.py --slide-info --input-file orig.pptx
python server.py --translate --input-file orig.pptx --target-language ko
python server.py --translate-slides "1,3" --input-file orig.pptx --target-language ko
FastMCP Server Mode (for AI Assistant Integration)
Start the FastMCP server for integration with AI assistants like Amazon Q Developer:
uv run python server.py --mcp
python server.py --mcp
FastMCP Setup (Amazon Q Developer and Kiro)
If you haven't already installed Amazon Q Developer or Kiro, please refer to these links:
- Amazon Q Developer CLI: https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html
- Kiro: https://kiro.dev
Configure FastMCP Server
Create or update your Q Developer FastMCP configuration file:
Kiro: User Level ~/.kiro/settings/mcp.json
Amazon Q Developer:
- On macOS/Linux:
~/.aws/amazonq/mcp.json
- On Windows:
%APPDATA%\amazonq\mcp.json
Add the PowerPoint Translator FastMCP server configuration:
Using uv:
{
"mcpServers": {
"ppt-translator": {
"command": "uv",
"args": ["run", "/path/to/ppt-translator/fastmcp_server.py"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "default",
"BEDROCK_MODEL_ID": "us.anthropic.claude-3-7-sonnet-20250219-v1:0"
},
"disabled": false,
"autoApprove": [
"translate_powerpoint",
"get_slide_info",
"get_slide_preview",
"translate_specific_slides"
]
}
}
}
Alternative configuration using python directly:
{
"mcpServers": {
"ppt-translator": {
"command": "python",
"args": ["/path/to/ppt-translator/fastmcp_server.py"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "default",
"BEDROCK_MODEL_ID": "us.anthropic.claude-3-7-sonnet-20250219-v1:0"
},
"disabled": false,
"autoApprove": [
"translate_powerpoint",
"get_slide_info",
"get_slide_preview",
"translate_specific_slides"
]
}
}
}
Important: Replace /path/to/ppt-translator/
with the actual path to your cloned repository.
Verify FastMCP Server
Test that the FastMCP server is working:
cd /path/to/ppt-translator
uv run python server.py --mcp --test
python server.py --mcp --test
Use PowerPoint Translation
Once connected, you can use commands like (User input does not have to be in English):
Translate original.pptx to Korean
Please translate slides 10 to 13 of original.pptx into Japanese.
Available FastMCP Tools
The FastMCP server provides the following tools:
Tool Name |
Parameters |
Function |
translate_powerpoint |
input_file : Path to the input PowerPoint file (.pptx); target_language : Target language code (default: 'ko'); output_file : Path for the translated output file (optional, auto - generated); model_id : Amazon Bedrock model ID (default: Claude 3.7 Sonnet); enable_polishing : Enable natural language polishing (default: true) |
Translate an entire PowerPoint presentation |
translate_specific_slides |
input_file : Path to the input PowerPoint file (.pptx); slide_numbers : Comma - separated slide numbers to translate (e.g., "1,3,5" or "2 - 4,7"); target_language : Target language code (default: 'ko'); output_file : Path for the translated output file (optional, auto - generated); model_id : Amazon Bedrock model ID (default: Claude 3.7 Sonnet); enable_polishing : Enable natural language polishing (default: true) |
Translate only specific slides in a PowerPoint presentation |
get_slide_info |
input_file : Path to the PowerPoint file (.pptx) |
Get information about slides in a PowerPoint presentation, returns overview with slide count and preview of each slide's content |
get_slide_preview |
input_file : Path to the PowerPoint file (.pptx); slide_number : Slide number to preview (1 - based indexing) |
Get detailed preview of a specific slide's content |
list_supported_languages |
None |
List all supported target languages for translation |
list_supported_models |
None |
List all supported Amazon Bedrock models |
get_translation_help |
None |
Get help information about using the translator |
Configuration
Environment Variables
Variable Name |
Description |
Default Value |
AWS_REGION |
AWS region for Bedrock service |
us-east-1 |
AWS_PROFILE |
AWS profile to use |
default |
DEFAULT_TARGET_LANGUAGE |
Default target language for translation |
ko |
BEDROCK_MODEL_ID |
Bedrock model ID for translation |
us.anthropic.claude-3-7-sonnet-20250219-v1:0 |
MAX_TOKENS |
Maximum tokens for translation requests |
4000 |
TEMPERATURE |
Temperature setting for AI model |
0.1 |
ENABLE_POLISHING |
Enable translation polishing |
true |
BATCH_SIZE |
Number of texts to process in a batch |
20 |
CONTEXT_THRESHOLD |
Number of texts to trigger context - aware translation |
5 |
DEBUG |
Enable debug logging |
false |
Supported Languages
The service supports translation between major languages including:
- English (en)
- Korean (ko)
- Japanese (ja)
- Chinese Simplified (zh)
- Chinese Traditional (zh - tw)
- Spanish (es)
- French (fr)
- German (de)
- Italian (it)
- Portuguese (pt)
- Russian (ru)
- Arabic (ar)
- Hindi (hi)
- And many more...
๐ง Troubleshooting
Common Issues
-
AWS Credentials Not Found:
- Ensure AWS credentials are properly configured.
- Check AWS CLI configuration:
aws configure list
.
-
Bedrock Access Denied:
- Verify your AWS account has access to Bedrock.
- Check if the specified model is available in your region.
-
FastMCP Connection Issues:
- Verify the path in mcp.json is correct.
- Check that Python and dependencies are properly installed.
- Review logs in Q Developer for error messages.
- Test the server:
uv run python server.py --mcp --test
.
-
PowerPoint File Issues:
- Ensure the input file is a valid PowerPoint (.pptx) file.
- Check file permissions for both input and output paths.
-
Module Import Errors:
- Use
uv run
to ensure proper virtual environment activation.
- Install dependencies:
uv sync
.
Debug Mode
Enable debug logging:
uv run python server.py --mcp --debug
Development
Project Structure
ppt-translator/
โโโ server.py # Main server entry point (standalone & MCP)
โโโ fastmcp_server.py # FastMCP server implementation
โโโ ppt_handler.py # PowerPoint processing logic
โโโ translation_engine.py # Translation service
โโโ bedrock_client.py # Amazon Bedrock client
โโโ config.py # Configuration management
โโโ dependencies.py # Dependency management
โโโ text_utils.py # Text processing utilities
โโโ prompts.py # Translation prompts
โโโ requirements.txt # Python dependencies
โโโ pyproject.toml # Project configuration (uv)
โโโ imgs/ # Example images and screenshots
Using uv for Development
This project uses uv
for dependency management:
uv sync
uv run python server.py --mcp
uv run python server.py --mcp --test
uv add package-name
uv sync --upgrade
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.