Skip to main content
Glama
zhuermu

PowerPoint Translator MCP Service

by zhuermu
README.md
# PowerPoint Translator MCP Service

A Model Context Protocol (MCP) service that provides PowerPoint translation capabilities using AWS Bedrock models.

## Features

- Translate PowerPoint presentations to multiple languages
- Preserve formatting during translation
- Support for AWS Bedrock Nova models
- Intelligent handling of proper nouns, brand names, and special content
- Full MCP protocol compliance with proper initialization and tool handling
- Fallback implementation when MCP library is not available

## Supported Languages

- Simplified Chinese (zh-CN)
- Traditional Chinese (zh-TW)
- English (en)
- Japanese (ja)
- Korean (ko)
- French (fr)
- German (de)
- Spanish (es)

## Prerequisites

- Python 3.8+
- AWS account with Bedrock access
- AWS credentials configured (via `aws configure` or environment variables)

## Installation

### Quick Setup

```bash
# Clone the repository
git clone https://github.com/yourusername/mcpppttranslator.git
cd mcpppttranslator

# Install dependencies
python server.py --install-deps

# Or use uv for faster installation
python server.py --install-deps --use-uv
```

### Virtual Environment Setup (Recommended)

```bash
# Create virtual environment with uv
python server.py --install-deps --use-uv --venv

# Or specify custom path
python server.py --install-deps --use-uv --venv --venv-path /path/to/custom/venv
```

## MCP Configuration

### Option 1: AWS CLI Configuration (Recommended)

First, configure your AWS credentials:
```bash
aws configure
```

Then add to your Amazon Q configuration:

```json
{
  "mcpServers": {
    "ppt-translator": {
      "timeout": 300,
      "type": "stdio",
      "command": "python",
      "args": [
        "/path/to/mcpppttranslator/server.py",
        "--mcp"
      ],
      "env": {
        "AWS_REGION": "us-east-1",
        "DEFAULT_TARGET_LANGUAGE": "zh-CN"
      }
    }
  }
}
```

### Option 2: Direct Credential Configuration

```json
{
  "mcpServers": {
    "ppt-translator": {
      "timeout": 300,
      "type": "stdio",
      "command": "python",
      "args": [
        "/path/to/mcpppttranslator/server.py",
        "--mcp"
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "your-access-key",
        "AWS_SECRET_ACCESS_KEY": "your-secret-key",
        "AWS_REGION": "us-east-1",
        "DEFAULT_TARGET_LANGUAGE": "zh-CN"
      }
    }
  }
}
```

## Usage

### With Amazon Q

Once configured, you can use natural language commands:

```
Translate my presentation.pptx to Japanese using the Nova model
```

### Command Line Usage

```bash
# Run in MCP mode
python server.py --mcp

# Direct translation
python server.py --translate --input-file presentation.pptx --target-language ja

# List supported languages
python server.py --list-languages
```

## Available Tools

1. **translate_ppt** - Translate a PowerPoint document
   - `input_file`: Path to the input PowerPoint file (required)
   - `target_language`: Target language code (default: zh-CN)
   - `output_file`: Path to save the translated file (optional)
   - `translation_method`: Translation method, 'nova' or 'claude' (default: nova)

2. **list_supported_languages** - List all supported target languages

## Command Line Arguments

- `--mcp`: Run in MCP mode
- `--translate`: Translate a PowerPoint file
- `--input-file`: Path to the input PowerPoint file
- `--target-language`: Target language code
- `--output-file`: Path to save the translated file
- `--model-id`: Translation model ID (choices: 'amazon.nova-micro-v1:0', 'amazon.nova-lite-v1:0')
- `--list-languages`: List supported languages
- `--install-deps`: Install required dependencies
- `--use-uv`: Use uv package manager instead of pip
- `--venv`: Create and use a virtual environment with uv
- `--venv-path`: Path for the virtual environment (default: ./venv)

## Testing

Test the MCP server functionality:

```bash
python test_mcp.py
```

## Troubleshooting

### Common Issues

1. **AWS Credentials**: Ensure AWS credentials are properly configured via `aws configure` or environment variables.

2. **Missing Dependencies**: Run `python server.py --install-deps` to install required packages.

3. **MCP Protocol Errors**: The server implements full MCP protocol compliance. If you encounter initialization errors, ensure you're using a compatible MCP client.

4. **File Permissions**: Ensure the server.py file has execute permissions: `chmod +x server.py`

## Development

### Local Development

1. Clone and setup:
   ```bash
   git clone https://github.com/yourusername/mcpppttranslator.git
   cd mcpppttranslator
   python server.py --install-deps --use-uv --venv
   ```

2. Test the server:
   ```bash
   python test_mcp.py
   ```

### MCP Protocol Compliance

This server implements the full MCP protocol specification including:

- Proper `initialize` method handling
- Standard `tools/list` and `tools/call` methods
- Correct JSON-RPC 2.0 response formatting
- Error handling and graceful degradation
- Backward compatibility with legacy MCP methods

## License

MIT