Metadata-Version: 2.4
Name: barie-google-meet-mcp
Version: 0.1.0
Summary: Google Meet MCP Server for managing meeting spaces and records via the Model Context Protocol
Author-email: Barie <support@barie.ai>
License: MIT
Keywords: google-api,google-meet,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 Meet MCP Server

An MCP server for managing Google Meet spaces and conference artifacts, integrating seamlessly with AI assistants using the Model Context Protocol.

## Features

- **Create Space**: Create a new Google Meet space with optional access configuration.
- **Get Space**: Retrieve metadata for a single Meet space.
- **Update Space**: Update space configuration using `updateMask` (supports `space` or `config` input style).
- **List Conference Records**: Browse historical conference records.
- **Get Conference Record**: Fetch a single conference record by resource name.
- **List Recordings**: List recording artifacts for a conference record.
- **List Transcripts**: List transcript artifacts for a conference record.

## Installation

### Prerequisites

- Python 3.9 or higher.
- A Google Cloud Project with the **Google Meet API** enabled.
- OAuth2 credentials (Client ID and Client Secret).
- OAuth scopes:
  - `https://www.googleapis.com/auth/meetings.space.created`
  - `https://www.googleapis.com/auth/meetings.space.readonly`

### 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-meet-mcp": {
      "command": "uvx",
      "args": [
        "barie-google-meet-mcp",
        "--access-token",
        "YOUR_ACCESS_TOKEN",
        "--refresh-token",
        "YOUR_REFRESH_TOKEN",
        "--client-id",
        "YOUR_CLIENT_ID",
        "--client-secret",
        "YOUR_CLIENT_SECRET"
      ]
    }
  }
}
```

## Tools

- `create_space`: Create a new Meet space. Optional `config.accessType` and `config.entryPointConfig.accessModel` are supported.
- `get_space`: Get space details by `name` (e.g., `spaces/AAAAMMMMM`).
- `update_space`: Update space settings by `name` and `updateMask`, using either `space` or `config` payload style.
- `list_conference_records`: List conference records with optional `pageSize`, `pageToken`, and `filter`.
- `get_conference_record`: Get conference record details by `name` (e.g., `conferenceRecords/BBBBBBBBB`).
- `list_recordings`: List recordings for a conference record by `parent`.
- `list_transcripts`: List transcripts for a conference record by `parent`.

## Update Tool Behavior

`update_space` supports two input modes:

1. Update with full `space` payload:
```json
{
  "name": "spaces/AAAAMMMMM",
  "space": {
    "config": {
      "accessType": "TRUSTED"
    }
  },
  "updateMask": "config.accessType"
}
```

2. Update with convenience `config` payload:
```json
{
  "name": "spaces/AAAAMMMMM",
  "config": {
    "accessType": "TRUSTED"
  },
  "updateMask": "config.accessType"
}
```

Notes:
- Provide either `space` or `config`.
- Common natural variants are normalized (for example `open` to `OPEN`, `anyoneWithLink` to `ANYONE_WITH_LINK`).
- Optional nullable fields are accepted for pagination/filter inputs.

## License

MIT
