Skip to main content

Google (Gmail, Calendar, Drive) OAuth connector provider for the TAI ecosystem. Pure descriptor data; depends only on tai42-contract.

Project description

tai42-connector-google

CI License: Apache 2.0

The Google OAuth connector provider for the TAI ecosystem — Gmail, Calendar, and Drive over stdio MCP servers.

A pure plugin: its only dependency is tai42-contract. It declares one ProviderDescriptor and registers it through the tai42_app handle when the manifest loads tai42_connector.google.core.connector. It carries no OAuth, probe, or launch code — the skeleton connector engine drives all of that generically, keyed off the descriptor. It never imports the skeleton.

The TAI ecosystem

TAI is an open-source runtime for MCP tools, agents, and workflows. A connector provider is a pure-data plugin describing how the runtime connects a third-party service — OAuth endpoints, scopes, and the MCP servers that expose it as tools. This package is one such provider (Google); a sibling backs the same contract for Atlassian (tai42-connector-atlassian). The ecosystem is open-ended: any package can declare a provider, so this repo is this provider's own full doc home, and the documentation site covers the platform-level story:

What it declares

  • Provider google (OAuth, category communication).
  • OAuth endpoints — Google's authorize / token / revoke URLs, plus the access_type=offline + prompt=consent params Google needs to mint a refresh token on first consent, and include_granted_scopes=true to enable incremental authorization (scopes granted in earlier consents carry forward).
  • Client credentials by env nameclient_id_env=CONNECTORS_GOOGLE_CLIENT_ID, client_secret_env=CONNECTORS_GOOGLE_CLIENT_SECRET. The engine resolves these from the process environment at connect time.
  • Sub-servicesgmail, calendar, drive, each a pkg-launched stdio MCP server named by entry_point (tai-mcp-google-gmail / -calendar / -drive). Launch is driven by the provider's pkg_manager (uvx); the engine resolver synthesizes the command. Scope sensitivity varies: gmail.readonly and drive.readonly are restricted scopes (require Google's annual CASA third-party security assessment); gmail.send and calendar.events are sensitive scopes (require app verification); openid, email, and drive.file are non-sensitive.

How it loads

Add tai42_connector.google.core.connector to the manifest. Importing it calls tai42_app.connectors.register_connector(descriptor) through the bound handle — the same manifest + handle mechanism as the storage / backend plugins, but a plain call because a connector ships pure data, not behavior.

Install

Requires Python 3.13+. Install from PyPI into the environment that runs the server:

uv add tai42-connector-google

Or from source — clone this repo and add it as an editable dependency:

git clone https://github.com/tai42ai/tai-connector-google   # next to your app checkout
cd /path/to/your/app
uv add --editable ../tai-connector-google

Development

uv venv --python 3.13
uv pip install --no-sources --group dev --editable .
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync pyright
uv run --no-sync pytest

License

Apache-2.0. See LICENSE and NOTICE.

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

tai42_connector_google-0.1.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

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

tai42_connector_google-0.1.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tai42_connector_google-0.1.1.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","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 tai42_connector_google-0.1.1.tar.gz
Algorithm Hash digest
SHA256 96f1a00795362734f47505b3eb92e3a05f6a722f07489b301138b3d80c746910
MD5 96c9c0b9ffe0202b00777ab70ef346d3
BLAKE2b-256 e743f50ee30082efcc0f9040c1e5286db6edf22acdc206b5845a167b5657a604

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tai42_connector_google-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","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 tai42_connector_google-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6c8b3b0fdf2fac66c029e6d8a9841c89e66feca7cb9b8c2d6094699ff3a33763
MD5 7023ee89283a9d1e824dfbd98b2adb92
BLAKE2b-256 9499cee7e24e41f15efb8943ba47b2c84292b16b9e5c17501322063dfdc35c44

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