Compare
Compared with the products you would actually consider.
What each product does and how well, checked against its own docs, repositories and issue trackers. We say where we are stronger and where we are not. Last checked: 9 November 2026.
Hosted MCP for your API
You have a REST API and OpenAPI file, and want your customers' AI apps to use it. A dash means the sources we read do not say.
| Product | Customers sign in with | Roles | Hosting | Also generates |
|---|---|---|---|---|
| Deemwar MCP | Your own login (redirect, password relay, token exchange, SSO) | From your token's role claim | Hosted | CLI, skill, plugin, widget |
| Scalar | OAuth by email or domain, or each customer's own API key[1][2] | Access groups[1] | Hosted, own subdomain[1][3] | Docs MCP[3] |
| Speakeasy (Gram) | OAuth 2.1, identity-provider sync[4] | Team, server, tool level[4] | Hosted; open source[4] | Skills, plugins[4] |
| Postman | - | - | You run it locally[7] | - |
| Composio | Each user's own app accounts[8] | Allowed-tools list[8] | Hosted[8] | - |
| Pipedream | Connect: users link app accounts[9] | - | Hosted[9] | - |
| Zapier MCP | Your Zapier account[10] | Workspace controls[10] | Hosted[10] | - |
| Cloudflare Workers | You build the OAuth server[11] | In your code[11] | Your Workers account[11] | - |
| FastMCP from_openapi | No end-user sign-in[12] | Build-time route maps[12] | You run it[12] | - |
| Zuplo | OAuth, API keys or JWT[13] | - | Edge-hosted[13] | Audit log per call[13] |
| Mintlify (docs MCP) | Public docs: none; private: OAuth[14] | User groups[14] | Hosted[14] | Docs search only[14] |
Details by product
›Deemwar MCP
- How end users sign in
- Your customers sign in with your own login: redirect, password relay, token exchange or SSO (Google, Microsoft, Firebase, any OIDC). Their token stays in our vault; the AI gets a token we mint.
- Per-role access
- Role claim from the user's own token mapped to operations; others are hidden from search and rejected on call.
- Output and hosting
- Hosted MCP, plus a branded CLI, agent skill, Claude plugin and chat widget from one source. Hosted only.
- Tool shape
- Five tools (overview, search_tools, call_read_operation, call_write_operation, ask_docs), however large the API.
- Risky operations
- Reads and writes use separate tools with read-only and destructive hints; marked operations need a single-use confirm token.
- Docs answers
- ask_docs returns cited passages from your docs.
›Scalar
- How end users sign in
- OAuth for outside users, gated by email or domain; team members use a token. Upstream credentials stay server-side (shared, per access group or caller-supplied). Can pass sign-in through to your own OAuth server, or forward each customer's own API key.[1][2]
- Per-role access
- Access groups; each operation is set to Search or Execute.[1]
- Output and hosting
- Hosted at mcp.scalar.com, optionally on your own subdomain, plus a docs MCP. Pro plan and above. No self-host.[1][3]
- Tool shape
- Small fixed set of tools; operation detail is fetched when needed.[1]
- Risky operations
- Search-only operations never call the API. No confirmation step is described.[1]
- Docs answers
- Docs MCP with search and read tools.[3]
›Speakeasy (Gram)
- How end users sign in
- OAuth 2.1 with RBAC and identity-provider sync (Okta, Azure AD, Google Workspace); a passthrough mode for an external OAuth server.[4][5]
- Per-role access
- Team, server and tool-level permissions.[4]
- Output and hosting
- Hosted MCP servers; also distributes skills and plugins. Open source (AGPL-3.0); the README documents local development only.[4]
- Tool shape
- One tool per operation by default, narrowed with scopes; optional code mode.[6]
›Postman
›Composio
- How end users sign in
- Each end user connects their own third-party accounts through Composio's managed auth; the MCP URL is generated per user ID.[8]
- Per-role access
- Per-server allowed_tools list.[8]
- Output and hosting
- Composio-hosted endpoint; an API-key header is required by default.[8]
- Tool shape
- Named tools per prebuilt app toolkit (such as GMAIL_FETCH_EMAILS), or dynamic sessions.[8]
›Pipedream
›Zapier MCP
- How end users sign in
- You sign in to your Zapier account (OAuth in most clients); Zapier holds the app credentials.[10]
- Per-role access
- Workspace access controls, user permissions and audit history.[10]
- Output and hosting
- Zapier-hosted over its app catalog (9,000+ apps, 40,000+ actions). Each successful call uses two tasks.[10]
- Tool shape
- Actions you choose (managed mode) or that the AI finds (agentic mode).[10]
›Cloudflare Workers
- How end users sign in
- You build it: an OAuth server and resource server with workers-oauth-provider; users sign in through GitHub, Google, Cloudflare Access or another identity provider.[11]
- Per-role access
- Your code can limit tools by permission with getMcpAuthContext().[11]
- Output and hosting
- Whatever you write, deployed to your own Workers account at /mcp.[11]
- Tool shape
- Whatever you define.[11]
- Risky operations
- Your code.
- Docs answers
- Your code.
›FastMCP from_openapi
- How end users sign in
- No end-user sign-in: one credential on the HTTP client you configure; callers' Authorization and Cookie headers are not forwarded.[12]
- Per-role access
- Route maps include or exclude operations at build time.[12]
- Output and hosting
- A Python server you run yourself.[12]
- Tool shape
- One tool per endpoint by default. Its docs advise curating rather than mirroring a large API.[12]
›Zuplo
- How end users sign in
- OAuth, API keys or JWT on your gateway; serves OAuth resource metadata so MCP clients find your auth server.[13]
- Output and hosting
- Edge-hosted endpoint built from operations you mark in your OpenAPI file.[13]
- Tool shape
- One tool per marked operation.[13]
- Risky operations
- Every tools/call is audit-logged with caller identity.[13]
›Mintlify (docs MCP)
- How end users sign in
- Public docs: none. Private docs: OAuth, with content limited by user group.[14]
- Per-role access
- User groups limit which content is searched.[14]
- Output and hosting
- Hosted /mcp on each docs site.[14]
- Tool shape
- Search, docs filesystem query and feedback tools.[14]
- Risky operations
- Not applicable: it reads docs.
- Docs answers
- Its whole job.
Where we are stronger
- Roles come from the claim in your user's own token and are enforced on search and on call, on every surface: AI apps, CLI and widget.
- One source gives you an MCP server, a branded CLI, an agent skill, a Claude plugin and a chat widget. Among the others, only Gram's README mentions skills and plugins, and none describes a branded CLI or widget.
- Writes go through their own tool, and operations you mark need a single-use confirm token that the AI must get from the user.
- Your end users keep using your login, with four ways to connect it (including password relay and token exchange) and no change to your auth stack.
Where they are stronger, or we do not do it
- We are hosted only. Gram is open source, FastMCP and Cloudflare Workers run on your own infrastructure.
- Scalar can serve the MCP from your own subdomain and documents forwarding each customer's own API key. Ours are served from deemwar.com hostnames and are built around a login that issues a JWT.
- Composio, Pipedream and Zapier connect AI to thousands of third-party apps with prebuilt actions. We do one thing: your API, for your customers.
- One tool per operation is simpler for a small API; our search-first surface adds one step.
- We are young and invite-only for publishers, so our ecosystem and track record are small next to these.
What users report
- Scalar users asked how to give each customer their own key; maintainers answered with passthrough authentication (closed). A separate report said the API key was not forwarded through an authorized installation (closed).[2][15]
- Gram: a report that passthrough mode accepted any non-empty bearer and returned HTTP 200 with an error when the upstream rejected it (closed).[5]
- FastMCP: open reports include tool calls failing when a successful response is not JSON.[16]
Expose a coding agent
You run a coding agent and want to ask it from Claude, ChatGPT or your phone.
| Product | Sign-in | Works in | Hosting and reach |
|---|---|---|---|
| dmcp serve (Deemwar) | OAuth built in | Claude, ChatGPT, Codex, Claude Code | Stable URL via our tunnel; needs herdr |
| herdmcp | Own OAuth 2.1[17] | Any MCP client (HTTP or stdio)[17] | You run it; URL changes on restart unless you own a tunnel[17] |
| kevmo314/herdr-mcp | None described[18] | stdio clients only[18] | Local[18] |
| Claude Code Remote Control | Your Claude subscription[19] | Claude app and web; not MCP[19] | Anthropic relay[19] |
| claude mcp serve | - | Local stdio client[20] | Your machine |
| Happy | Your agent subscriptions; end-to-end encrypted[21] | Happy's apps; not MCP[21] | Open source, self-hostable[21] |
| Omnara | - | Its own clients[22] | Self-host or Omnara Cloud[22] |
| DIY tunnel (Cloudflare, ngrok) | Whatever you add[23] | Any client your auth supports | Quick tunnels: testing only[24] |
Details by product
›dmcp serve (Deemwar)
- What it does
- Turns one live herdr agent into an MCP server with ask and get_answer. Every question is logged (dmcp log).
- Sign-in
- OAuth built in, tied to your project's sign-in. Local mode uses a bearer token.
- Live session?
- Yes, through herdr.
- Where you use it
- Claude.ai, Claude mobile, ChatGPT, Codex, Claude Code.
- Hosting and reach
- Stable <tenant>-terminal.deemwar.com URL through our Cloudflare tunnel route; needs herdr and a running dmcp serve; one public agent per tenant.
›herdmcp
- What it does
- MCP server for herdr: read pane and agent state, create, split and run in panes, start or prompt agents. pane_close is marked destructive; raw herdr_call is opt-in.[17]
- Sign-in
- Its own OAuth 2.1 server: PKCE, dynamic client registration with consent, accounts you create, 1 hour tokens.[17]
- Live session?
- Yes.
- Where you use it
- Streamable HTTP /mcp, or stdio.[17]
- Hosting and reach
- You run it. A quick tunnel URL changes on every restart; a stable URL needs your own Cloudflare named tunnel.[17]
›kevmo314/herdr-mcp
›Claude Code Remote Control
- What it does
- Continue your live local Claude Code session from the Claude app or claude.ai/code.[19]
- Sign-in
- Your Claude subscription; API keys are not supported.[19]
- Live session?
- Yes.
- Where you use it
- Claude app and web only; Claude Code only; not an MCP server.[19]
- Hosting and reach
- Anthropic relay over outbound HTTPS; the transcript is stored on Anthropic's servers.[19]
›claude mcp serve
›Happy
- What it does
- App for Claude, Codex, Grok and other agents; start a session with happy claude or happy codex and pick it up on your phone.[21]
- Sign-in
- Your own agent subscriptions; end-to-end encrypted sync.[21]
- Live session?
- Yes, for sessions started through happy.
- Where you use it
- Happy's apps; not an MCP endpoint.[21]
- Hosting and reach
- Open source (MIT); the relay server is in the repo and can be self-hosted.[21]
›Omnara
- What it does
- Platform that runs agents through an API, SDK and CLI, with Slack, Discord and GitHub triggers and a daemon on your machines.[22]
- Where you use it
- Its own clients; it has an MCP server for agents to call.[22]
- Hosting and reach
- Apache-2.0, self-hostable with Docker Compose, or Omnara Cloud.[22]
›DIY tunnel (Cloudflare, ngrok)
- What it does
- Public URL in front of any local MCP server; you supply the server and its auth.
- Sign-in
- ngrok's OAuth action supports providers such as GitHub, Google and Microsoft; its docs do not mention MCP OAuth discovery or dynamic client registration.[23]
- Live session?
- Whatever you serve.
- Where you use it
- Any client your server's auth supports.
- Hosting and reach
- Cloudflare quick tunnels: random hostname, no uptime guarantee, no SSE, "for testing and development".[24]
Where we are stronger
- A stable URL with sign-in already built in, without your own Cloudflare account, DNS or auth code. herdmcp's quick URL changes on restart, and the stdio servers are not reachable from Claude.ai or ChatGPT at all.
- One URL works from Claude, ChatGPT, Codex and Claude Code, so you are not tied to one vendor's app.
- The tools are shaped as a question: ask returns a clean answer and is refused when the agent is busy or blocked, and every question is logged.
Where they are stronger, or we do not do it
- Remote Control is first party, one step, inside the Claude app, and needs no relay of ours. It reconnects automatically, and its server mode runs several sessions.
- herdmcp gives you full pane control (split, run, start agents) and keeps everything on your own machine. We only offer ask and get_answer.
- Happy is open source with an end-to-end encrypted, self-hostable relay and more agent types. Our tunnel route passes your traffic through our infrastructure.
- dmcp serve needs herdr. Our public exposure ends when dmcp serve stops, and there is one public agent per tenant.
What users report
- Remote Control: open reports of an unarchived session that never reconnects, and of the command missing for an account.[25][26]
- claude mcp serve: it does not exit when stdin closes, leaving processes behind over SSH (open); the Agent tool shows an empty agent list in serve mode (open).[20][27]
- Happy: an open report that its CLI loads a repository's Claude configuration without a trust prompt.[28]
Sources
- [1] Scalar: hosted MCP guide
- [2] Scalar issue #9463
- [3] Scalar: MCP product page
- [4] Speakeasy Gram repository (README)
- [5] Gram issue #6927
- [6] Speakeasy: MCP server generator comparison
- [7] Postman: MCP generator (v12 docs)
- [8] Composio: MCP servers
- [9] Pipedream: MCP for developers
- [10] Zapier MCP docs
- [11] Cloudflare: remote MCP server guide
- [12] FastMCP: OpenAPI integration
- [13] Zuplo: MCP servers
- [14] Mintlify: MCP
- [15] Scalar issue #9307
- [16] FastMCP from_openapi issue #5367
- [17] herdmcp (Glama listing)
- [18] kevmo314/herdr-mcp
- [19] Claude Code: Remote Control
- [20] claude-code issue #106109 (claude mcp serve)
- [21] Happy (slopus/happy)
- [22] Omnara (omnara-ai/omnara)
- [23] ngrok: OAuth action
- [24] Cloudflare: quick tunnels
- [25] claude-code issue #107170 (Remote Control)
- [26] claude-code issue #106787 (Remote Control)
- [27] claude-code issue #41973 (claude mcp serve)
- [28] Happy issue #1688
Last checked: 9 November 2026. Product names belong to their owners. Spot an error? [email protected]
Put your API where your users already work.
Access is invite-only while we onboard publishers. Bring a spec URL and your login page.