Metadata-Version: 2.4
Name: barie-google-slides-mcp
Version: 0.1.1
Summary: Google Slides MCP Server for managing presentations via the Model Context Protocol
Author-email: Barie <support@barie.ai>
License: MIT
Keywords: google-api,google-slides,mcp,model-context-protocol
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Requires-Dist: google-api-python-client>=2.130.0
Requires-Dist: google-auth-oauthlib>=1.2.0
Requires-Dist: google-auth>=2.29.0
Requires-Dist: mcp>=0.9.0
Requires-Dist: pydantic>=2.0.0
Description-Content-Type: text/markdown

# Google Slides MCP Server

An MCP server for managing Google Slides presentations, integrating seamlessly with AI assistants using the Model Context Protocol.

## Features

- **List Presentations**: Search and list presentations via Drive API.
- **Get Presentation**: Retrieve full presentation structure (slides, shapes, text).
- **Create Presentation**: Create new presentations.
- **Batch Update**: Modify presentations (add slides, edit content).
- **Page Details**: Get specific slide content.
- **Thumbnails**: Generate thumbnail URLs for slides.

## Scope

This server focuses on Google Slides presentation management through MCP tools:

- Read/list presentations from Google Drive.
- Read full presentation/slide details.
- Create new presentations.
- Perform Slides API `batchUpdate` operations.
- Generate slide thumbnails.

It does not implement custom business workflows on top of Slides; callers provide valid Google Slides API request payloads (especially for `batch_update_presentation`).

## Installation

### Prerequisites

- Python 3.9 or higher.
- A Google Cloud Project with the Slides and Drive APIs enabled.
- OAuth2 credentials (Client ID and Client Secret).
- OAuth2 tokens with required scopes.

### Required OAuth Scopes

- `https://www.googleapis.com/auth/drive.readonly`
- `https://www.googleapis.com/auth/presentations`

You can optionally pass scopes through `--scopes` as a JSON array string.

### Local Setup

1. Install dependencies:
   ```bash
   pip install -e .
   ```

2. Run the server:
   ```bash
   python main.py --access-token <TOKEN> --refresh-token <REFRESH_TOKEN> --client-id <CLIENT_ID> --client-secret <CLIENT_SECRET>
   ```

## Configuration

Add the following to your MCP host configuration (e.g., `mcp-config.json`):

```json
{
  "mcpServers": {
    "barie-google-slides-mcp": {
      "command": "uvx",
      "args": [
        "barie-google-slides-mcp",
        "--access-token",
        "YOUR_ACCESS_TOKEN",
        "--refresh-token",
        "YOUR_REFRESH_TOKEN",
        "--client-id",
        "YOUR_CLIENT_ID",
        "--client-secret",
        "YOUR_CLIENT_SECRET"
      ]
    }
  }
}
```

Optional:

- `--expiry`: token expiry timestamp in ISO format (for example `2026-05-07T00:00:00Z`).
- `--scopes`: JSON array string of scopes. If omitted, server defaults are used.

## Tools

- `list_presentations`: Search and list presentations.
- `get_presentation`: Get presentation content.
- `create_presentation`: Create a new presentation.
- `batch_update_presentation`: Update presentation structure/content.
- `get_page`: Get specific slide content.
- `get_page_thumbnail`: Get thumbnail URL for a slide.

## Notes

- `list_presentations.pageSize` supports values from 1 to 100.
- `batch_update_presentation.requests` must follow Google Slides API `presentations.batchUpdate` request objects.

## License

MIT
