Skip to main content
Glama
hostproof-mcp

hostproof-mcp

by DeveshB-1

upload_evidence

Run selected compliance checks, bundle the results as evidence, preview the Sprinto monitor upload, and confirm submission only when ready.

Instructions

Run the given checks, bundle them, and upload the zip to a Sprinto monitor. Without confirm=true this only returns a preview; show it to the user first.

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": {
      "monitor_pk": "<monitor_pk>",
      "check_ids": "<check_ids>"
    },
    "name": "upload_evidence"
  }
}

Input Schema

NameRequiredDescriptionDefault
confirmNo
check_idsYes
monitor_pkYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden; it does disclose the safety-critical behavior that the call is a no-op preview unless confirm=true, which is valuable. It omits permissions required, whether an upload overwrites an existing bundle, size or rate limits, and what the preview contains.

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

Conciseness5/5

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

Two tight sentences, zero filler, with the primary action stated first and the confirm caveat immediately after. Every clause earns its place.

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

Completeness3/5

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

For a write-path tool with no annotations, no output schema, and 0% parameter documentation, the description covers the most dangerous failure mode (accidental upload) but leaves return-preview contents, authentication, and idempotency unaddressed. It is adequate, not complete.

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?

Schema coverage is 0%, so the description must compensate. It explains the highest-risk parameter (confirm) precisely by contrasting preview vs. real upload, but leaves monitor_pk and check_ids to their bare names — the agent must infer that check_ids come from list_checks and monitor_pk from list_sprinto_monitors.

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

Purpose4/5

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

The description names specific actions and resources — run checks, bundle them, upload a zip to a Sprinto monitor — so the agent knows exactly what this tool performs. It does not explicitly distinguish itself from the nearby siblings write_evidence_bundle or run_compliance_checks, which is the only gap.

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

Usage Guidelines4/5

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

It gives an explicit operating rule: without confirm=true you get a preview, and that preview must be shown to the user first. That is strong when-to-use guidance for the two-phase flow. It stops short of saying when to prefer this over write_evidence_bundle or run_compliance_checks, so no alternatives are named.

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