Skip to main content

What MCP is

The Model Context Protocol (MCP) is an open standard for connecting AI models to tools. An MCP server publishes a list of tools (each with a name, a description and an input schema), and an MCP client lets a model discover and call them. Many providers now run their own MCP servers: Linear, Slack, GitHub, Notion and others expose tools like “create issue” or “search messages”. A model talks to an MCP client, which talks to an MCP server that runs the tools. BundleUp sits between the client and the provider’s MCP server.

The problem BundleUp solves

A provider’s MCP server needs an OAuth token for the user whose account the tools act on. In a product with many users, that means:
  • running an OAuth flow per user per provider,
  • storing and refreshing each user’s tokens,
  • making sure each agent session gets the right user’s token, and never another user’s.
With BundleUp, the agent only gets a connection ID. BundleUp attaches the right user’s token to every MCP message, refreshes it when needed, and makes sure the connection belongs to your workspace.

How it works

Point your MCP client at https://mcp.bundleup.io with two credentials: your API key and the user’s connection ID. BundleUp forwards each MCP message to the provider’s MCP server, with the user’s token in place of your API key, and returns the provider’s response unchanged. BundleUp doesn’t define, rename or filter tools. The provider owns the tool list. This is called Proxy MCP, and it’s a pass-through: see How Proxy MCP works.

When to use MCP

  • An AI agent needs to act in a user’s account at a provider that runs its own MCP server.
  • You want the provider’s tools exactly as the provider designed them, kept up to date by the provider.
Use the Proxy instead when your own code (not a model) is making the calls, or when the provider has no MCP server. You can also give an agent your own tools that call the Proxy or Unified API behind the scenes.

Which providers support it

MCP works for providers that run a remote MCP server behind the same OAuth system BundleUp connects to, so the user’s access token is accepted by both the API and the MCP server. Each provider’s page on bundleup.io/integrations shows whether it supports MCP. A connection to a provider without one returns 400 mcp_not_supported.

Authentication

Every MCP request needs your API key and a connection ID:
Clients that can only send one credential can join them with a dot:
See Authenticating API requests.

Good to know

  • One MCP server entry = one connection. To give an agent Slack and Linear for the same user, register two servers with two connection IDs. See Agents for many users.
  • Every MCP message is a request, including initialize and tools/list. They count toward the rate limit (100 per minute per connection) and usage.
  • No automatic retries. Your MCP client decides what to do with a failed message.
  • No OAuth discovery. mcp.bundleup.io uses static credentials, not the MCP authorization spec. Clients that only support OAuth discovery can’t connect directly.

Next steps

AI agent quickstart

A working agent in a few minutes.

Using MCP clients

OpenAI, Anthropic, MCP SDKs and Claude Code.

How Proxy MCP works

Headers, sessions, streaming, errors.

Agents for many users

One agent, many users, several providers.