Integrations

Connect your accounts once and the agent can act in them — read a Slack thread, draft a Gmail reply, open a GitHub PR, update a Notion page, file a Linear issue, or push a HubSpot deal. Aura Workshop reaches 100+ services two ways: direct OAuth for a curated set of first-party providers, and the Composio cloud path for the long tail of ~100 toolkits. Both land connected accounts in the same place, and both turn into tools the agent picks up automatically. Beyond hosted integrations, you can wire in any MCP server — stdio or HTTP — to add tools of your own.

Connecting an account

Everything lives under Settings → Integrations. Each provider shows a Connect button; connecting is a standard OAuth consent flow, so you never paste API keys for supported providers.

  1. Click Connect on a provider.
  2. Your browser opens that provider's consent screen.
  3. Approve the requested scopes.
  4. Aura stores the connection and the token auto-injects into any matching skills, MCP servers, and bot listeners.

Disconnecting revokes the token and un-injects it everywhere it was in use. Connections are recorded in the connections table with a source of local or cloud depending on the mode you connected through.

Callback URL. Direct-OAuth flows redirect to http://localhost:18800/oauth/callback (some providers use the secureinsights.ai HTTPS bouncer instead). The client IDs for supported providers ship with the app — there is nothing to register yourself.

Local vs. Cloud (oauth_mode)

The oauth_mode setting decides how a connection is brokered. Both modes populate the same connections table and feed the same consumers — the difference is where the token lives and how the toolset is exposed.

Local (direct OAuth)Cloud (Composio)
Coverage 18 first-party providers with our own OAuth client IDs. ~100 toolkits through Composio's managed auth.
Where the token lives Your encrypted local database (access + refresh tokens, AES-256-GCM). Held by Composio; Aura keeps only a thin reference row.
How tools appear Tokens injected into skills / HTTP MCP headers at run time; refreshed in the background. The toolkit is mounted as an MCP server per account, scoped by an x-composio-user-id header.
Auth style PKCE (S256) with a state token; 10-minute flow TTL. Composio-hosted consent URL; connection resolved on return.

Pick whichever fits: Local mode keeps credentials entirely on your machine; Cloud mode trades that for far broader coverage without registering apps yourself. You can use both at once — the mode is chosen per connection.

Supported services

The direct-OAuth providers ship with the app and connect fully locally:

GroupProviders
Tier 1 Google (Gmail, Calendar, Drive, Docs/Sheets), Microsoft 365, Slack, Discord, GitHub, Linear, Notion, Atlassian (Jira / Confluence)
Tier 2 Zoom, HubSpot, Salesforce, Pipedrive, Intercom, Asana, ClickUp, Todoist, Harvest, Airtable

The Composio cloud path adds roughly 100 more toolkits across communication, project management, CRM, calendars, knowledge bases, files, and developer tools — the same surface the bundled skills draw on. Toolkits split into managed-OAuth, API-key, and connect-on-demand styles, and Aura picks the right connect flow for each.

How connections become tools

A connection is only useful if the agent can call it. Aura wires each connection into three kinds of consumer, automatically:

  • Skills — a skill's YAML frontmatter can declare requires_connection: slack (or any provider id). At run time the framework finds the active connection and injects it — as environment variables for stdio/bash steps or an Authorization: Bearer header for HTTP calls — so the skill just works once the account is connected. See Skills & Agent Tools.
  • MCP servers — a server can also declare requires_connection; its tools inherit the injected token. In Cloud mode, connecting a Composio toolkit is mounting an MCP server for that account, so its tools appear in the agent's toolset with no extra config.
  • Listeners — bot integrations (Slack, Discord, Telegram, …) resolve their bot token from the connection at start time, and for Composio-managed bots Aura auto-mounts the bot's own toolkit so the agent can act as that bot. See Automation & Workflows.

Background token refresh keeps everything live — direct-OAuth tokens are refreshed shortly before they expire, so long-running agents and schedules don't fall over on an expired token.

You never call these by hand. As with every tool in Aura, you describe the outcome; the agent classifies the task and pulls in the connected integration it needs. See Workspace & Tasks for how tasks and tools flow.

MCP servers

Model Context Protocol (MCP) servers extend the agent with tools beyond the built-ins by connecting to external services and data sources. Add and manage them under Settings → MCPs. Aura speaks two transports:

TransportHow it works
stdio Launches a local process (Node.js, Python, a compiled binary) and speaks JSON-RPC over stdin/stdout. A rolling stderr buffer is kept so a crash surfaces the real traceback, not just a "broken pipe".
HTTP POSTs to a remote MCP endpoint and parses JSON or SSE. Auth resolves from custom headers, then an OAuth token, then a session id, with a 30-second connect/request timeout.

Adding a server

  1. Go to Settings → MCPs and click Add MCP Server.
  2. Name it and choose the transport.
  3. stdio: enter the launch command (e.g. npx) and its arguments, plus any environment variables to pass to the child process.
  4. HTTP: enter the server URL and, optionally, OAuth credentials or custom headers (Bearer token, API key, etc.).
  5. Pick an isolation mode (see below) and click Connect. A status dot shows connected (green) or disconnected (red).

On connect, tool definitions are cached so they appear instantly in the tool picker without re-querying the server each task. You can also import server configs from JSON (standard MCP schema) to share setups across machines or teammates.

# Add an MCP server (stdio transport)
curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "File System MCP",
    "transport": "stdio",
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"],
    "env": {},
    "isolation": "shared"
  }' \
  http://localhost:18800/api/mcp/servers

# Add an MCP server (HTTP transport with custom auth header)
curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Cloud MCP",
    "transport": "http",
    "url": "https://mcp.example.com/mcp",
    "headers": { "Authorization": "Bearer my-token" },
    "isolation": "per_task"
  }' \
  http://localhost:18800/api/mcp/servers

Isolation modes

ModeBehaviour
shared One connection is reused across all tasks. Efficient, but state persists between tasks.
per_task Each task gets its own server instance for complete state isolation. For stdio servers, the child is spawned per task with AURA_TASK_ID, AURA_WORKSPACE_DIR, and a task-scoped data directory, then killed when the task ends. HTTP servers stay shared.

Plugins

Installed CLI tools can register as MCP servers without any code changes via a plugin manifest that carries either a stdio command + args or an HTTP URL + transport. Manage these under Settings → Plugins, or programmatically via /api/plugins.

Aura as an MCP server

The relationship runs both ways: Aura Workshop also exposes its own tools as an MCP server at POST /api/mcp/v1, so external MCP clients — such as Claude Code, Cursor, Kiro, Kilo, or Vibe — can call back into Aura. The exposed surface covers the core file and search tools: bash, read_file, write_file, edit_file, glob, grep, list_dir, web_search, and web_fetch.

Point your client's MCP config at your Aura instance's /api/mcp/v1 endpoint and authenticate with your AURA_WEB_TOKEN. For the full endpoint reference, see the API Reference.