Skip to main content
Glama
vulnify

Vulnify MCP

Official

Test policies

test_policies
Read-onlyIdempotent

Dry-run up to 200 policy cases without recording an event. Use stored policies by default or evaluate proposed policies to preview ALLOW, REVIEW, or BLOCK decisions.

Instructions

Evaluate up to 200 policy cases without recording an event (POST /v1/policies/test). When policies is omitted, the enabled stored policies are used. When policies is set, those proposed policies are evaluated instead and nothing is written. This skips the PII scan: cases have no content field. pass is null when a case omits expect. One call covers up to 200 cases. Limited to 60 requests per minute per key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
casesYesOne to 200 cases. Each case has a name, an input, and an optional expected decision.
policiesNoWhen set, these policies are evaluated instead of the stored ones. Nothing is written.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYesOne result per case.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantive behavior: nothing is written when 'policies' is set, the PII scan is skipped, 'pass' is null when 'expect' is omitted, and a concrete rate limit of 60 requests/minute/key. These are exactly the traits an agent cannot infer from structured fields.

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?

Short sentences with the purpose and endpoint front-loaded and the rate limit sensibly at the end. Mild redundancy: 'up to 200 policy cases' in sentence one is repeated as 'One call covers up to 200 cases' later, and that limit is also in the schema (maxItems 200).

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?

With rich annotations and an output schema present, the description still covers the pieces an agent needs: two operating modes, the no-write guarantee, the skipped scan, nullable results, and throughput/rate limits. Nothing required to call it correctly is missing.

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 the baseline is 3. The description restates the omitted-vs-set semantics of 'policies' that the schema already documents, adding little new meaning beyond what the structured field provides.

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?

States a specific verb+resource ('Evaluate ... policy cases') plus the endpoint and scope ('up to 200'), and the dry-run character ('without recording an event') sets it apart behaviorally from write-oriented siblings. It never names an alternative (check_action, decide_action) to anchor the distinction, so it stops short of a 5.

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?

Gives clear conditional context: omitting 'policies' uses stored policies, setting it evaluates proposed ones. It also discloses a usable limitation ('skips the PII scan: cases have no content field'). No explicit when-not or sibling routing, so 4 rather than 5.

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