Documentation

Search documentation

Try deployment, Codex, or data access.

    Browse documentation

    How to add an MCP server to Cursor: connect SpringRoll with mcp.json and deploy your app

    SpringRoll is a remote MCP server for shipping what you build in Cursor. Add it to your project's mcp.json, sign in once from the Cursor CLI, and Cursor's agent can deploy the project to managed Vercel or Cloudflare, follow the build to READY and list the app in your team's App Portal. This guide sets up SpringRoll, explains each mcp.json choice and ends with a deployed app.

    On this page

    Add SpringRoll to .cursor/mcp.json

    Create .cursor/mcp.json in the root of the project you want to deploy, or add the springroll entry if the file already exists. SpringRoll needs only its URL: no API key, header or client ID.

    Cursor's editor and the Cursor CLI read the same file. Commit it if your team should deploy through the same SpringRoll server; it holds the address, never a credential.

    {
      "mcpServers": {
        "springroll": {
          "url": "https://springroll.dev/api/mcp"
        }
      }
    }

    Sign in to SpringRoll from the Cursor CLI

    Run this in the project folder. Your browser opens SpringRoll’s authorization page; choose Connect SpringRoll to start as a guest, or use your existing signed-in workspace. Then list SpringRoll’s tools to confirm the connection.

    If you do not have the CLI yet, install it with curl https://cursor.com/install -fsS | bash on macOS, Linux and WSL. Earlier versions of the CLI were called cursor-agent; use the name your installation has.

    agent mcp login springroll
    agent mcp list-tools springroll

    Why the sign-in runs from the CLI

    SpringRoll returns a sign-in only to an HTTPS address, a loopback address on your own machine, or an app scheme written as a reversed domain name. That rule stops another app from catching your credential. The CLI's login receives the sign-in on a loopback address, which SpringRoll accepts. The editor's built-in sign-in returns to a cursor: address, which SpringRoll refuses when Cursor registers, so complete SpringRoll's sign-in from the CLI.

    Deploy your app from Cursor's agent

    Start the agent with agent in your project folder and ask it to deploy. This prompt has it check the build, runtime and storage, then show you the exact deployment proposal before it publishes anything.

    Prepare this project for SpringRoll. Read the Company Blueprint, inspect my source and discover supported workloads and services. Check the build, workspace, owner and deployment workflow; show the exact deployment proposal for confirmation, then follow the build to its actual result.

    What happens when Cursor deploys through SpringRoll

    The agent reads your workspace with springroll.context, then calls springroll.deploy. SpringRoll takes the source from a pushed repository or the files in your folder, so git is optional. It returns the app's URL and a placement receipt naming the provider, plan, estimated cost and any limit. The agent follows springroll.deploy.status until the build is READY, and reads the build logs if it fails.

    Apps on the Direct workflow go straight to Production. Apps on the Staged workflow start in Development and need a person's approval to reach Production.

    SpringRoll in mcp.json: project or global

    Keep SpringRoll in the project file when one repository deploys through it, or in the global file to have it in every project. The CLI reads project configuration before global configuration.

    Scroll sideways to see all columns. With the table focused, use the arrow keys.

    Where Cursor reads SpringRoll's entry and who gets it.
    FileLoads inShared with teammates
    .cursor/mcp.jsonThis projectYes, when committed
    ~/.cursor/mcp.jsonEvery project on your machineNo

    mcp.json keys you may see next to SpringRoll

    SpringRoll's entry uses one key. The others belong to servers that work differently.

    Scroll sideways to see all columns. With the table focused, use the arrow keys.

    Cursor mcp.json keys, and which ones SpringRoll needs.
    KeyUsed forSpringRoll
    urlA remote server over streamable HTTP or SSERequired: https://springroll.dev/api/mcp
    headersFixed credentials, such as an API key headerNot used; sign-in is OAuth
    authA static OAuth client ID and secretNot used; SpringRoll registers Cursor automatically
    command, args, envA local server that Cursor starts on your machineNot used; SpringRoll is remote

    Check, enable or disable SpringRoll in the Cursor CLI

    Inside an agent session, /mcp list shows the same information. In the editor, open the Output panel and choose MCP Logs to see connection errors.

    agent mcp list                    # browse, enable and configure servers
    agent mcp list-tools springroll   # SpringRoll's tools and parameters
    agent mcp disable springroll      # stop loading SpringRoll
    agent mcp enable springroll

    What SpringRoll adds to Cursor

    These are the SpringRoll tools Cursor's agent uses most when shipping an app.

    Scroll sideways to see all columns. With the table focused, use the arrow keys.

    SpringRoll MCP tools available in Cursor, from the live server card.
    ToolWhat it does
    springroll.contextShows which organization, identity and permissions the connection acts as, and which runtimes can take a deployment.
    springroll.placement.previewScores where the app would run and what it would cost on managed Vercel or Cloudflare, without deploying anything.
    springroll.deployRegisters the project if it is new, takes its source from a pushed repository or the files in your folder, and deploys it.
    springroll.deploy.statusFollows the build from QUEUED to READY or failure, with build logs when you ask for them.
    springroll.deploy.promoteMoves a tested release to the next environment, such as UAT to Production, reusing the built artifact.
    springroll.approval.submit, springroll.approval.getAsks the configured reviewers for a decision, such as a production promotion, and reports where it stands.
    springroll.app.list, springroll.app.get, springroll.app.updateFinds your apps, reads an app's registry record and updates its App Portal details, such as description and support contact.
    springroll.security.audit, springroll.security.statusRuns your company's configured security checks on a release and reads the findings.
    springroll.connect.data_products, springroll.connect.request_accessLists governed company data and requests specific fields for one environment, for a data owner to approve.
    springroll.app.record_promptsAttaches the conversation that produced the app to its record, for the next maintainer and the reviewer.

    What Cursor's agent cannot do through SpringRoll

    Connecting Cursor does not let its agent bypass your team's rules.

    • It cannot approve its own requests. Agent connections cannot record approval decisions.
    • It never returns a credential, connection string or secret, and it cannot grant itself access to data.
    • It cannot widen an app's audience, transfer ownership, change a production domain, roll back or retire an app without a person's approval.
    • Every call is recorded in the organization's audit log against the person who authorized the connection.

    Using SpringRoll from other editors and agents

    SpringRoll publishes tested setup for Claude Code, Codex, Cursor, Claude and ChatGPT. Other editors and agents, such as VS Code, Windsurf and Gemini CLI, can use the same URL, https://springroll.dev/api/mcp, when they support remote servers with OAuth sign-in and return the sign-in to an HTTPS, loopback or reversed-domain address. SpringRoll has not published a tested setup for them yet.

    Troubleshooting SpringRoll in Cursor

    Match what you see.

    • The editor shows that SpringRoll needs a login, or its sign-in fails: run agent mcp login springroll in the project folder instead.
    • agent mcp login cannot find springroll: run it from the folder that contains .cursor/mcp.json, or add SpringRoll to ~/.cursor/mcp.json.
    • SpringRoll's tools do not load: run agent mcp enable springroll, then check MCP Logs in the editor's Output panel.
    • springroll.context reports that no runtime can take a deployment: deployments are not set up for that workspace yet. Ask a workspace administrator.
    • A deployment is refused with POLICY_BLOCKED: ask the agent to run springroll.policy.check for the app, which names what must change.
    • A build fails: ask the agent to read springroll.deploy.status with build logs, fix the cause, then deploy again.

    What this guide was checked against

    Cursor steps were checked against Cursor's MCP and CLI documentation on 8 November 2026, and the sign-in explanation against SpringRoll's OAuth redirect rules on the same day. Run agent mcp --help to confirm what your installed version supports.

    Frequently asked questions

    Does SpringRoll need an API key in Cursor's mcp.json?

    No. The entry needs only the url. Approve the connection in your browser to start as a guest, or use your existing signed-in workspace.

    Why do I sign in to SpringRoll from the CLI instead of Cursor's settings?

    SpringRoll accepts sign-in returns only on HTTPS, loopback or reversed-domain addresses. The CLI's login uses a loopback address; the editor's built-in sign-in does not.

    Can my team share the SpringRoll entry in Cursor?

    Yes. Commit .cursor/mcp.json. It contains only the URL; each teammate signs in as themselves.

    Can Cursor's agent approve its own deployment through SpringRoll?

    No. Agent connections cannot record approval decisions. On the Staged workflow a configured reviewer approves the release.