Skip to lesson
Exit
MCP Config, Auth and Tool Approval1 / 2

2 min lesson

Wait for MCP Authentication pauses the run until servers finish auth

Use "Confirm Wait for MCP Authentication is on for any server that can hold a broad token" to describe the practical rule.

Step 1 of 2

The job: you can set up MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. without leaking credentials or over-approving tools. Start with this check: No secret is committed in mcp.json. Keep it small enough to check the result yourself instead of taking the summary on trust.

Keep Wait for MCP Authentication on

0:18 · narrated
Read this demo as text
  1. Wait for MCP Authentication stays on so a run does not race ahead of a half-authed server. Logout lives on the row — there is no mid-run approval modal to invent here.
Wait for MCP Authentication pauses the run until servers finish auth — Logout lives on the row, not a mid-run modal.

Practice next: Confirm Wait for MCP Authentication is on for any server that can hold a broad token.

Simulated Cursor 3.12 (macOS, light) — beta educational reconstruction, not the real product.

Learn more

Full explanation

mcp.json scope, ${env:...}, tool approval

MCP config — share a server without handing over your token
mcp.json scope, ${env:...}, tool approval
SayThe whole team keeps re-adding the same Postgres MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. by hand, and someone pasted the connection string straight into the file. I want to share it once, without shipping the secret.
DoDecide scope first. A project server lives in .cursor/mcp.json at the repo root and travels with the repo to whoever clones it; a personal one lives in ~/.cursor/mcp.json and stays on your machine. This one is for the team, so it goes in the project file.
DoPut the credential in as a placeholder, not the value: ${env:DATABASE_URL} in the env block, never the connection string inline. The committed file then names the server without carrying the secret, and each person supplies DATABASE_URL from their own environment.
SeeThe project file is safe to commit. Anyone who clones the repo gets the server definition and plugs in their own credential.
DoAuthenticate by the simplest path that works. An API-key server is done once the placeholder resolves. An OAuth server needs more: start an agent, run /MCP login, and pick the server to authenticate. Try the API-key config first, and fall back to the OAuth login flow only when the server requires it.
DoApprove only the tools the task needs. A read-schema and a run-query tool, yes; leave any write or migration tool unapproved so a stray prompt can't reshape the database.
SeeThe server is shared and the secret never left anyone's machine. The agent can read the database, not rewrite it. One caution on precedence: if both your global and the project file name the same server, that is two definitions to keep in sync, so keep each server in a single scope.
Learn more

Optional practice

Wait for MCP Authentication pauses the run until servers finish auth

QYou've applied it. What actually proves the work is done, not just a plausible answer?