Skip to main content
Glama

nvr_call

Executes catalogued VIGI NVR API calls by module, method, and key; refuses unknown calls, gates writes, and supports dry-run with redacted credentials.

Instructions

Catalogued gateway to any NVR call. Identify the call with (module, method, key) from nvr_list_calls/nvr_describe_call; pass the module body as params. Unknown calls are refused with the nearest matches. Anything the catalog flags as mutating, or whose method is not "get", needs VIGI_NVR_ALLOW_WRITES=true AND confirm_write=true. Set allow_extra=true to send keys outside the call's example. With VIGI_NVR_DRY_RUN the exact body is returned as data.request (and data.dry_run=true) and not sent. Credential fields in the reply are redacted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes
methodYes
moduleYes
paramsNo
allow_extraNo
confirm_writeNoMust be the JSON boolean true to authorise this mutating write. A string such as "true"/"1"/"yes" does NOT count and the write is refused with no network call; re-send with the boolean confirm_write=true after confirming the change with the operator.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does it well: unknown calls are refused with nearest matches, mutating or non-'get' methods require an env flag plus confirm_write, dry-run returns the exact body as data.request with data.dry_run=true and sends nothing, and credential fields are redacted. These are exactly the behaviors an agent must know before calling.

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?

Six dense sentences, front-loaded with the identification triple before the gating and dry-run rules. No filler; each sentence adds an operational fact.

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

Completeness4/5

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

For a high-complexity gateway tool it covers refusal, write gating, extra-key handling, dry-run output shape and redaction, and an output schema exists so return values needn't be described. Minor gaps: no auth prerequisite mention and the ambiguous 'key' parameter.

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

Parameters4/5

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

Schema coverage is only 17%, so the description must compensate and largely does: params is the module body, allow_extra permits keys outside the call's example, and confirm_write is a strict JSON boolean. However, module/method/key formats are only referenced indirectly and the 'key' parameter is never actually explained.

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 ('catalogued gateway to any NVR call') and explains that a call is identified by the (module, method, key) triple sourced from nvr_list_calls/nvr_describe_call. It does not, however, contrast itself with the nearest sibling nvr_raw_call, leaving an agent to guess which gateway to pick.

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 a clear workflow: discover the call via nvr_list_calls/nvr_describe_call, then pass the module body as params. It states the conditions that gate mutating calls (VIGI_NVR_ALLOW_WRITES=true AND confirm_write=true) and when to set allow_extra=true. It never explicitly says when to prefer nvr_raw_call instead.

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