Announcing CIMD support for MCP Client registration
Learn more

Hosted MCP servers compared: Scalekit, Composio, Zapier, Pipedream, Merge and Nango

Hosted MCP servers compared: six services set up to connect Linear to Claude Code, compared by URL model, tool scoping and pricing unit

Hosted MCP servers let you add MCP integrations to an agent without running the servers yourself. They differ less in their tool lists than in how they handle URLs, user sign-in and billing. We took one setup, connecting Linear to Claude Code for an agent with many users, and compared how six services handle it: how a request names the user, what credential it carries, how you limit tools and what a call costs.

TL;DR

  • For your own Claude Code, Zapier MCP and Merge have the shortest path: one documented claude mcp add command and a browser sign-in. Composio documents a claude mcp add command that takes a session URL and your API key, and offers a Claude Code plugin.
  • For a product with many users, the choice is how each request names the user. Scalekit binds each run to one user with a short-lived token on one URL, and lets you pick the exact tools each agent sees. Composio and Nango give each user or session its own URL; Pipedream uses headers on one URL; Merge and Zapier put the user in the URL, and Merge can also issue a short-lived key scoped to one user.
  • Pricing units are not comparable at a glance: tool calls (Scalekit, Composio), tasks at two per call (Zapier), credits per call (Merge), credits per 30 seconds of compute (Pipedream), and connections plus compute hours (Nango).

A test for any hosted MCP server

Catalog sizes in this group differ by thousands of apps, but a given agent uses a few dozen tools. What you live with every day is how each request names the user, and what an attacker gets if that credential leaks. Ask two questions of any vendor: does the credential your client sends name exactly one user, and does it expire on its own? A long-lived key that can name any user (a project key plus ?user_id=, or an embed secret) puts every customer behind one secret. A credential that names one user and expires limits a leak to that user and that window. Scalekit session tokens, Merge's user-scoped Access Keys and Nango session tokens pass both tests. Composio's older shared-URL servers and the Zapier embed rely on one secret for all users, and Pipedream's token expires after an hour but can name any user through a header.

How we compared

We used one scenario for all six services: connect Linear to Claude Code for an agent that serves many end users. For each service we read its own setup docs and pricing page and recorded how the server URL works, how a user signs in, how you limit tools, what a call costs and the limits that affect setup. Details checked October 2026.

Scalekit wrote this comparison and is one of the six. We list Scalekit first because we know it best, and mark its row in the tables. Competitor facts come only from the vendors' own docs and pricing pages, linked in each section. If a vendor finds an error, contact us and we will correct it.

Smithery is not one of the six: it is mainly a registry where anyone can publish MCP servers, rather than a service that runs its own catalog of integrations.

Setup at a glance

The six differ most in how a request names the user and what credential it carries.

Service
How the user is named
Credential on each call
Tool scoping
Scalekit
Session token on one shared URL
Session token bound to one user and one server, 60 seconds to 24 hours (one hour by default)
Virtual MCP servers pick exact tools; read-only tokens
Composio
One session URL per user (older servers: ?user_id= on a shared URL)
Project or user API key header
Enable list per toolkit
Zapier MCP
One embed URL per user, each with a Zapier account
Embed secret as a bearer token
Managed mode picks exact actions
Pipedream
Headers on one shared URL (x-pd-external-user-id, app slug)
Client-credentials bearer token, 1 hour
One app per connection
Merge Agent Handler
Tool Pack and registered user in the URL
Org-wide API key, or a user-scoped Access Key with its own expiry
Tool Packs, plus data rules
Nango
One session URL per session, tied to the user's connections
Session token, 60 seconds to 15 days
Allow and deny lists per integration
Service
Claude Code command in docs
Linear tools
Pricing unit and free tier
Scalekit
No; the standard --header form works (shown below)
62
Tool calls; 10,000 a month free
Composio
On the Linear toolkit page; needs an API key and a session script
47
Tool calls; 100,000 a month free
Zapier MCP
Yes, single user
Not counted
Tasks, two per call; 100 tasks a month free
Pipedream
No; the bearer token expires hourly
27
Credits per 30 seconds of compute; Free is development only
Merge Agent Handler
Yes, single user
32
Credits per call; 2,000 a month free
Nango
No; the standard --header form works with the session URL and token
46 actions
Connections and compute hours; 10 connections free

Scalekit

Scalekit is built for the multi-user case this comparison covers: one agent acting for many end users, each with their own Linear account. Every connection gets its own MCP server, and Virtual MCP servers expose only the tools you pick. All users share one URL; each run carries a short-lived session token bound to one user and one server. The token returns 401 on any other server, and the agent never sees the user's Linear token. Scalekit refreshes each user's Linear tokens and sends a webhook when an account expires, so you can send a new link before a call fails. The Linear connector has 62 tools (27 read, 24 write, 11 destructive) and works with Scalekit's OAuth app or your own.

Setup for Linear in Claude Code

  1. In AgentKit, Connections, create a Linear connection named linear. Scalekit's OAuth credentials work in production too; use your own OAuth app if you want your name on the consent screen.
  2. Have the user authorize once through an authorization link. If they have not, the server's connect_account tool returns the link inside the chat.
  3. Mint a session token for that user on the connection's server.
import os from datetime import timedelta from scalekit import ScalekitClient scalekit_client = ScalekitClient( env_url=os.environ["SCALEKIT_ENVIRONMENT_URL"], client_id=os.environ["SCALEKIT_CLIENT_ID"], client_secret=os.environ["SCALEKIT_CLIENT_SECRET"], ) actions = scalekit_client.actions session = actions.mcp.create_session_token( connection_name="linear", identifier="user_123", expiry=timedelta(hours=24) ) print(session.token) # export as SESSION_TOKEN for the command below
  1. Add the server to Claude Code with the standard --header form and the token from step 3.
claude mcp add --transport http scalekit-linear \ "$SCALEKIT_ENVIRONMENT_URL/mcp/v3/connections/linear" \ --header "Authorization: Bearer $SESSION_TOKEN"

Scoping. The connection server exposes all 62 Linear tools. To expose fewer, create a Virtual MCP server with create_config and list the tools you want; tokens can also be minted read-only.

Pricing. Free includes 10,000 tool calls a month; Growth is $99 a month with 100,000 included, then $0.50 per 1,000. Enterprise adds VPC, custom cloud or on-prem deployment.

Token lifetime. Session tokens are short-lived by design: one hour by default, up to 24 hours. Mint a new one per run, or on a schedule for a client config you edit by hand, such as Claude Code. The catalog has 500+ connectors, and you can add custom connectors for APIs outside it.

Composio

Composio now recommends sessions for MCP. Your back end creates a session for one user and gets back a URL and headers for that user, authenticated with a project API key (x-api-key) or a user key. The older hosted servers, where one URL serves everyone and the user is named in a query parameter, are still documented, along with a migration guide to sessions.

Setup for Linear in Claude Code

  1. Install the SDK (pip install composio or npm install @composio/core).
  2. Create a session for the user with MCP turned on, and read session.mcp.url and session.mcp.headers.
  3. Give the MCP client that URL and those headers.
  4. The user signs in to Linear through a Connect Link that the session's COMPOSIO_MANAGE_CONNECTIONS tool returns in the chat. Links expire after 10 minutes (docs).

For a developer's own Claude Code, Composio's Linear toolkit page walks through creating a session with your Composio API key and a user ID, then adding it with claude mcp add and an X-API-Key header. Composio also offers a plugin for Claude Code and Codex.

Scoping. Sessions take a per-toolkit enable list, and with direct tools an MCP client sees only the listed tools; a saved session config with direct tools can hold at most 1,000. The Linear toolkit has 47 tools.

Own OAuth app. Supported through an auth config with your client ID and secret.

Pricing. Hobby is free for 100,000 tool calls a month; Pro is $29 a month including $29 of usage, then $0.0003 per call. Calls through Composio-managed OAuth apps are free up to 20,000 a month, then $0.0005 each. This pricing applies to signups from August 15, 2026.

Rate limits and sessions. 2,000 requests a minute on Hobby and 10,000 on Pro, per organization (docs). Sessions do not expire.

Zapier MCP

Zapier MCP has the simplest single-user setup of the six. Every client connects to one endpoint and signs in to Zapier with OAuth. For a product with many users, the MCP embed gives each user a unique server URL, and every request carries your embed secret as a bearer token. Each embed user still gets a Zapier account. A White Label option without Zapier accounts is in limited access.

Setup for Linear in Claude Code. Zapier documents the command directly:

claude mcp add --transport http "Zapier-MCP" https://mcp.zapier.com/api/v1/connect

Restart Claude Code, sign in to Zapier in the browser, and paste the prompt Zapier gives you back into Claude Code. Zapier creates the server during that sign-in; Linear is one of the apps you can then add. For the multi-user embed, your front end loads the embed, stores the mcp-server-url it returns for each user, and your back end calls that URL with the embed secret.

Scoping. By default the agent finds and turns on its own actions through meta-tools. In managed mode you choose the exact actions and can lock field values.

Own OAuth app. Zapier MCP uses Zapier's own OAuth apps: Zapier maintains the OAuth client registrations, and consent screens name Zapier.

Pricing. Billed in Zapier tasks: each successful tool call uses two tasks, and failed calls do not count (docs). Free includes 100 tasks a month; Professional starts at $19.99 a month billed yearly.

Transport and hosting. Zapier MCP uses Streamable HTTP only, so SSE-only clients cannot connect, and connection tokens are long-lived until you rotate them. It cannot be self-hosted or run in a VPC (docs).

Pipedream

Pipedream Connect runs one remote MCP endpoint for all of your users. Each request names the project, environment, user and app in headers (x-pd-project-id, x-pd-environment, x-pd-external-user-id, x-pd-app-slug) and carries a bearer token your back end gets with Pipedream client credentials. Workday had closed its acquisition of Pipedream by February 2026.

Setup for Linear in Claude Code

  1. Create a Pipedream project and OAuth client, and set the client ID, secret, project ID and environment.
  2. Exchange the client credentials for an access token at POST https://api.pipedream.com/v1/oauth/token. It lasts one hour; the SDKs refresh it (docs).
  3. Point your MCP client at the v3 URL with the four headers, x-pd-app-slug: linear, and the bearer token.
  4. On the first call for a new user, the tool response includes a Connect Link; the user opens it and signs in to Linear.

Pipedream's docs have no Claude Code command. Because the bearer token expires hourly, a static Claude Code config does not fit the multi-user setup; Pipedream's examples run the MCP client from your own code. A separate personal endpoint is meant for individual use.

Scoping. One connection serves one app. Since April 2026, tool modes are no longer needed on the v3 endpoint. Linear has 27 actions on Pipedream.

Own OAuth app. Supported for any app that allows it.

Pricing. Free covers development only. Connect starts at $99 a month billed annually ($150 monthly) with 100 external users and 10,000 credits; a tool call costs 1 credit per 30 seconds of compute.

Sign-in tokens. Connect tokens for sign-in last 4 hours and work once (docs); creating them is rate-limited to 100 a minute per user.

Merge Agent Handler

Merge Agent Handler groups tools into Tool Packs. For a product with many users, each MCP URL names a Tool Pack and a registered user, and requests carry a Merge key as a bearer token. For agents that serve more than one person, Merge recommends minting a user-scoped Access Key from your organization key. The key names one Registered User and the Tool Packs it can reach, and expires after the time you set; a call that names a different user fails. A separate single-developer endpoint signs you in with OAuth instead.

Setup for Linear in Claude Code. For a single developer, Merge documents a one-line setup:

claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp

The first tool call returns a Magic Link; the user completes OAuth and the agent retries. For many users:

  1. Create a Tool Pack with the Linear connector and the tools you want.
  2. Register each user with your own user ID as origin_user_id.
  3. Give the MCP client the per-user URL and a bearer key, ideally a user-scoped Access Key. Merge's multi-user page shows configs for Claude Desktop, Cursor, Windsurf and VS Code, not Claude Code; the standard --header form works with the same URL and key.
  4. The user signs in to Linear through Merge's Link flow, or a Magic Link returned by the first tool call. Link tokens expire after 30 minutes and work once (docs).

Scoping. Tool Packs choose the connectors and tools. A Security Gateway can allow, redact or block data in calls. The Linear connector has 32 tools.

Own OAuth app. Supported per connector; a few connectors require it.

Pricing. Credits are spent on every tool call. Free includes 2,000 credits a month; Pro is $1,000 a month for 25,000 credits, and Enterprise offers custom deployments, including on-prem.

Rate limits. The REST API allows 600 reads and 120 writes a minute per organization, and MCP calls are rate-limited per organization and per user (docs).

Nango

Nango's current MCP model is agent sessions. Your back end creates a session and gets a session URL and token, which the MCP client sends as a bearer token. The session names the user's connections by tag or by connection ID, and lasts from 60 seconds to 15 days (docs). Nango's code is on GitHub under the Elastic License 2.0.

Setup for Linear in Claude Code

  1. Configure a Linear integration. Nango has no shared test OAuth app for Linear's REST API, so you register your own; the separate Linear MCP integration uses dynamic client registration and needs none.
  2. Have the user connect Linear through Nango's Connect UI.
  3. Create an agent session for that user and give the MCP client the session URL and token.

Nango's session docs show OpenAI, Anthropic, Vercel AI SDK, LangChain and Mastra, not Claude Code. The standard --header form in Claude Code works with the session URL and token.

Scoping. A session takes per-integration allow or deny lists. If the nango_proxy meta-tool is on, the agent can still reach any endpoint of a connected integration. Linear has 46 pre-built actions, and you can write your own.

Own OAuth app. Optional for the APIs where Nango offers a shared developer app, required for Linear's REST integration, and recommended before going live.

Pricing. Free covers 10 connections and 10 compute hours a month. Pay-as-you-go is $50 a month in credits, then $0.29 per connection, $0.72 per compute hour and $0.50 per GB of transfer. Enterprise adds self-hosting.

Call limits. Tools from MCP servers in a session have 60 seconds per call and a 5 MB result cap; tools/list returns 50 tools per page.

Trade-offs to know

Each service has trade-offs that show up during setup.

Service
Trade-off
Scalekit
Session tokens are short-lived by design (one hour by default, up to 24 hours), so a long-lived client config such as Claude Code needs a token minted per run or by a scheduled job. The catalog has 500+ connectors, plus custom connectors for APIs outside it.
Composio
Two MCP models are documented at once, so examples online often show the older ?user_id= URL. Calls through Composio-managed OAuth apps are billed at $0.0005 each after 20,000 a month.
Zapier MCP
Each end user gets a Zapier account on the embed path, consent screens name Zapier rather than your product, and every successful call costs two tasks.
Pipedream
The bearer token expires every hour and can name any user through a header, so a static client config does not fit the multi-user setup; Pipedream's examples run the MCP client from your own code.
Merge Agent Handler
The cheapest paid plan is $1,000 a month, and the multi-user docs show Claude Desktop, Cursor, Windsurf and VS Code rather than Claude Code.
Nango
You often register your own OAuth app, and the nango_proxy meta-tool, when turned on, can reach endpoints outside your allow list.

Which to pick

Start from who the agent acts for and how the client is configured.

If you need
Start with
Why
A product where many end users bring their own accounts
Scalekit, then Composio, Nango or Merge Agent Handler
A session token bound to one user and one server, in-chat sign-in, and refresh handled; Composio and Nango also bind each session to one user, and Merge does with user-scoped Access Keys
Tight control over which tools and data an agent touches
Scalekit, Merge Agent Handler
Virtual MCP servers and read-only tokens (Scalekit); Tool Packs and data rules (Merge)
Billing that tracks calls, not compute
Scalekit, Composio, Merge, Zapier MCP
Priced per tool call, per credit per call, or two tasks per successful call (Zapier)
Your own Claude Code connected to many apps, fast
Zapier MCP, Merge (single-user endpoint)
Each documents one claude mcp add command with browser sign-in
The largest catalog
Zapier MCP, Pipedream, Composio
Zapier lists 9,000+ apps, Pipedream 3,000+ APIs and Composio 1,500+ toolkits
A private deployment (VPC or on-prem)
Scalekit, Merge Agent Handler, Nango
Enterprise plans: VPC, custom cloud or on-prem (Scalekit); custom deployments including on-prem (Merge); self-hosting (Nango)
Source code you can read and run
Nango
Elastic License 2.0, with self-hosting on its Enterprise plan

For a broader ranking that also covers Arcade, Paragon, StackOne and Truto, see Best managed MCP server platforms. To check how your setup keeps users apart, see per-user OAuth for MCP integrations.

FAQs

What is a hosted MCP server?

An MCP server that a vendor runs for you. It connects an AI agent to apps such as Linear or Gmail over the Model Context Protocol and handles each app's sign-in, token storage and refresh, so you do not deploy or patch the server yourself.

Composio MCP vs Smithery vs Pipedream: what is the difference?

Composio and Pipedream run their own catalogs of app integrations and give your back end a way to call them for each of your users. Smithery is mainly a catalog where anyone can publish MCP servers, with a Connect API that handles OAuth and sessions; its site says it is now part of Arcade.dev. Pick Smithery to find and try community servers, and Composio or Pipedream when you want one vendor to run the integrations.

Do hosted MCP servers store my users' tokens?

Yes. All six services in this comparison store each user's app tokens and refresh them, and the agent receives tool results rather than the tokens. What differs is the credential your client sends: an organization API key, an embed secret, Pipedream's one-hour client-credentials token, or a short-lived credential scoped to one user, such as a Scalekit or Nango session token or a Merge user-scoped Access Key.

Can I use my own OAuth app?

Scalekit, Composio, Pipedream, Merge and Nango support it. Nango requires it for Linear's REST integration. Zapier MCP uses Zapier's own OAuth apps, so consent screens name Zapier.

Which hosted MCP server works best with Claude Code?

For your own use, Zapier MCP and Merge document one claude mcp add command with browser sign-in. Composio documents a command that takes a session URL and your API key, and offers a Claude Code plugin. For a product serving many users, the server URL and credential come from your back end, so the client matters less than how each service names the user.

No items found.
Agent
Auth Quickstart
On this page
Share this article
Agent
Auth Quickstart

Acquire enterprise customers with
‍zero upfront cost.

Every feature unlocked. No hidden fees.