MCP Server para emissão de NFS-e (Brasília/DF - ISS.net ABRASF 2.04)
Server has 12 tools with complete input schemas and descriptions. Naming follows verb_noun convention (lookup_, register_, list_, get_, update_, delete_, emit_, cancel_, query_, get_). Descriptions are present (avg ~80 chars) but lack actionable context for LLM selection. Parameters are typed but many lack format constraints or validation guidance. Output schemas are not documented in the visible code. Error handling is minimal, no recovery guidance or categorization. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Missing pagination for list_clients and query_issued_nfse. No confirmation pattern for destructive operations (delete_client, cancel_nfse).
Cancel an issued NFS-e invoice
Delete a registered client
Emit a single NFS-e (Nota Fiscal de Serviço Eletrônica) invoice
Get a specific client by ID or document
Get the log of all emitted NFS-e invoices
Get visualization and authenticity URLs for an issued NFS-e
Get provider (prestador) configuration information
List all registered clients
No output schemas documented. Tools return unstructured responses (e.g., _parse_nfse_response, _format_client). LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Destructive operations (delete_client, cancel_nfse) lack confirmation or dry-run pattern. No tool annotation hints (destructiveHint). Agents can irreversibly delete clients or cancel invoices without safeguards.
Descriptions lack actionable context. E.g., 'Register a new client' does not explain when to use it vs get_client, what happens on duplicate, or what fields are required. Descriptions average ~60 chars; baseline is 194 chars for A+ tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Look up company data by CNPJ via BrasilAPI
Query issued NFS-e invoices by date range
Register a new client (tomador) for NFS-e emission
Update client information
No pagination support. list_clients and query_issued_nfse return unbounded results. No limit, offset, or cursor parameters. Large result sets will exhaust context windows.
No error recovery guidance. Error responses (e.g., from _parse_nfse_response) do not tell LLMs what to do next. No categorization of retryable vs user-fixable vs fatal errors.