# SpringRoll (io.github.springrolldev/springroll): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.springrolldev%2Fspringroll/versions/latest)
- Connected to: https://springroll.dev/api/mcp
- Scoring rules: v2
- Tools: 21
- Average: 56.6 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how SpringRoll (io.github.springrolldev/springroll)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: The server's instructions are 6197 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `springroll.app.presentation.get`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: application.
  - Minor: String arguments with no constraint or example: application.
  - Minor: Says nothing about what it returns.
- `springroll.app.presentation.save`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: application, revision, draft, draft.name, draft.tagline, draft.description, draft.creator, draft.iconAssetId, draft.screenshots, draft.screenshots[].assetId, draft.screenshots[].caption, draft.shareText.
  - Minor: String arguments with no constraint or example: application.
  - Minor: Says nothing about what it returns.
- `springroll.feedback.list`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, offset.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `springroll.app.list`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: search, limit.
  - Minor: Says nothing about what it returns.
- `springroll.app.presentation.generate_icon`: 44 / 100
  - Minor: Arguments without a description: application, purpose.
  - Minor: String arguments with no constraint or example: application.
  - Minor: Says nothing about what it returns.
  - Minor: The name is long (41 characters).
- `springroll.app.update`: 45 / 100
  - Major: Arguments without a description: description, iconUrl, tags, department, supportContact, dataClassification.
  - Minor: Says nothing about what it returns.
- `springroll.approval.get`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: approvalRequestId.
  - Minor: Required identifiers whose description does not say where the value comes from: approvalRequestId. Name the tool or the place that returns it, or models look it up first.
- `springroll.connect.access_status`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: grantId.
  - Minor: Required identifiers whose description does not say where the value comes from: grantId. Name the tool or the place that returns it, or models look it up first.
- `springroll.app.presentation.upload`: 52 / 100
  - Major: Arguments without a description: application, kind, base64.
  - Minor: String arguments with no constraint or example: application.
  - Minor: Says nothing about what it returns.
- `springroll.feedback.submit`: 56 / 100
  - Major: Arguments without a description: category, message, idempotencyKey.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `springroll.connect.request_access`: 61 / 100
  - Minor: Says nothing about what it returns.
- `springroll.deploy.promote`: 61 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: deploymentId. Name the tool or the place that returns it, or models look it up first.
- `springroll.app.record_prompts`: 62 / 100
  - Major: Arguments without a description: turns[].role, turns[].content, turns[].occurredAt, agentName, modelName, inputTokens, outputTokens, releaseId.
  - Minor: Says nothing about what it returns.
- `springroll.context`: 62 / 100
- `springroll.placement.preview`: 64 / 100
  - Major: Arguments without a description: placement.monthlyUsage.worker, placement.monthlyUsage.worker.dispatchRequests, placement.monthlyUsage.worker.cpuMilliseconds, placement.monthlyUsage.runtime, placement.monthlyUsage.runtime.activeCpuHours, placement.monthlyUsage.runtime.provisionedMemoryGbHours, placement.monthlyUsage.runtime.invocations, placement.monthlyUsage.runtime.originTransferGb, placement.monthlyUsage.build, placement.monthlyUsage.build.minutes, placement.monthlyUsage.build.activeCpuHours, placement.monthlyUsage.build.provisionedMemoryGbHours, placement.monthlyUsage.build.starts, placement.monthlyUsage.build.dataTransferGb, placement.monthlyUsage.build.registryStorageGbMonths, placement.monthlyUsage.build.artifactStorageGbMonths, placement.monthlyUsage.build.artifactSimpleOperations, placement.monthlyUsage.build.artifactAdvancedOperations, placement.monthlyUsage.build.artifactDataTransferGb, placement.monthlyUsage.container, placement.monthlyUsage.container.billedVcpuSeconds, placement.monthlyUsage.container.billedMemoryGibSeconds, placement.monthlyUsage.container.billedDiskGbSeconds, placement.monthlyUsage.container.egressNaEuGb, placement.monthlyUsage.container.egressOceaniaKoreaTaiwanGb, placement.monthlyUsage.container.egressOtherGb, placement.monthlyUsage.database, placement.monthlyUsage.database.computeCuHours, placement.monthlyUsage.database.storageGbMonths, placement.monthlyUsage.database.restoreHistoryGbMonths, placement.monthlyUsage.database.extraBranchMonths, placement.monthlyUsage.database.extraBranchHours, placement.monthlyUsage.database.snapshotStorageGbMonths, placement.monthlyUsage.database.publicDataTransferGb, placement.monthlyUsage.database.rowsRead, placement.monthlyUsage.database.rowsWritten, placement.monthlyUsage.cache, placement.monthlyUsage.cache.commands, placement.monthlyUsage.cache.storageGbMonths, placement.monthlyUsage.cache.dataTransferGb, placement.monthlyUsage.durableObject, placement.monthlyUsage.durableObject.billableRequests, placement.monthlyUsage.durableObject.durationGbSeconds, placement.monthlyUsage.durableObject.rowsRead, placement.monthlyUsage.durableObject.rowsWritten, placement.monthlyUsage.durableObject.storageGbMonths, placement.monthlyUsage.kv, placement.monthlyUsage.kv.reads, placement.monthlyUsage.kv.writes, placement.monthlyUsage.kv.deletes, placement.monthlyUsage.kv.lists, placement.monthlyUsage.kv.storageGbMonths, placement.monthlyUsage.objectStorage, placement.monthlyUsage.objectStorage.storageGbMonths, placement.monthlyUsage.objectStorage.simpleOperations, placement.monthlyUsage.objectStorage.advancedOperations, placement.monthlyUsage.objectStorage.dataTransferGb, placement.memoryMb.
- `springroll.app.get`: 69 / 100
- `springroll.approval.submit`: 69 / 100
  - Minor: Arguments without a description: requestType.
  - Minor: Says nothing about what it returns.
- `springroll.deploy`: 70 / 100
  - Major: Arguments without a description: name, slug, description, department, dataClassification, tags, repositoryUrl, filesEncoding, framework, installCommand, buildCommand, outputDirectory, rootDirectory, placement.monthlyUsage.worker, placement.monthlyUsage.worker.dispatchRequests, placement.monthlyUsage.worker.cpuMilliseconds, placement.monthlyUsage.runtime, placement.monthlyUsage.runtime.activeCpuHours, placement.monthlyUsage.runtime.provisionedMemoryGbHours, placement.monthlyUsage.runtime.invocations, placement.monthlyUsage.runtime.originTransferGb, placement.monthlyUsage.build, placement.monthlyUsage.build.minutes, placement.monthlyUsage.build.activeCpuHours, placement.monthlyUsage.build.provisionedMemoryGbHours, placement.monthlyUsage.build.starts, placement.monthlyUsage.build.dataTransferGb, placement.monthlyUsage.build.registryStorageGbMonths, placement.monthlyUsage.build.artifactStorageGbMonths, placement.monthlyUsage.build.artifactSimpleOperations, placement.monthlyUsage.build.artifactAdvancedOperations, placement.monthlyUsage.build.artifactDataTransferGb, placement.monthlyUsage.container, placement.monthlyUsage.container.billedVcpuSeconds, placement.monthlyUsage.container.billedMemoryGibSeconds, placement.monthlyUsage.container.billedDiskGbSeconds, placement.monthlyUsage.container.egressNaEuGb, placement.monthlyUsage.container.egressOceaniaKoreaTaiwanGb, placement.monthlyUsage.container.egressOtherGb, placement.monthlyUsage.database, placement.monthlyUsage.database.computeCuHours, placement.monthlyUsage.database.storageGbMonths, placement.monthlyUsage.database.restoreHistoryGbMonths, placement.monthlyUsage.database.extraBranchMonths, placement.monthlyUsage.database.extraBranchHours, placement.monthlyUsage.database.snapshotStorageGbMonths, placement.monthlyUsage.database.publicDataTransferGb, placement.monthlyUsage.database.rowsRead, placement.monthlyUsage.database.rowsWritten, placement.monthlyUsage.cache, placement.monthlyUsage.cache.commands, placement.monthlyUsage.cache.storageGbMonths, placement.monthlyUsage.cache.dataTransferGb, placement.monthlyUsage.durableObject, placement.monthlyUsage.durableObject.billableRequests, placement.monthlyUsage.durableObject.durationGbSeconds, placement.monthlyUsage.durableObject.rowsRead, placement.monthlyUsage.durableObject.rowsWritten, placement.monthlyUsage.durableObject.storageGbMonths, placement.monthlyUsage.kv, placement.monthlyUsage.kv.reads, placement.monthlyUsage.kv.writes, placement.monthlyUsage.kv.deletes, placement.monthlyUsage.kv.lists, placement.monthlyUsage.kv.storageGbMonths, placement.monthlyUsage.objectStorage, placement.monthlyUsage.objectStorage.storageGbMonths, placement.monthlyUsage.objectStorage.simpleOperations, placement.monthlyUsage.objectStorage.advancedOperations, placement.monthlyUsage.objectStorage.dataTransferGb, placement.memoryMb.
- `springroll.connect.data_products`: 71 / 100
- `springroll.policy.check`: 71 / 100
  - Minor: Says nothing about what it returns.
- `springroll.deploy.status`: 72 / 100
  - Minor: Arguments without a description: deploymentId.
  - Minor: Required identifiers whose description does not say where the value comes from: deploymentId. Name the tool or the place that returns it, or models look it up first.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
