Skip to main content
Glama

Check a scan

sentrint_scan_status
Read-only

Check a scan started with sentrint_scan_repo. Call again every 10 to 20 seconds until done is true, then follow next_step. A finished scan carries its score and counts by severity. Failed and cancelled scans also come back done: stop polling, and when the submission itself was rejected, error_code and error_detail say why. To look up an older scan, use sentrint_list_scans.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "submission_id": "<submission_id>"
    },
    "name": "sentrint_scan_status"
  }
}

Input Schema

NameRequiredDescriptionDefault
submission_idYesThe submission_id that sentrint_scan_repo returned.

Output Schema

NameRequiredDescriptionDefault
idYesThe submission_id that was checked.
doneYesTrue when polling again cannot change the answer.
scanNoThe scan, once it exists.
reportNoScore and counts, once the scan is done.
reusedYesTrue when an earlier scan of this commit was reused.
statusYesaccepted, validating, failed or scan_ready.
scan_idYesThe scan, once the submission has one.
next_stepYesWhat to do next, in a sentence written for the agent.
created_atYesWhen the submission was made, ISO 8601 UTC.
error_codeYesWhy the submission was rejected, if it was.
status_urlYesThe same submission in the REST API.
updated_atYesWhen the submission last changed, ISO 8601 UTC.
error_detailYesA sentence explaining error_code.
earlier_scan_idNoA report of this commit under older rules, free to read with sentrint_get_findings.
scan_status_urlYesThe scan in the REST API, once it exists.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / $defs
      Added value: +{
      +  "Report": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "critical": {
      +        "description": "Critical findings.",
      +        "title": "Critical",
      +        "type": "integer"
      +      },
      +      "grade": {
      +        "description": "Letter grade for the score, A to F.",
      +        "title": "Grade",
      +        "type": "string"
      +      },
      +      "guidance_locked": {
      +        "description": "True when fixes and the fix prompt need a paid plan for this report.",
      +        "title": "Guidance Locked",
      +        "type": "boolean"
      +      },
      +      "high": {
      +        "description": "High findings.",
      +        "title": "High",
      +        "type": "integer"
      +      },
      +      "low": {
      +        "description": "Low findings.",
      +        "title": "Low",
      +        "type": "integer"
      +      },
      +      "medium": {
      +        "description": "Medium findings.",
      +        "title": "Medium",
      +        "type": "integer"
      +      },
      +      "scan_id": {
      +        "description": "The scan this report summarises.",
      +        "title": "Scan Id",
      +        "type": "string"
      +      },
      +      "score": {
      +        "description": "Security score from 0 to 100.",
      +        "title": "Score",
      +        "type": "integer"
      +      },
      +      "summary_text": {
      +        "description": "One plain sentence summing up the report.",
      +        "title": "Summary Text",
      +        "type": "string"
      +      },
      +      "top_rules": {
      +        "description": "The rules behind the most serious findings.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "title": "Top Rules",
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "scan_id",
      +      "score",
      +      "grade",
      +      "critical",
      +      "high",
      +      "medium",
      +      "low",
      +      "top_rules",
      +      "summary_text",
      +      "guidance_locked"
      +    ],
      +    "title": "Report",
      +    "type": "object"
      +  },
      +  "ScanSummary": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "commit_sha": {
      +        "description": "The exact commit that was scanned.",
      +        "title": "Commit Sha",
      +        "type": "string"
      +      },
      +      "created_at": {
      +        "description": "When the scan was created, ISO 8601 UTC.",
      +        "title": "Created At",
      +        "type": "string"
      +      },
      +      "id": {
      +        "description": "The scan_id for sentrint_get_findings and sentrint_get_fix_prompt.",
      +        "title": "Id",
      +        "type": "string"
      +      },
      +      "repo_url": {
      +        "description": "The GitHub repository that was scanned.",
      +        "title": "Repo Url",
      +        "type": "string"
      +      },
      +      "score": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Security score from 0 to 100 once done, else null.",
      +        "title": "Score"
      +      },
      +      "status": {
      +        "description": "Such as pending, running, done, failed or cancelled.",
      +        "title": "Status",
      +        "type": "string"
      +      },
      +      "updated_at": {
      +        "description": "When the scan last changed, ISO 8601 UTC.",
      +        "title": "Updated At",
      +        "type": "string"
      +      },
      +      "workspace_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The workspace the scan belongs to.",
      +        "title": "Workspace Id"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "workspace_id",
      +      "status",
      +      "repo_url",
      +      "commit_sha",
      +      "score",
      +      "created_at",
      +      "updated_at"
      +    ],
      +    "title": "ScanSummary",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties
      Added value: +{
      +  "created_at": {
      +    "description": "When the submission was made, ISO 8601 UTC.",
      +    "title": "Created At",
      +    "type": "string"
      +  },
      +  "done": {
      +    "description": "True when polling again cannot change the answer.",
      +    "title": "Done",
      +    "type": "boolean"
      +  },
      +  "earlier_scan_id": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "A report of this commit under older rules, free to read with sentrint_get_findings.",
      +    "title": "Earlier Scan Id"
      +  },
      +  "error_code": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "Why the submission was rejected, if it was.",
      +    "title": "Error Code"
      +  },
      +  "error_detail": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "A sentence explaining error_code.",
      +    "title": "Error Detail"
      +  },
      +  "id": {
      +    "description": "The submission_id that was checked.",
      +    "title": "Id",
      +    "type": "string"
      +  },
      +  "next_step": {
      +    "description": "What to do next, in a sentence written for the agent.",
      +    "title": "Next Step",
      +    "type": "string"
      +  },
      +  "report": {
      +    "anyOf": [
      +      {
      +        "$ref": "#/$defs/Report"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Score and counts, once the scan is done."
      +  },
      +  "reused": {
      +    "description": "True when an earlier scan of this commit was reused.",
      +    "title": "Reused",
      +    "type": "boolean"
      +  },
      +  "scan": {
      +    "anyOf": [
      +      {
      +        "$ref": "#/$defs/ScanSummary"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "The scan, once it exists."
      +  },
      +  "scan_id": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "The scan, once the submission has one.",
      +    "title": "Scan Id"
      +  },
      +  "scan_status_url": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "The scan in the REST API, once it exists.",
      +    "title": "Scan Status Url"
      +  },
      +  "status": {
      +    "description": "accepted, validating, failed or scan_ready.",
      +    "title": "Status",
      +    "type": "string"
      +  },
      +  "status_url": {
      +    "description": "The same submission in the REST API.",
      +    "title": "Status Url",
      +    "type": "string"
      +  },
      +  "updated_at": {
      +    "description": "When the submission last changed, ISO 8601 UTC.",
      +    "title": "Updated At",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "id",
      +  "status",
      +  "status_url",
      +  "scan_id",
      +  "scan_status_url",
      +  "reused",
      +  "error_code",
      +  "error_detail",
      +  "created_at",
      +  "updated_at",
      +  "done",
      +  "next_step"
      +]
    • changedOutput schema / title
      Previous value: -"scan_statusDictOutput"New value: +"ScanStatusOutput"
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint=false; the description adds substantial behavior the agent otherwise couldn't know: terminal-state semantics, that failed/cancelled scans still return done so polling must stop, and that error_code/error_detail explain rejected submissions, plus what a finished scan returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and cadence, and every sentence carries distinct information (cadence, terminal states, error handling, alternative tool). Slightly dense run-on phrasing costs it the top mark.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter polling tool with an output schema, this covers everything an agent needs: when to poll, how often, when to stop, how to read errors, and where to go otherwise.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema description coverage is 100%, with the schema already explaining that submission_id comes from sentrint_scan_repo. The description adds no extra format or constraint detail beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Check a scan') and ties it to the producing tool ('started with sentrint_scan_repo'), clearly distinguishing it from sentrint_list_scans for older scans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit polling cadence (every 10–20 seconds), a stop condition (done is true / done on failed or cancelled), and names the alternative tool for the historical-lookup case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources