irez-mcp exposes 19 domain-specific LLVM analysis tools with consistent naming (irez_* prefix) and reasonable descriptions (avg ~120 chars). All tools have input schemas with typed parameters and descriptions. However, output schemas are undocumented, LLMs cannot predict return structure. Error handling is minimal (tool spawns CLI, returns JSON verbatim). Parameter descriptions lack format constraints, ranges, and examples. No tool annotations (readOnlyHint/destructiveHint). Composition is sound (each tool does one thing), but descriptions could be more LLM-optimized per pattern:tool-description baseline (10 - 1024 chars, avg 194 chars for A+ tools).
List all artifacts in the investigation.
Backup the investigation state to a destination path.
Return the capabilities of an artifact or the investigation.
Return surrounding context for an entity.
Expand an entity to show its internal structure.
List functions in an artifact, optionally filtered by regex.
Extract a bounded dependency graph in JSON or exact-ir format.
Output schemas undocumented. LLMs cannot predict return structure (fields, types, nesting). Baseline: 100% of A+ tools document return types.
Parameter descriptions lack format constraints and ranges. E.g., 'budget_nodes' has no min/max; 'direction' has no enum constraint in description. Baseline: A+ tools specify ranges and enums inline.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Current spec (2026-07-28) rewards structured tool metadata. irez_init and irez_ingest are WRITE operations but unmarked.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
Find guard conditions that protect an entity.
Ingest LLVM IR from a file path with optional indexing strategy.
Initialize a new investigation with a given name.
Materialize a function entity by handle.
Reindex an existing artifact with a new indexing strategy.
Show entity details with configurable view (summary, exact, or children).
Compute a backward or forward slice from an entity with configurable relations and budgets.
Return source code location information for an entity.
Return investigation status, including the resolved absolute state directory (state_dir) and all schema/adapter/build versions.
Trace return value dependencies with configurable detail level and optional sections.
Trace store dependencies with configurable detail level and optional sections.
Find uses of an entity within a bounded traversal.
Error handling delegates to CLI exit codes and JSON envelope. No recovery guidance (e.g., 'User not found. Try search_users() first.'). Baseline: A+ tools categorize errors as retryable/user-fixable/fatal.
Parameter 'include' in irez_trace_return and irez_trace_stores is an array but lacks enum constraint in description. Valid values (chain, calls, source, nodes, relations, boundaries, flags) should be documented as enum.