Cursor quickstart
Cursor’s Agent mode can already touch every file in your repo. Add AgentValet as its MCP server and you decide what happens next: which branches it can push, which records it can update, which channels it can post to. A read-only scope stays read-only even if the agent tries to write.
Requirements
- Cursor installed
- Node.js 18 or later
- An AgentValet account. You don’t need to create one up front, the CLI signs you in via your browser the first time you run it.
Set up
Run this in your project directory:
npx @agentvalet/registerYour browser opens to sign in (or sign up, it’s free). Once you authorise, the CLI generates an RS256 keypair, registers the agent, and writes the MCP entry. By default that’s ~/.cursor/mcp.json (user-scoped, one config across every Cursor project, no restart-and-trust dance). Pass --project if you’d rather scope it to just this repo, that writes .cursor/mcp.json in the project directory instead.
The private key is written to .agentvalet/agent.key in the project directory, with a .gitignore entry added automatically.
Restart Cursor (or open the MCP settings panel) and you should see agentvalet listed as connected. The agent is active straight away, with no approval step, but it starts deny-by-default with no scopes until you grant some in the dashboard .
The user-scoped entry points at one agent: running the CLI again in another directory repoints ~/.cursor/mcp.json at the newest agent. Use --project when different repos need different agents.
Prefer to wire it up by hand?
{
"mcpServers": {
"agentvalet": {
"command": "npx",
"args": ["-y", "@agentvalet/register@latest", "mcp-server"],
"env": {
"AGENT_ID": "agt_...",
"OWNER_ID": "<your-owner-id>",
"PROXY_URL": "https://api.agentvalet.ai",
"AGENT_PRIVATE_KEY_PATH": "/path/to/project/.agentvalet/agent.key"
}
}
}
}You still need an agent and its private key, so run npx @agentvalet/register once and copy the values it prints. Without the env block the MCP server has no identity to sign with: the default registration doesn’t write the ~/.agentvalet/agent.json it would otherwise fall back to.
Alternative: connect over OAuth
Cursor supports Streamable HTTP MCP servers directly. Add this in Cursor’s MCP settings:
{
"mcpServers": {
"agentvalet": {
"url": "https://api.agentvalet.ai/mcp/v1/<your-owner-id>"
}
}
}Cursor shows a “Needs login” button next to AgentValet. Click it, approve the OAuth consent in your browser, and AgentValet provisions a new agent for the connection. Cursor holds a short-lived access token from AgentValet’s OAuth server, not a signing key, and nothing long-lived sits in your config. Get the URL pre-filled from app.agentvalet.ai → Agents → Connect Claude, ChatGPT, Copilot…, or find your owner ID under Settings → Account.
Confirm it loaded
Open Cursor’s MCP settings (the exact menu path varies by version). You should see agentvalet listed as connected, and in Agent mode its tools appear automatically.
Make your first governed call
Ask the agent to call list_platforms. It should return the platforms approved for this agent, an empty list at first, and that’s fine. What matters is that the call succeeds: your key signs correctly, the proxy is reachable, and the agent record is active.
From there, grant scopes for a platform you’ve connected in the dashboard and try a real call.