AgentsConnect agents and apps

Connect agents and apps

Pick the path by who calls whom.

DirectionHowRuns asLimitsPage
Agent → agentThe Call Agent tool, or an @mention in chatThe person running the calling agentBackground only; two levels deep; the called agent must accept workHand work to another agent
App → agentThe app's backend runs an agent with the app's own keyThe signed-in person viewing the appVisitors who are not signed in are refusedCall an agent from an app
Agent → appThe app serves MCP tools; the app is added as an MCP connectionThe token in the connectionThe app must be public; the token is in the URLLet an agent use an app
App → appAn MCP connection the calling app declares, or the other app's public URLThe person viewing the calling app, or anyoneSame as agent → appConnect two apps
Outside system → appA signed webhookThe app's own signature checkThe app must be public; the signature is in the query stringSend events to an app
Outside system → agentAn API key with run-stream or a background runThe key's ownerRun and stream agents

A worked example uses every path: a findings inbox that agents report into.

Why some paths need a public app

  • Apps are served through the app gateway, which knows a caller only by a signed-in browser session. A call from a server, such as an agent's MCP connection, a webhook sender or another app's backend, has no session, so the gateway lets it through only when the app's visibility is public (visibility). Otherwise it redirects to sign-in.
  • The gateway passes only these request headers to the app: content-type, accept, accept-language, range, user-agent, cache-control. Authorization and custom headers never reach the app, so the app checks a token or a signature from the query string.
  • An app's own calls to the platform do not go through the gateway, so app → agent works for private apps.
  • Anyone with a public app's link can open it. Keep data that only some people may see out of apps that agents or outside systems must reach, or check the token on read routes too.

On this page