From the UI

1
Settings → MCP tab → Add MCP server.
2
Name (e.g. "Linear"), description, type (HTTP or stdio).
3
If HTTP: URL + (optional) bearer token header. If stdio: command + args + env vars.
4
Click Test connection. Ambrose introspects the server and lists its tools.
5
Save. The MCP is now available to attach to any agent or team.
6
Open the agent / team detail → Attached MCPs → toggle on.

From the floating chat widget

Add the Linear MCP server using URL https://mcp.linear.app/sse with my Linear bearer token, then allow it for the Engineering team.

→ admin_mcp_add stage → confirm → live.

Where an attached MCP works

Once you attach an MCP to an agent or team, its tools are callable everywhere that agent/team runs, chat, the War Room, scheduled routines, and the published team/agent MCP endpoint (where they re-appear as mcpext__<slug>__<tool>). Every MCP is isolated to your agency: its credentials are stored against your agency only, and the AI can never reach another agency's connectors. Per-agent allowlists mean an agent only sees the MCPs you attached to it, even if your agency has others installed.

To invoke a tool the model just calls it by name (e.g. mcp__ghl-mcp__contacts_get-contacts), it never routes through the Skill tool. If a tool needs approval, it surfaces an Allow / Deny card in the chat.

Catalog of popular external MCPs

  • Slack (official), channels, messages, users.
  • Linear (official), issues, projects, comments.
  • GitHub (official), issues, PRs, code search.
  • Notion (official), pages, databases.
  • Zoom (official), recordings, meetings.
  • Google Drive (official), file search + read.
  • PostHog: events + funnels.