mcp-registry/io.github.springrolldev/springroll · v0.2.0
As of 2026-10-27 01:43 UTC, the Springrolldev Springroll MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 5 minutes.
Register, deploy, review, and govern internal applications built with coding agents.
Point your MCP client at this streamable-http endpoint: https://springroll.dev/api/mcp
2 tool definition(s) exceed ~1,200 tokens each (largest: springroll.deploy, ~3,222).
Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~4,720 tokens every session. How to fix →
21 tool name(s) contain "." or exceed 64 characters, which OpenAI-compatible function calling rejects (^[a-zA-Z0-9_-]{1,64}$).
Use "_" or "-" instead of "." and keep names to 64 characters, so clients built on OpenAI-style tool calling don't have to rename (or drop) them. How to fix →
44 parameter(s) across 14 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 14 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.springrolldev%2Fspringroll/fixes
{
"name": "springroll_app_get",
"description": "Returns an application's registry record: metadata, lifecycle stage, risk score, and whichever of the optional sections you ask for. No secrets are included.\n\nSections, all returned by default:\n • `source`: repository or uploaded bundle, and `cannotBuildReason` when a deploy would be refused for want of a source\n • `history`: recent releases and deployments\n • `status`: each environment's current deployment, outstanding approvals, and usage. This answers \"where is my app up to?\"\n • `grants`:",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"application",
"context"
],
"properties": {
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
},
"include": {
"type": "array",
"items": {
"enum": [
"source",
"history",
"status",
"grants"
],
"type": "string"
},
"description": "Sections to return. Defaults to all of them."
},
"application": {
"type": "string",
"minLength": 1,
"description": "Application slug or id."
}
}
},
"annotations": {
"title": "Get an application",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
},
"title": "Get an application"
}{
"name": "springroll_app_list",
"description": "Lists applications in this organization, newest first. Use `search` to find one by name or slug.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"context"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"search": {
"type": "string",
"maxLength": 200
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
}
},
"annotations": {
"title": "List applications",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
},
"title": "List applications"
}{
"name": "springroll_app_presentation_generate_icon",
"description": "Queue one premium icon draft from the app's reviewed purpose. Requests are limited and deduplicated. Artwork never blocks deployment or publishes itself.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"application",
"purpose",
"idempotencyKey",
"context"
],
"properties": {
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
},
"purpose": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"application": {
"type": "string"
},
"idempotencyKey": {
"type": "string",
"maxLength": 200,
"minLength": 8,
"description": "Required. A stable, caller-generated key. Retrying with the same key returns the original result instead of creating a duplicate."
}
}
},
"annotations": {
"title": "Prepare an app icon draft",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
},
"title": "Prepare an app icon draft"
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.springrolldev/springroll"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.springrolldev/springroll"}) over MCP.
springroll.deploy ~3,222 tokensspringroll.placement.preview ~2,698 tokensspringroll.app.record_prompts ~828 tokensspringroll.approval.submit ~753 tokensspringroll.app.presentation.save ~587 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.springrolldev%2Fspringroll?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.springrolldev%2Fspringroll?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.springrolldev%2Fspringroll.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.springrolldev%2Fspringroll.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.springrolldev%2Fspringroll?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:b6bffeccbd2efbc7…, first seen 2026-10-17, included at leaf 717 of 76,649. Version history · verify what your client received.
Compare: most reliable knowledge servers · most reliable media servers · most reliable files servers · most reliable other servers · most reliable data servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-27 01:43 UTC, the Springrolldev Springroll MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 5 minutes.
Springrolldev Springroll MCP server advertises 21 tools, including springroll.app.get, springroll.app.list, springroll.app.presentation.generate_icon, springroll.app.presentation.get, springroll.app.presentation.save.
Point your MCP client at this streamable-http endpoint: https://springroll.dev/api/mcp
Glimind scanned all 21 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.