Google (Gmail, Calendar, Drive) OAuth connector provider for the TAI ecosystem. Pure descriptor data; depends only on tai42-contract.
Project description
tai42-connector-google
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:
- Connectors concept: https://tai42.ai/concepts/connectors
- Build a connector (author guide): https://tai42.ai/guides/authors/connector
- Ecosystem catalog: https://tai42.ai/reference/catalog
What it declares
- Provider
google(OAuth, categorycommunication). - OAuth endpoints — Google's authorize / token / revoke URLs, plus the
access_type=offline+prompt=consentparams Google needs to mint a refresh token on first consent, andinclude_granted_scopes=trueto enable incremental authorization (scopes granted in earlier consents carry forward). - Client credentials by env name —
client_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-services —
gmail,calendar,drive, each a pkg-launched stdio MCP server named byentry_point(tai-mcp-google-gmail/-calendar/-drive). Launch is driven by the provider'spkg_manager(uvx); the engine resolver synthesizes the command. Scope sensitivity varies:gmail.readonlyanddrive.readonlyare restricted scopes (require Google's annual CASA third-party security assessment);gmail.sendandcalendar.eventsare sensitive scopes (require app verification);openid,email, anddrive.fileare 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96f1a00795362734f47505b3eb92e3a05f6a722f07489b301138b3d80c746910
|
|
| MD5 |
96c9c0b9ffe0202b00777ab70ef346d3
|
|
| BLAKE2b-256 |
e743f50ee30082efcc0f9040c1e5286db6edf22acdc206b5845a167b5657a604
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c8b3b0fdf2fac66c029e6d8a9841c89e66feca7cb9b8c2d6094699ff3a33763
|
|
| MD5 |
7023ee89283a9d1e824dfbd98b2adb92
|
|
| BLAKE2b-256 |
9499cee7e24e41f15efb8943ba47b2c84292b16b9e5c17501322063dfdc35c44
|