Skip to main content
Bolly integrates with external services to read your email, manage your calendar, access Google Drive, and connect to any MCP-compatible tool server.

Email

Bolly can send and read emails using SMTP/IMAP or Gmail OAuth.

Gmail (OAuth)

The recommended setup for Gmail. Bolly auto-detects Gmail accounts and uses OAuth for authentication.
  1. Configure Google OAuth credentials in Bolly’s settings
  2. Authorize access through the OAuth flow in the UI
  3. Bolly stores tokens securely and refreshes them automatically

Custom email (SMTP/IMAP)

For non-Gmail providers, configure accounts in ~/.bolly/instances/{slug}/email.toml:
You can configure multiple accounts — Bolly selects the right one per tool call.

Email tools

Google Calendar

Bolly uses the Google Calendar API v3 to manage your events.

Setup

  1. Configure Google OAuth credentials (same as Gmail setup)
  2. Grant calendar permissions through the OAuth flow

Calendar tools

Google Drive

Access your Google Drive files directly from Bolly.

Setup

Same Google OAuth flow as Calendar — grant Drive permissions.

Drive tools

MCP servers

Bolly supports the Model Context Protocol for connecting to external tool servers.

Configuring MCP servers

Add servers to your config.toml:

How MCP tools appear

Once configured, tools from MCP servers are automatically discovered and available as mcp_{server_name}_{tool_name}. For example, a tool called draw from a server named excalidraw would appear as mcp_excalidraw_draw.

Supported transports

MCP tool results

Bolly handles different result types from MCP servers:
  • Text — displayed directly
  • Images — saved locally and passed to the LLM as URL references
  • Resources — documents and blob data
  • Errors — structured error messages

Scheduled tasks

Bolly can schedule tasks for future execution using the schedule_agent tool. Scheduled tasks are stored in ~/.bolly/instances/{slug}/scheduled/ and executed when their time arrives. This is useful for reminders, delayed follow-ups, or periodic checks that don’t fit the heartbeat cycle.