PowerPoint Translator

PowerPoint Translator

Translates PowerPoint presentations while preserving formatting using Amazon Bedrock models, available as both a standalone tool and a FastMCP service for AI assistants like Amazon Q Developer.

Category
访问服务器

README

PowerPoint Translator using Amazon Bedrock

A powerful PowerPoint translation tool that leverages Amazon Bedrock models for high-quality translation. This service can be used both as a standalone command-line tool and as a FastMCP (Fast Model Context Protocol) service for integration with AI assistants like Amazon Q Developer. It translates PowerPoint presentations while preserving formatting and structure.

Features

  • PowerPoint Translation: Translate text content in PowerPoint presentations
  • Amazon Bedrock Integration: Uses Amazon Bedrock models for high-quality translation
  • Format Preservation: Maintains original formatting, layouts, and styles
  • Standalone & MCP Support: Use as a command-line tool or integrate with AI assistants via FastMCP
  • Multiple Languages: Supports translation between various languages
  • Batch Processing: Can handle multiple slides and text elements efficiently
  • Selective Translation: Translate entire presentations or specific slides

Examples

Translation

The PowerPoint Translator maintains the original formatting while accurately translating content:

<table> <tr> <td><img src="imgs/original-en-complex.png" alt="English" width="450"/></td> <td><img src="imgs/translated-ko-complex.png" alt="Korean Example" width="450"/></td> </tr> <tr> <td align="center"><em>Original presentation slide in English <br> with complex layout</em></td> <td align="center"><em>Same presentation translated to Korean <br> with preserved formatting and layout</em></td> </tr> </table>

Kiro MCP Examples

kiro1

kiro2

kiro3

Usage Examples

Translate entire presentation:

uv run python server.py --translate --input-file presentation.pptx --target-language ko

standalone

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

get-slideinfo

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, ensure your AWS credentials are properly configured. You have several options:

  1. 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
  2. AWS Profile Configuration:

    aws configure --profile your-profile-name
    
  3. 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
    
  4. 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

  1. Clone the repository:

    git clone <repository-url>
    cd ppt-translator
    
  2. Install dependencies using uv (recommended):

    uv sync
    

    Or using pip:

    pip install -r requirements.txt
    
  3. Set up environment variables:

    cp .env.example .env
    

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

Usage

Standalone Command-Line Usage

The PowerPoint Translator can be used directly from the command line:

# Translate entire presentation to Korean
uv run python server.py --translate --input-file orig.pptx --target-language ko

# Translate specific slides (individual slides)
uv run python server.py --translate-slides "1,3,5" --input-file orig.pptx --target-language ko

# Translate slide range
uv run python server.py --translate-slides "2-4" --input-file orig.pptx --target-language ko

# Translate mixed (individual + range)
uv run python server.py --translate-slides "1,3-5,8" --input-file orig.pptx --target-language ko

# Get slide information and previews
uv run python server.py --slide-info --input-file orig.pptx

# Using python directly
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:

# Using uv (recommended)
uv run python server.py --mcp

# Using python directly
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 this:

  • Amazon Q Developer CLI: https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html
  • Kiro: https://kiro.dev

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

3. Verify FastMCP Server

Test that the FastMCP server is working:

# Navigate to your project directory
cd /path/to/ppt-translator

# Test the FastMCP server using uv
uv run python server.py --mcp --test

# Or test using python directly
python server.py --mcp --test

4. 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:

  • translate_powerpoint: Translate an entire PowerPoint presentation

    • Parameters:
      • 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_specific_slides: Translate only specific slides in a PowerPoint presentation

    • Parameters:
      • 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)
  • get_slide_info: Get information about slides in a PowerPoint presentation

    • Parameters:
      • input_file: Path to the PowerPoint file (.pptx)
    • Returns: Overview with slide count and preview of each slide's content
  • get_slide_preview: Get detailed preview of a specific slide's content

    • Parameters:
      • input_file: Path to the PowerPoint file (.pptx)
      • slide_number: Slide number to preview (1-based indexing)
  • list_supported_languages: List all supported target languages for translation

  • list_supported_models: List all supported Amazon Bedrock models

  • get_translation_help: Get help information about using the translator

Configuration

Environment Variables

  • AWS_REGION: AWS region for Bedrock service (default: us-east-1)
  • AWS_PROFILE: AWS profile to use (default: default)
  • DEFAULT_TARGET_LANGUAGE: Default target language for translation (default: ko)
  • BEDROCK_MODEL_ID: Bedrock model ID for translation (default: us.anthropic.claude-3-7-sonnet-20250219-v1:0)
  • MAX_TOKENS: Maximum tokens for translation requests (default: 4000)
  • TEMPERATURE: Temperature setting for AI model (default: 0.1)
  • ENABLE_POLISHING: Enable translation polishing (default: true)
  • BATCH_SIZE: Number of texts to process in a batch (default: 20)
  • CONTEXT_THRESHOLD: Number of texts to trigger context-aware translation (default: 5)
  • DEBUG: Enable debug logging (default: 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

  1. AWS Credentials Not Found:

    • Ensure AWS credentials are properly configured
    • Check AWS CLI configuration: aws configure list
  2. Bedrock Access Denied:

    • Verify your AWS account has access to Bedrock
    • Check if the specified model is available in your region
  3. 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
  4. PowerPoint File Issues:

    • Ensure the input file is a valid PowerPoint (.pptx) file
    • Check file permissions for both input and output paths
  5. 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:

# Install dependencies
uv sync

# Run the server
uv run python server.py --mcp

# Run tests
uv run python server.py --mcp --test

# Add new dependencies
uv add package-name

# Update dependencies
uv sync --upgrade

License

This project is licensed under the MIT License - see the LICENSE file for details.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选