Firefly MCP Server for Infrastructure as Code asset inventory and codification
Two tools with complete input schemas and descriptions, but significant gaps in output documentation and error handling. firefly_inventory has 8 parameters with good descriptions and enum constraints (assetState). firefly_codify has 5 parameters, all described, with 4 marked required. However, neither tool documents its output schema, making it impossible for LLMs to plan downstream operations. Tool names lack action verbs (firefly_inventory vs list_assets, firefly_codify vs generate_terraform_import). No error recovery guidance, no pagination info for inventory results despite responseSize parameter suggesting large datasets. Parameter descriptions are adequate (avg ~60 chars) but lack format constraints and validation rules.
Codify a specific resource and get the Terraform import command
Run inventory query over asset types and asset states
No output schema documented for either tool. LLMs cannot infer what fields to expect or plan chained calls. firefly_inventory likely returns asset objects; firefly_codify likely returns import commands, neither is specified.
Tool names lack action verbs. 'firefly_inventory' and 'firefly_codify' are domain-specific but opaque. Rename to 'list_assets' and 'generate_terraform_import' so LLMs infer intent from the name alone.
firefly_inventory accepts responseSize parameter but no pagination guidance. Does it return a total count? A next_cursor? How many results fit in one response? Large asset inventories will blow context windows without pagination metadata.
No error handling or recovery guidance. If firefly_codify fails (invalid assetType, missing resource), the LLM gets no hint on what to do next. Add error classification and actionable messages.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Parameter descriptions lack format constraints. 'modifiedSince' says 'e.g., 2024-01-01' but no ISO 8601 requirement stated. 'assetId' says 'Usually the resource ARN', does it accept non-ARN IDs? Ambiguity invites invalid input.