Skip to main content
Glama
balalaika-ai

narya-mcp

Official
by balalaika-ai

Narya Audit

narya_audit

Audit a file and its import closure for unsound shortcuts like axiom commands and holes, with optional typechecking to report assumed axioms. Returns a clean verdict only if nothing is found and the check passes.

Instructions

Audit a file for unsound shortcuts: explicit axiom commands and holes in the file and its whole import closure (static scan following import/export statements), plus, if typecheck=True, a batch check reporting the axioms Narya actually assumed. verdict is "clean" only if nothing was found and the check passed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileYes
timeoutNo
typecheckNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the scan mechanism (static scan following import/export), that the closure is included, and that verdict is 'clean' only if nothing is found and the check passes, but it says nothing about read-only vs. side effects, the cost/timeout behavior of typecheck, or what happens on failure.

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?

Content is front-loaded into one dense sentence about the audit scope, followed by a short verdict clarification. It is efficient and wastes little, though the opening sentence is long and packs several distinct behaviors together.

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?

An output schema exists, so return values needn't be re-explained, and the verdict semantics are a useful addition. However, for a 3-parameter tool with no annotations and zero schema coverage, the missing timeout semantics and absence of any safety/behavior profile leave real gaps.

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 description coverage is 0% for 3 parameters. The description meaningfully explains `typecheck` beyond the bare boolean (it triggers a batch check reporting assumed axioms) and treats `file` implicitly, but `timeout` is never mentioned anywhere, leaving one parameter undocumented.

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 a specific verb (audit) and resource (a file) and spells out the exact scope: explicit `axiom` commands, holes, and the whole import closure via a static scan. It is concrete enough to separate it from narya_holes or narya_check_file, but it never names or contrasts those siblings explicitly.

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

Usage Guidelines3/5

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

The description conveys when the extra typecheck path applies (`if typecheck=True`) and what the verdict means, so usage is implied, but there is no explicit 'use this instead of X when...' guidance or statement of preconditions such as needing a started session.

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