Skip to main content
Connect CianaParrot — a Telegram-based AI agent — to Google Calendar and Gmail through Civic’s MCP Gateway using Streamable HTTP transport.
Zero credential management: Civic Hub handles all OAuth tokens, token refresh, guardrails, audit logging, and instant revocation server-side. No Google credentials are stored in your project.

Prerequisites

Environment Variables

Get Your Credentials

How to generate a Civic token and configure toolkit URL parameters

Configuration

CianaParrot uses a config.yaml file for MCP server configuration. Point it at Civic Hub using Streamable HTTP transport:
config.yaml
This single connection gives your Telegram bot access to all tools configured in your Civic toolkit — no per-service credentials needed.

Running with Docker

Create a .env file with the variables above, then:
The bot starts listening for Telegram messages. The first time it accesses Google Calendar or Gmail, Civic sends an OAuth approval link to authorize access (persists for 30 days).

Architecture

Civic Hub sits between your agent and Google APIs, enforcing guardrails and logging every tool call for audit. Set these in Civic Chat to protect against unintended actions:

Configure Guardrails

Set up blocking rules via Civic Chat or the UI

Production Configuration

Lock to a Toolkit

For production bots, always lock to a specific toolkit:
When a profile is specified, the session is locked by default — the agent cannot switch toolkits or modify its own guardrails.

Pre-load Skills

Load specific Skills at session start:

Reference Implementation

The full reference implementation with Docker Compose, configuration, and deployment patterns: github.com/civicteam/ciana-parrot-reference-implementation-civic

Next Steps

Agent Deployment

Production deployment guide: profile locking, URL params, authentication

Guardrails

Constrain what tools your agent can use

Audit Trail

Query what your agent did via Civic Chat

Get Credentials

Token generation and URL parameter reference