mcpbeat Sign in

SpringRoll MCP Server

by springrolldev Your server? Claim it
not responding

SpringRoll is listed as active in the registry but did not answer our last check. It exposes 15 tools.

Register, deploy, review, and govern internal applications built with coding agents.

Uptime history 40 days of history · worst day 0%
40 days agonow
5.5%
Uptime 24h
5 of 91 checks
15
Tools
read from the server
473 ms
Response time
average over 24h
open, no key
Access
streamable-http

What changed 16

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 30 August 2026. No other catalogue keeps this.

20 Sep 2 tools changed the parameters they ask for springroll.deploy, springroll.placement.preview
1 Sep 2 tools changed the parameters they ask for springroll.deploy, springroll.placement.preview
31 Aug 2 tools changed the parameters they ask for springroll.deploy, springroll.placement.preview
31 Aug a tool appeared springroll.placement.preview
30 Aug 7 tool descriptions were rewritten springroll.app.get, springroll.app.record_prompts, springroll.approval.submit and 4 more
30 Aug 2 tools changed the parameters they ask for springroll.connect.request_access, springroll.deploy

SpringRoll does not always answer

Over the last week it answered 5.5% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 3 min ago.

run in your terminal
claude mcp add springroll --transport http https://springroll.dev/api/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "springroll": {
      "url": "https://springroll.dev/api/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.springroll]
url = "https://springroll.dev/api/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "springroll": {
      "url": "https://springroll.dev/api/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "springroll": {
      "url": "https://springroll.dev/api/mcp"
    }
  }
}

Available tools 15

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

springroll
springroll.app.get
Returns an application's registry record: metadata, lifecycle stage, risk score, and whichever of the optional sections you ask for. No secrets are included. Sections, all returned by default: • `source`: repository or uploaded bundle, and `cannotBuildReason` when a deploy would be refused for want of a source • `history`: recent releases and deployments • `status`: each environment's current deployment, outstanding approvals, and usage. This answers "where is my app up to?" • `grants`: data access grants and dependencies Pass a narrower `include` when you only need part of it; each section costs a query.
springroll.app.list
Lists applications in this organization, newest first. Use `search` to find one by name or slug.
springroll.app.record_prompts
Attaches the conversation that produced this application to its record, as reference for whoever maintains it next and for the reviewer who has to approve it. Ask the user before calling this, every time. The transcript is STORED and is READABLE BY ANYONE who can see the application record. SpringRoll scrubs credentials it recognises before writing (agent tokens, cloud keys, private keys, connection strings, and assignment lines whose key looks like a secret), but that scrubbing is best-effort and cannot be complete. If the conversation contained a real secret, do not record it. Send turns in order. Keep `sessionKey` stable across calls for one build so they join up; retrying with the same key and turn indexes overwrites rather than duplicating.
springroll.app.update
Updates App Portal metadata: description, icon, tags, department, support contact, and data classification. Visibility is deliberately not editable here, because widening an audience requires an approval request (sec. 15.4).
springroll.approval.get
Returns an approval request with its assigned reviewers, decisions so far, and the policy snapshot taken at submission. Poll this to find out whether a release has been approved.
springroll.approval.submit
Submits an approval request of any supported type: UAT_PROMOTION, UAT_SIGN_OFF, PRODUCTION_PROMOTION, VISIBILITY_CHANGE, OWNERSHIP_TRANSFER, RETIREMENT, DOMAIN_CHANGE, or ROLLBACK. **An agent may submit but never decide**: SpringRoll requires a human approver, and an agent token cannot approve its own request. Confirm with the user before calling this. It creates review work for named people. Type-specific behaviour: • `PRODUCTION_PROMOTION`: this does NOT deploy. It asks. `releaseId` defaults to the application's latest release. Once approved, call springroll.deploy.promote. • `ROLLBACK`: `justification` is required, and `targetEnvironmentType` says which environment to roll back. Put the deployment to restore in `payload.targetDeploymentId`; it defaults to the last successful one. • `RETIREMENT`: `justification` is required.
springroll.connect.access_status
Returns the status of a data access request: REQUESTED, APPROVED, REJECTED, REVOKED, or EXPIRED, with the fields actually approved. Approved fields are often narrower than requested, and a row filter may restrict which rows the application can see at all.
springroll.connect.data_products
Without `dataProduct`, lists the governed data products this organization publishes: what each one holds, who owns it, and how sensitive it is. With `dataProduct`, returns that product's schema: its datasets, the available fields with their types and sensitivity, the business glossary its owner wrote, and what the underlying source can compute. Read this before requesting access, so you request the fields the application actually needs. Either way you learn the *kind* of system behind a product (so you know, for example, that a Notion-backed product cannot aggregate) but never a host, a credential, a table name, or a connection string. Request access with springroll.connect.request_access; a data owner must approve it.
springroll.connect.request_access
Requests access to a data product for one environment, naming the exact fields the application needs. A data owner must approve, and may narrow the field list or add a row filter before doing so. Nothing is readable until then. You never receive a credential: an approved grant lets the deployed application ask questions through the SpringRoll Connect gateway, which enforces the grant on every request.
springroll.context
Returns the organization, identity, and permissions this agent token acts as, together with the deployment runtimes configured for it. Call this first: it tells you which tenant you are in, what you are allowed to do, and whether a deployment can actually land. It never returns credentials.
springroll.deploy
Registers the project if it is new, attaches whatever source you give it, and deploys it using the application's Deployment workflow. Direct applications go to Production; Staged applications go to Development. Returns the live URL, or a deployment id to poll if the build is still running. **You do not decide whether this project needs git.** Send what you have and SpringRoll works it out: • a pushed git remote → pass `repositoryUrl` (and `ref` if not the default branch) • no remote, or uncommitted work → pass `archive`, a base64 tar+gzip of the source: tar --exclude=node_modules --exclude=.next --exclude=.git --exclude='.env*' \ -czf - . | base64 -w0 • both → SpringRoll builds from git, and falls back to your files if the ref cannot be resolved (an unpushed branch, typically) • neither, on an app that already exists → redeploys its current source Upload SOURCE, not build output: SpringRoll runs the build. node_modules, .next, dist, build, out, coverage and .log files are dropped automatically and reported. Every .env file and .git/ is REFUSED outright, naming the offending path: configuration belongs in SpringRoll, not in the bundle. Upload limits are about 3 MB compressed on the wire (a platform request-body cap, not a preference), 20 MB expanded, 2000 files, 512 KB per file; a project past them should pass `repositoryUrl` instead, which SpringRoll clones directly with no size limit. Sending the same files twice is free, because bundles are addressed by content. Direct to Production skips workflow approvals but keeps production safety checks. Staged applications continue to use explicit promotion and approvals.
springroll.deploy.promote
Promotes a tested deployment into the next environment (development -> uat, uat -> production). Reuses the already-built artifact rather than rebuilding, so the bytes that were tested are the bytes that ship. Promotion into an environment that requires approval will be refused until the approval exists. For production, submit the request first.
springroll.deploy.status
Returns a deployment's current status, refreshing it from the runtime provider when the build is still in progress. Statuses: QUEUED, VALIDATING, BUILDING, DEPLOYING, READY, FAILED, CANCELLED, SUPERSEDED, ROLLED_BACK. Poll this after deploying rather than assuming success. Pass `includeLogs` to get the normalised build and deploy log lines alongside the status. Do that once the status is FAILED, rather than guessing at the cause.
springroll.placement.preview
Scores where SpringRoll would place this application and what it would cost, without deploying or writing anything. It shares its implementation with springroll.deploy, so the receipt it returns is what a deploy right now would decide: the provider and plan, the estimated monthly cost range, every limit the plan carries, what was inferred rather than declared, and why each other candidate lost. It works before any provider account is connected. The ranking is computed from the public catalog alone and credentials never affect it: connecting an account changes only whether a plan is deployable, never how it ranks. Each ranked alternative carries its readiness and the action that unlocks it, so you can tell the user both what is recommended and what would deploy today. Use it to put the cost and the limits in front of the user before deploying, or to ask what-if questions by varying the placement hints.
springroll.policy.check
Reports which governance policies an application would pass or fail for an environment. Send `manifest` (YAML or JSON) to validate a document without creating anything. Call this before springroll.deploy to avoid a rejected submission. Read the `springroll://manifest/example` resource for the document's shape. Send `application` instead to explain why an existing application cannot deploy or promote to `environmentType`, with specific remediation for each failing rule. Call this when a deployment is rejected with POLICY_BLOCKED. Send exactly one of the two.

Endpoints

URLTransportStateLatencyChecked
https://springroll.dev/api/mcp streamable-http answering 200 ms 3 min ago

Alternatives to SpringRoll

same job, measured the same way
Bim
by makata

Design-review threads, comments, reactions and deployments from Bim. Sign in with Google.

answering
Bult
by bultcloud

Deploy and manage Bult apps from AI coding agents.

28 installs/wk local only
Vercel
by pulsemcp

MCP server for Vercel — manage deployments and view build and runtime application logs.

53 installs/wk local only
Tiniest Cloud
by tiniest

Deploy web apps with sign-in, per-user storage, realtime and AI built in.

answering
Ink MCP
by ml

Deploy and manage applications, databases, domains, and git repos

answering
Clize
by clize

Real-world actions for AI coding agents: domains, email, deploys, payments, media, and SEO/GEO.

619 installs/wk local only
C
Google Cloud Run
by googleapis-run

Deploy applications to Cloud Run

5 tools answering
Website Starter
by websitestarter

Create Markdown instructions for AI agents to build, deploy, and maintain an Astro website.

4 tools answering

SpringRoll — questions

Answers built from our own checks of this server.

What can SpringRoll do?
It exposes 15 tools, read directly from the server on our last check. Among them: springroll.app.get, springroll.app.list, springroll.app.record_prompts, springroll.approval.get, springroll.approval.submit, springroll.app.update and 9 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is SpringRoll working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 5 of 91 checks got a reply (5.5%), average response time 473 ms. The bar chart above shows every period we have measured.
The registry lists SpringRoll as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect SpringRoll?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does SpringRoll need an API key?
No. SpringRoll completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 15 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is SpringRoll?
It answers our handshake in 473 ms on average, which is faster than 33% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.