Where Cline’s MCP config lives, what goes in it, the marketplace and GitHub install paths, and how to fix the common failures — plus how to put a policy gate in front of every tool call.
QUICK ANSWERQuick answer: servers live in cline_mcp_settings.json — open it via the MCP Servers icon → Configure tab → Configure MCP Servers. Top-level key is mcpServers.
| Scope | Path | Notes |
|---|---|---|
| VS Code extension | cline_mcp_settings.json | Open it via the MCP Servers icon → Configure tab → Configure MCP Servers — the button opens the right file for your install. |
| Cline CLI | ~/.cline/mcp.json | Used by the standalone CLI. |
The extension file’s on-disk location has moved between versions (older installs kept it under VS Code’s globalStorage/saoudrizwan.claude-dev/settings/) — the Configure button is the reliable route.
A top-level mcpServers object, one entry per server. Local servers declare a command; remote servers declare a url. Cline adds two keys most clients don’t have: disabled and autoApprove.
| Key | What it does |
|---|---|
command | Executable for a stdio server. Use an absolute path if PATH resolution fails. |
args | Array of arguments passed to the command. |
env | Environment variables for the server process. |
url | Endpoint for a remote server — streamable HTTP recommended, SSE legacy. |
headers | HTTP headers for remote servers — where auth tokens go. |
disabled | Set true to switch a server off without deleting its config. |
autoApprove | Array of tool names Cline may run without asking. Empty array = approve every call manually. |
timeout | Connection/request timeout for the server. |
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
} REMOTE SERVER (HTTP):
{
"mcpServers": {
"remote-server": {
"url": "https://example.com/mcp",
"headers": {
"Authorization": "Bearer <token>"
},
"disabled": false,
"autoApprove": []
}
}
} | Transport | Status | How to declare it |
|---|---|---|
| stdio | Supported | Declare command + args. Runs locally. |
| Streamable HTTP | Supported | Declare url. The recommended remote transport. |
| SSE | Deprecated | Legacy remote transport; still accepted, prefer streamable HTTP. |
Click the MCP Servers icon in Cline’s top toolbar → Configure tab → Configure MCP Servers opens the JSON file. Save and Cline reloads the list.
The Marketplace tab in the same panel offers one-click installs for popular servers — Cline writes the config for you.
The Remote Servers tab adds a URL-based server from the UI, and the cline mcp CLI wizard prompts for a name, transport, and command or URL.
autoApprove entry it will ask before each call.Use the Restart Server button in the MCP panel — the most common fix after a config change or a crashed process.
GUI-launched VS Code doesn’t always inherit your shell PATH. Use an absolute path for command — which npx gives it to you.
That’s the default. Add the tool names you trust to the server’s autoApprove array.
Use streamable HTTP rather than legacy SSE, and put the auth token in headers.Authorization. Raise timeout for slow servers.
Don’t hunt the filesystem — the location has moved between versions. The Configure MCP Servers button in the MCP panel opens the right file for your install.
A standard Postgres MCP wired into Cline. Every query hits the database directly, with no audit trail and no statement-level controls.
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"],
"env": {},
"disabled": false
}
}
} Register the Postgres MCP in PolicyLayer, mint a grant, point Cline at the proxy URL. PolicyLayer evaluates every call against the grant’s policy before it reaches the database.
{
"mcpServers": {
"postgres": {
"url": "https://proxy.policylayer.com/mcp/<server-uuid>/",
"headers": {
"Authorization": "Bearer <grant-token>"
},
"disabled": false
}
}
} The <server-uuid> appears on each server's detail page. The <grant-token> shows once at mint time. See the Quick start for the full setup walk-through — and if you operate under SOC 2, HIPAA, GDPR or similar, the compliance hub maps how gateway-mediated MCP traffic evidences each framework.
Allow list_tables. Allow queries, but deny any statement containing DROP, TRUNCATE or DELETE.
{
"version": "1",
"default": "deny",
"tools": {
"query": {
"deny_if": [
{
"conditions": [
{ "path": "args.sql", "op": "regex", "value": "(?i)(DROP|TRUNCATE|DELETE)\\s" }
]
}
]
},
"list_tables": {}
}
} See Writing policies for the policy format, operators, and quota shapes.
The reliable route is the MCP Servers icon → Configure tab → Configure MCP Servers, which opens cline_mcp_settings.json wherever your install keeps it — the on-disk location has moved between versions. The standalone Cline CLI uses ~/.cline/mcp.json.
It lists tool names Cline may execute without asking you first. With an empty array (the default), every tool call needs manual approval. Only auto-approve tools you would be happy to see run unattended.
Yes. Declare a url instead of a command — streamable HTTP is the recommended transport, with SSE kept as legacy support. Auth tokens go in the headers block.
The MCP Marketplace tab offers one-click installs, the Remote Servers tab adds URL-based servers from the UI, and the cline mcp CLI wizard walks through name, transport and command or URL.
autoApprove only decides whether you are asked — it can’t inspect arguments, rate-limit, or log calls. For rules like “allow queries but never DROP” you need argument-level policy, which is what routing the server through PolicyLayer adds.
Route your MCP traffic through PolicyLayer. Every tool call is checked against your policy before it runs: allow, deny, or require approval. Per-identity grants. Full audit log. Live in minutes.
Instant setup, no code required.
46,500+ MCP servers and 515,000+ tools scanned and risk-classified.