The hosted MCP server is a URL.
Updated September 19, 2026
A hosted MCP server is a Model Context Protocol server that
already runs somewhere on the network. You do not start it with
npx. You paste a HTTPS URL into a client that
speaks remote MCP. The current remote transport is Streamable HTTP: one
endpoint, each JSON-RPC message its own HTTP POST. The
2026-07-28 spec
uses https://example.com/mcp as the example shape.
DialMCP is that shape for phone calls. The calling service is hosted. The URL below is the product. The long explainer of remote vs local is remote MCP servers explained. This page is the endpoint itself.
URL: https://mcp.dialmcp.com/mcp
Transport: Streamable HTTP
Auth: OAuth 2.1
Include /mcp. There is no API key. First
connection opens a browser for sign-in and SMS verification.
Step-by-step: install.
URL versus npx
Two ways to reach the same server:
-
Remote URL. The client POSTs to
https://mcp.dialmcp.com/mcp. Nothing is installed on the laptop. This is what Claude custom connectors, Claude Code--transport http, Cursor'surlfield, VS Code"type": "http", ChatGPT developer mode, and Codexurl =expect. -
Stdio bridge.
npx dialmcp-connectoris for hosts that only launch local processes. It speaks stdin/stdout to the host and Streamable HTTP to DialMCP. It does not contain the phone-call service. Node.js 18+ is required only for this path.
If the client can take a URL, use the URL. ChatGPT cannot launch stdio at all: ChatGPT MCP connector. Copy-ready JSON for other hosts: client setup and configuration examples.
What the URL speaks
Streamable HTTP replaced HTTP+SSE (protocol version 2024-11-05). Spec 2026-07-28 then dropped the GET stream and protocol-level sessions. A modern hosted MCP server is:
- One path, conventionally
/mcp, that accepts POST. - Each client message is its own POST. The body is one JSON-RPC request or notification.
- The reply is either
application/jsonor a request-scopedtext/event-streamSSE body. That SSE is a reply shape, not the old two-endpoint transport. - Origin must be validated. An invalid Origin is HTTP 403.
You do not configure any of that for DialMCP. The hosted server already does it. You only need a client that can POST to a remote MCP URL and complete OAuth. Building your own server instead: MCP server tutorial.
OAuth, not an API key
MCP authorization is optional in the 2026-07-28 authorization spec. HTTP implementations should follow OAuth 2.1. Stdio implementations should not; they take credentials from the environment. DialMCP is a public HTTPS server that places real phone calls, so it uses OAuth 2.1.
- Add the URL. An unauthenticated request is challenged.
- The client opens a browser. Sign in, then verify a US or Canadian mobile number by SMS.
- That verified number is the caller ID on calls you authorize. DialMCP does not spoof caller ID.
Details and what OAuth does not bypass: OAuth and phone verification. Safety limits stay on the server: Safety.
What this is not
- Not an MCP hosting platform. Search results for "hosted MCP server" are mostly products that run your process (an OpenAPI wrapper, a Docker image, an npx package in their cloud). DialMCP does not take your tools or your image. It is one hosted phone-call server you connect to.
- Not a Docker image of DialMCP. There is nothing to containerize. If you are packaging a server you wrote, that is deploy an MCP server with Docker.
- Not localhost. Claude custom connectors originate at Anthropic's cloud. A process bound to your laptop will not answer as a hosted endpoint. Use stdio config for local servers.
-
Not a second set of tools. Remote or bridge, the tools
are still
place_call,get_call,end_call, andlist_calls. Tool reference.
Paste the URL, finish OAuth, then ask the agent to place one specific call. Back to the docs hub.