Skip to main content

An MCP server to interact with GAM7 for Google Workspace administration

Project description

GAM MCP Server

Python 3.13 License PyPI version

This is a Model Context Protocol (MCP) server that empowers an AI IDE, terminal, or agent to perform administrative actions on Google Workspace using an existing local installation of GAM7.

Prerequisites

  • Python 3.10+ (managed via uv or installed globally)
  • GAM7: Installed and fully authenticated with a client_secrets.json and oauth2.txt/oauth2service.json.
  • uv: The ultra-fast Python package installer and resolver.

Environment Variables

The server relies on the following environment variables to locate and run your local GAM installation:

  • GAM_EXECUTABLE_PATH (optional): The absolute path to your local gam executable. If gam is already in your PATH, you can leave this unset, and the server will execute gam directly.
  • GAM_CFG_DIR (optional): The absolute path to the directory containing your GAM configuration and authentication files (e.g. oauth2.txt, client_secrets.json). If left unset, GAM will use its default configuration paths.

Installation and Usage

To run the server with uv:

uv run src/gamcp/server.py

Usage with Claude Desktop

Add the following to your claude_desktop_config.json:

Important: Claude Desktop often does not inherit your full system path. If you used the standalone installer for uv (which places it in ~/.local/bin or ~/.cargo/bin), you will likely receive a "Failed to spawn process" error. To fix this, replace "uv" or "uvx" in the command field with the absolute path to the executable (e.g., "/Users/YOUR_USER/.local/bin/uvx" or "/opt/homebrew/bin/uvx").

Running locally (Development & Cloning)

If you've cloned this repository locally, you can use uv run:

{
  "mcpServers": {
    "gamcp": {
      "command": "/absolute/path/to/uv",
      "args": [
        "--directory",
        "/absolute/path/to/gamcp",
        "run",
        "src/gamcp/server.py"
      ]
    }
  }
}

Easy installation (Global standard)

If you have published this package to PyPI or installed it globally via uv tool install, you can use uvx directly, which runs isolated tools reliably.

{
  "mcpServers": {
    "gamcp": {
      "command": "/absolute/path/to/.local/bin/uvx",
      "args": [
        "gamcp"
      ]
    }
  }
}

Note: In most cases, the MCP server will automatically detect the standard location GAM or GAMADV-XTD3 installers place their configuration and executable files into. If you installed GAM in a non-standard location, you can additionally supply the GAM_EXECUTABLE_PATH or GAM_CFG_DIR variables in the env dictionary block.

Tools

The server exposes a comprehensive suite of tools organized by functional area:

Core Operations

  • run_gam_command(args: list[str]): Executes raw GAM commands. Provide arguments as a list of strings (e.g., ["info", "domain"]). Returns standard output and standard error.
  • validate_gam_command(args: list[str]): Validates the structure of a proposed GAM command without executing it.

Bulk Processing

  • build_bulk_gam_command(...): Constructs a GAM bulk processing command from structured inputs without executing it.
  • bulk_process_from_sheet(...): Executes a GAM bulk command using a Google Sheet as the data source.

Google Drive

  • migrate_folder_to_shared_drive(...): Migrates a Google Drive folder to a Shared Drive.
  • get_permissions_to_sheet(...): Retrieves file/folder/shared drive permissions and writes them to a Google Sheet.

Calendar

  • transfer_calendar_event(...): Transfers a calendar event from one user to another.

Groups

  • create_collaborative_inbox_group(...): Creates a new Google Group configured as a Collaborative Inbox.
  • get_group_permissions_to_sheet(...): Retrieves group members and their roles, outputting to a Google Sheet.

Users

  • create_gws_user(...): Creates a new Google Workspace user.
  • identify_workspace_entity(identifier: str): Identifies a Workspace entity (user, group, alias, etc.) by its email or ID.

Reports

  • get_gmail_log_events(...): Retrieves Gmail log events and optionally writes them to a Google Sheet.
  • get_user_email_count_to_sheet(...): Retrieves email counts for specific labels across multiple users.

Resources

The server provides the following resources:

  • gam://bulk-processing-guide: A reference guide for constructing GAM bulk processing commands. Includes details on source types, processing modes, column substitution syntax, and batch file directives.

Acknowledgements

This project uses documentation derived from the GAM7 project, which is licensed under the Apache License 2.0. GAM MCP Server is not affiliated with or endorsed by the GAM-team.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gamcp-0.1.1.tar.gz (44.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gamcp-0.1.1-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file gamcp-0.1.1.tar.gz.

File metadata

  • Download URL: gamcp-0.1.1.tar.gz
  • Upload date:
  • Size: 44.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gamcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 98f94beac65ff970eb78f1022536e45d6a2523737b47673db17fcf8243a4b7bc
MD5 db61c5b69a022852c2c7ceb148b0bd81
BLAKE2b-256 14f51efd0c98171b79a633a06e3eefa701571734fe2fe974b42b42195bad12c9

See more details on using hashes here.

File details

Details for the file gamcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gamcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gamcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3cfa1d3167c1475b051e84219b6db4055dd8e81f96026e9ed250ee2c44110a05
MD5 b664facff9531ffbc383a85ddf8bea3b
BLAKE2b-256 36dd5ad9c364186bc51be41851440f1b98a0d397c579cce18447ade071a7b559

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page