Skip to main content
In this guide, a model answers “What issues are assigned to me?” using the user’s own Linear account. The model calls Linear’s MCP tools through mcp.bundleup.io. BundleUp attaches the user’s token, so neither the model nor your code handles it. Your backend tells the model provider to use mcp.bundleup.io as an MCP server, with your API key and the user’s connection ID as the credential. The model provider calls BundleUp, BundleUp swaps in the user’s Linear token and forwards to Linear’s MCP server, and the results flow back to the model.

Prerequisites

  • A BundleUp workspace with a Linear integration (identifier linear), an API key, and a registered redirect URI. Follow steps 1 to 3 of the Quickstart, choosing Linear instead of GitHub.
  • An OpenAI or Anthropic API key.
MCP works for providers that run their own MCP server. Each provider’s page at bundleup.io/integrations shows whether it does.

1. Connect the user’s account

Run the authorization flow for the linear integration and store the resulting connection_id against your user. For a quick test, follow steps 4 and 5 of the Quickstart with integration_id=linear.

2. Check the connection works

Before involving a model, list the tools the connection can see:
You should get Linear’s tool list back. A 400 mcp_not_supported means the provider has no MCP server; use the Proxy for it instead.

3. Give the connection to a model

OpenAI and Anthropic can call an MCP server themselves. They accept a single credential, so BundleUp accepts the API key and connection ID joined with a dot: API_KEY.CONNECTION_ID. The SDK’s hosted() builds that for you.
With model-hosted MCP, your BundleUp API key is sent to the model provider, whose servers make the MCP calls. If that isn’t acceptable, run an MCP client in your own backend instead. See Using MCP clients.

4. Serve many users

The only per-user input is the connection ID. Look it up for whoever is chatting, and pass it in. Two users get two different Linear accounts from the same code. To give one agent several providers for the same user, add one MCP server entry per connection (for example, one for Linear and one for Slack). See Agents for many users.

Next steps