Skip to main content
Glama
vulnify

Vulnify MCP

Official

Check action

check_action
Read-onlyIdempotent

Dry-run a proposed AI agent action against organization policies to preview ALLOW, REVIEW, or BLOCK before acting; no events are recorded.

Instructions

Use for what-if questions when you are not about to act. Dry-run a proposed action against the organization policies (POST /v1/policies/test, one case, stored policies). This skips the PII scan and records nothing: no security event and no audit entry. There is no content field and no DLP scan. The result has no event id and no finalDecision. decide_action is the call that records a decision. Dry runs are limited to 60 requests per minute per key. test_policies covers up to 200 cases in one call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agentYesAgent name. The dry run does not accept agentId.
actionYesEvent action. Allowed values: READ_DATA, WRITE_DATA, DELETE_DATA, EXPORT_DATA, SEND_EMAIL.
resourceYesResource name. The dry run does not accept resourceId.
destinationNoWhere the data goes. Allowed values: INTERNAL, EXTERNAL_EMAIL, EXTERNAL_API.
recordsAffectedNoHow many records the action would touch. Optional. 0 to 100000000.
containsSensitiveDataNoHint for policy conditions. This call does not scan content.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYesOne result per case.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses that this skips the PII scan, records no security event and no audit entry, performs no DLP scan, has no content field, and returns no event id or finalDecision, plus a concrete rate limit of 60 requests/minute/key. That is exactly the side-effect and constraint context an agent needs.

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?

Every sentence is front-loaded with actionable information and none is filler: usage condition, endpoint, side-effect profile, sibling routing, rate limit. Dense but each clause earns its place.

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 dry-run tool with an output schema present, the description covers everything the agent needs: trigger condition, scope of the check, side effects, rate limit, and sibling alternatives. Return-value shape is intentionally signaled ('no event id and no finalDecision') rather than fully specified, which is appropriate given the output schema.

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 100%, so all six parameters (including both enums) are already fully documented in the schema, which sets the baseline at 3. The description adds only marginal parameter meaning by noting the absence of a content field and clarifying that no DLP scan occurs, which largely restates the schema's own note on containsSensitiveData.

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?

The description states a specific verb+resource ('Dry-run a proposed action against the organization policies') with the exact endpoint, and explicitly differentiates itself from siblings decide_action (records a decision) and test_policies (batch up to 200 cases). An agent can select this tool without opening any schema.

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?

It opens with the triggering condition ('Use for what-if questions when you are not about to act') and names the alternative that does record ('decide_action is the call that records a decision'), plus routes batch needs to test_policies. When-to-use, when-not-to-use, and alternatives are all present.

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