๐ 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.