Integrations
Integrations connect Personal Agent to the outside world: your email, calendars, chat channels, project trackers, web search, weather, smart-home gear and more. You manage your own under Settings → Integrations.
Setting one up
Each integration is added through a typed config flow rendered right in Settings - fill in the fields it asks for (with the right pickers for entities, dates, colors and so on) and you’re done. Keys and secrets are envelope-encrypted at rest and never returned, and you can reconfigure an entry in place without restarting anything. Some integrations need a provider login instead of a pasted key: those show a Connect button that opens the provider’s sign-in, after which tokens are stored encrypted and refreshed automatically. Some integrations support multiple instances (for example, two email accounts); others are single-instance.
You can also reload an entry (clear its error state and re-sync) after an upstream blip, enable or disable an instance, and remove it. You’ll see each one’s health at a glance - healthy shows nothing, otherwise a warning (Connection lost) or an error (Not reachable) with a tooltip. For message channels there’s a per-account Inbox triage toggle (see Inbox); turning it off still syncs the messages, it just skips triage.
What integrations bring
Depending on the integration, you get any of:
- Tools the agent can call - search the web, create a GitHub issue, add a calendar event, fetch a page.
- Entities with live state and history, which become part of memory and power dashboards.
- Inbound messages that flow into your Inbox.
- Skills and specialist agents that install and remove together with the integration.
- Cards and surfaces an integration contributes (for example, the weather card or the TradingView chart).
Capability providers
Some capabilities are generic - the agent just asks to “search the web” and the highest-priority provider you’ve configured fulfils it. So whether you use Tavily, Brave or DuckDuckGo for web search (or Met.no for weather), the assistant calls one stable tool; swap the provider and nothing else changes. These ambient providers are drawn from all your enabled integrations, independent of which integration toolsets a given chat has selected.
A few of the built-in integrations
| Integration | What it brings |
|---|---|
| Inbox triage with draft replies you approve - the canonical message channel | |
| Signal / WhatsApp / Matrix / Zulip | More inbox channels |
| GitHub / GitLab | Pull/merge requests and issues, plus create/review/comment tools; GitHub also syncs PRs and issues for chosen repos as searchable entities via a webhook you can trigger workflows from |
| Web search | Tavily / Brave / DuckDuckGo, interchangeable |
| Calendar / projects | CalDAV, OpenProject, TED (EU tenders) |
| Sensors & home | Phone sensors, Shelly, HTTP fetch, Met.no weather |
| Other | TradingView charts, text tools |
New integrations can be dropped in by your operator without changing the core app, so the list on your instance may be longer than this.
MCP servers & external APIs
Beyond the bundled integrations, you can plug in your own tools. Both are added the same way as any integration, under Settings → Integrations:
- MCP server - register a Model Context Protocol server by URL, with an optional static
auth header (sent as
Authorization). Supports multiple instances. - OpenAPI API - point at an OpenAPI spec URL and the API’s operations become tools
directly, no MCP server needed. Options: a tool-name prefix, read-only (GET),
an operation allowlist (specific
operationIds), a base-URL override, and an optional auth header.
Self-registered MCP servers and OpenAPI APIs are treated as untrusted: their tool output can’t drive high-privilege first-party or device tools in the same run, so a rogue server can’t escalate. Both are selectable per chat like any other tools.
!!! note “Lots of tools? They’re discovered on demand”
When a chat carries enough integration and MCP toolsets, the agent doesn’t load every
tool description up front. Past a threshold it switches to progressive disclosure: it
gets a search_tools capability (the provider’s native tool search where available) and
pulls in the full definitions of the specific tools it needs for the task. This keeps the
prompt lean (and cheaper) without hiding any capability, so you can connect as many
integrations as you like.
!!! info “Governance” You can set an integration up just for yourself or share it with a group you’re an editor or owner of. Admins can additionally enable or disable each integration platform-wide, restrict which scopes (user / group / org / global) may configure it, and set up integrations at org or global scope. Each integration also declares a required model trust tier, so it only runs on providers cleared for its data. See Security & privacy and the Admin console.