Add DialMCP to VS Code.
Updated October 18, 2026
VS Code connects to remote MCP servers natively, so DialMCP needs no
install, no package, and no API key. You add one URL,
https://mcp.dialmcp.com/mcp, sign in once in
the browser, and an agent in VS Code chat can place a real phone call
from your own verified number. This page covers setup from the first
click to a test call, plus the errors people actually hit. The shorter
multi-client version is on client setup.
mcpServers key, and VS Code's
docs prefer them for new servers. The older
.vscode/mcp.json and profile
mcp.json (both with a
servers key) are now marked as deprecated
targets in that flow, but both still work. This page gives both shapes. Checked against VS Code 1.142 docs on
October 18, 2026.
What you need
- VS Code 1.102 or later. That release made MCP support generally available. The portable config targets below need 1.140 or later. The current stable release is 1.142 (October 14, 2026), and stable now ships about weekly, so update first if menus below don't match.
- Chat with an agent. MCP tools are called by agents in the Chat view. That needs a model: a Copilot plan via GitHub sign-in (no subscription enrolls you in Copilot Free), or your own model key. VS Code's docs say bring-your-own-key models work without a GitHub account or Copilot plan; in the newer Copilot harness, that still needs an experimental setting.
- MCP allowed by your organization. Admins can switch it off with the
chat.mcp.accesspolicy, or limit which servers are allowed (theChatAllowedMcpServerspolicy). See troubleshooting. - A US or Canadian mobile number. DialMCP verifies it by SMS and uses it as caller ID.
1. Add the server with MCP: Add Server
This is the guided path, and it picks the right JSON shape for you.
- Open the Command Palette (
Ctrl+Shift+P, orCmd+Shift+Pon macOS) and run MCP: Add Server. The same flow is under Chat: Open Customizations → MCP Servers → +. - Choose HTTP (HTTP or Server-Sent Events), not "Command (stdio)".
- Enter the URL
https://mcp.dialmcp.com/mcp. Include/mcp. - Enter a server ID:
dialmcp. - Choose where to save it. Pick Global, then Copilot Global, to make DialMCP available in every workspace. .mcp.json saves it to the current workspace root, which is right only if you want to share the entry with your team. The deprecated
.vscode/mcp.jsonand user-profile targets are still offered for compatibility.
Prefer a link? VS Code's documented install handler takes the URL-encoded
server JSON. Opening this link in a browser hands it to VS Code, which
opens an install prompt:
install DialMCP in VS Code.
Insiders uses the vscode-insiders: scheme instead.
You can also search @mcp in the Extensions
view to browse the MCP server gallery.
2. Or edit the config file by hand
The root key depends on the file. This is a common reason a pasted server never appears: the JSON is valid, but VS Code ignores a root key it does not expect.
~/.copilot/mcp-config.json(or$COPILOT_HOME/mcp-config.json): you, every workspace. Preferred for personal servers. Root keymcpServers..mcp.jsonat the workspace root: this workspace. Preferred for servers you share with your team. Root keymcpServers.- Profile
mcp.json, opened with MCP: Open User Configuration: you, every workspace. A deprecated target in MCP: Add Server, still used for profile-specific setups. Root keyservers. .vscode/mcp.json, opened with MCP: Open Workspace Folder MCP Configuration: this workspace. A deprecated target in MCP: Add Server, but still documented for${input:…}variables, dev mode, and per-server sandboxing. Root keyservers.
Portable files (mcp-config.json, .mcp.json):
{
"mcpServers": {
"dialmcp": {
"type": "http",
"url": "https://mcp.dialmcp.com/mcp"
}
}
}
VS Code files (.vscode/mcp.json, profile mcp.json):
{
"servers": {
"dialmcp": {
"type": "http",
"url": "https://mcp.dialmcp.com/mcp"
}
}
}
That is the whole entry. Do not add headers,
a bearer token, or an oauth block. VS Code's
oauth.clientId field is for servers that need
a pre-registered client, and DialMCP registers clients automatically.
type: "sse" is legacy in VS Code and not
needed: DialMCP speaks Streamable HTTP.
Every client's file path side by side:
MCP server configuration examples.
Settings Sync can carry servers in the profile mcp.json
between machines (Settings Sync: Configure → MCP Servers).
For a dev container, put the servers block under
customizations.vscode.mcp in
devcontainer.json.
3. Trust the server and sign in
Trust. Servers in .mcp.json
or .vscode/mcp.json follow the workspace's
trust setting: in a trusted folder they start with no separate prompt,
and in Restricted Mode they do not start. Servers from your user
configuration or the gallery show a trust dialog when they first
start or when their configuration changes. MCP: Reset Trust clears those decisions.
Sign in. On first start, VS Code reads DialMCP's
401, discovers the authorization server,
registers itself through OAuth dynamic client registration, and opens
your browser. We checked on October 18, 2026 that DialMCP's registration
endpoint accepts the two redirect URIs VS Code documents,
http://127.0.0.1:33418 and
https://vscode.dev/redirect. The browser
steps are the same as in every client:
- Enter your US or Canadian mobile number.
- Type the SMS code.
- First time only: the first name the assistant should use on calls.
- Click Allow on the consent screen, then return to VS Code.
The full flow, token lifetimes, and every sign-in error message are on OAuth and phone verification.
4. Use DialMCP in chat
- Open the Chat view and choose Agent in the agent picker. MCP tools are called by agents.
- Make sure DialMCP's tools are switched on. In the Local harness, click the Configure Tools button in the chat input and tick the
dialmcpgroup. In the newer Copilot harness (it may already be your default), tools are managed in Chat: Open Customizations → Tools, and the choice persists across sessions. - Test without dialing anyone: "List my recent DialMCP calls." That runs the read-only
list_calls. An empty list on a new account is a pass. - Then ask for one concrete call: who to call, the number, and the goal. Example: "Use DialMCP to call the dentist at +1… and move my Thursday cleaning to next week."
place_call returns a call_id
and a private listen_url right away, and
the call runs in the background, usually 2 to 5 minutes. The agent then
checks get_call, which can wait up to 50
seconds per request, until the outcome, transcript, and recording link
are ready. Arguments and statuses for all four tools are in the
tool reference.
Tool approvals
VS Code asks before running an MCP tool unless the tool is annotated
readOnlyHint. DialMCP's four tools carry no
annotations, so all of them ask the first time, including the read-only
list_calls and get_call.
The dialog lets you allow a tool once, for the session, for the
workspace, or always. Chat: Manage Tool Approval shows
the choices per server.
A sensible split: approve get_call and
list_calls for the session, and keep
place_call and end_call
on manual approval. Do not turn on Allow all, Autopilot, or /yolo
in a chat that can place calls. To force a prompt even under
broader auto-approval, set place_call to
false in chat.tools.eligibleForAutoApproval. place_call
rings a real phone, and the confirmation is where you check the number
and the objective. Server-side limits still apply whatever you approve:
calling hours, rate limits, AI disclosure, and opt-outs are enforced by
DialMCP. See Safety.
Troubleshooting
First stop for any failure: MCP: List Servers, select
dialmcp, then Show Output.
The same menu has Start, Stop, Restart, Show Configuration, and
Sign Out (shown as Disconnect Account when the account is shared).
- Server never appears. Wrong root key for the file.
mcpServersbelongs in.mcp.jsonandmcp-config.json;serversbelongs in.vscode/mcp.jsonand the profilemcp.json. VS Code does not read MCP servers fromsettings.json. - Workspace server does not start. The folder is in Restricted Mode. Trust the workspace, or move DialMCP to your user configuration.
- The
.mcp.jsontarget is missing from MCP: Add Server. It is behind the experimental settingchat.mcp.workspaceRootConfig.enabled. Use Copilot Global instead. - Server runs but the tools are not offered. Agent is not selected in the agent picker, or the tools are switched off in Configure Tools or the Customizations Tools tab. If you changed servers recently, run MCP: Reset Cached Tools.
- "Cannot have more than 128 tools per request." Too many servers are enabled at once. Turn off tools you are not using in this chat; DialMCP only adds four.
- No browser window for sign-in, or it loops. Use Sign Out from the server menu, or Authentication: Remove Dynamic Authentication Providers, then restart the server. Restart the sign-in from VS Code, not from browser history.
- MCP is missing, or DialMCP is blocked. Your organization disabled MCP (
chat.mcp.accessset tonone), limited it to a private registry (registry), or restricted servers with theChatAllowedMcpServerspolicy. Developer: Policy Diagnostics shows which policies apply. Ask your admin to allowhttps://mcp.dialmcp.com/mcp. - The call was refused. That is policy, not setup.
place_callreturns a code such asoutside_calling_hoursorrate_limited. The full list is on client setup.
Do you need the stdio bridge?
Almost never in VS Code. The bridge, npx -y dialmcp-connector,
exists for hosts that can only launch local servers, and VS Code is a
remote client. If you must use it, for example behind a proxy that only
a local process can traverse, it needs Node.js 20.18.1 or later. Use
the stdio shape in .vscode/mcp.json:
{
"servers": {
"dialmcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "dialmcp-connector"]
}
}
}
Proxy flags and the Node check are on install. Why a hosted URL beats a local process for most people: remote MCP servers explained.
FAQ
Where does VS Code store MCP servers?
In one of four files. The portable Copilot files use an
mcpServers key: .mcp.json
at the workspace root, and ~/.copilot/mcp-config.json
for your user. The older VS Code files use a servers
key: .vscode/mcp.json and the profile
mcp.json. VS Code's docs prefer the portable
files for new servers. settings.json is not
an MCP server file.
Do I need an API key to use DialMCP in VS Code?
No. Add only type and url.
VS Code registers itself through OAuth dynamic client registration and
opens a browser sign-in on first connection.
Why does VS Code ask me to approve every DialMCP tool?
VS Code skips the prompt only for tools annotated
readOnlyHint, and DialMCP's tools carry no
annotations. Approve the read-only ones for the session; keep
place_call manual.
Does the MCP server need GitHub Copilot?
It needs chat with an agent, which needs a model: a Copilot plan (including Copilot Free) or your own model key. VS Code's docs say bring-your-own-key models work without a GitHub account or Copilot plan.
Using another editor? Claude, Codex and Cursor, ChatGPT, or the Claude Code MCP setup. Back to the docs hub.