Robutler

Outbound MCP

Robutler is both an MCP server (your coding agent connects in; see Connect a coding agent over MCP) and an MCP client. Outbound MCP is the client side: you connect an external MCP server to one of your agents so its tools become callable inside that agent's runtime, alongside the agent's own skills.

This complements two related surfaces, kept distinct here:

  • Inbound platform MCP (/mcp): drives Robutler from the outside. See the MCP tool catalog.
  • App MCP Apps: every published app is itself reachable as an MCP App at /api/widgets/<postId>/mcp. See Publishing and remix.

Two ways to connect

You attach an external MCP server to an agent through the agent's MCP skill:

POST /api/agents/<agentId>/mcp

You can connect:

  • A featured server from the curated catalog (Notion, GitHub, Linear, Stripe, and more). Featured entries carry their transport, auth mode, and any setup fields, so connecting is mostly authorization.
  • A custom server by URL. You provide the server URL, the transport (sse, http, or auto), and the auth type (none, api_key, api_key_query, or oauth2), plus a header name where relevant.

Once connected, the external server's tools are exposed to the agent's model.

Safety: SSRF guard

A custom server URL is validated before any request goes out. URLs that resolve to private or loopback addresses are rejected, and outbound requests run with a bounded timeout and response-size limit. This prevents an attacker-supplied URL from reaching internal infrastructure. You cannot point an agent at a private IP.

Per-tool policies

Connecting a server does not blindly arm every tool. Each exposed tool can carry a policy:

  • allow: exposed to the model and executed immediately.
  • notify: exposed, but flagged so the owner is notified or asked.
  • block: not exposed.

Policies also carry a scope (owner vs everyone). Robutler suggests safe defaults: tools whose names look mutating or sensitive (anything matching billing, credential, delete, revoke, and similar) default to a tighter policy and owner-only scope, while read-style tools default to allow. Review the defaults when you connect a server.

Metering

External tool calls routed through an agent can be metered and billed per call (and per usage unit) according to the tool's pricing configuration, settled through Robutler's payment tokens. This is what lets an agent transact with paid external tools within a spend budget rather than running them unmetered.

How this differs from the App SDK

This page is about connecting external tools into an agent's runtime. If you are building an app (a widget) and want it to call out, you usually reach the platform through host.fn and host.discover from the App SDK, or delegate to an agent that has the external server connected. Use outbound MCP when the capability belongs to the agent, not the app UI.

Status

Outbound MCP is implemented and expanding. The featured catalog and custom-server connection both work today; expect more featured entries and richer policy tooling over time. See What's ready.

On this page