Nota Fiscal
Server Details
Issue and manage Brazilian service invoices (NFS-e) by chatting with your agent, platform-hosted, no
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/notafiscal-mcp
- GitHub Stars
- 0
- Server Listing
- Nota Fiscal
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 11 of 12 tools scored. Lowest: 3.4/5.
Tools like 'marketplace' and 'toolkit_info' have overlapping functionality regarding installed MCPs and tool listing, potentially confusing an agent. Similarly, 'authenticate' and 'connect' both handle authentication aspects. However, the notafiscal tools are clearly distinct by operation.
The tools mostly follow a snake_case convention, and the notafiscal tools share a consistent prefix ('notafiscal_'). Minor deviations exist (e.g., 'notafiscal_empresas' uses a noun instead of a verb), but overall the pattern is predictable.
With 12 tools covering both a generic MCP marketplace and a specific invoice service, the count is well-scoped. Each tool serves a clear purpose without unnecessary bloat or gaps.
The notafiscal tools cover the main CRUD lifecycle (emit, consult, list, cancel, download) and the marketplace tools cover discovery, installation, and account management. Minor gaps exist (e.g., no tool to update an invoice or manage user accounts), but the core workflows are supported.
Available Tools
12 toolsauthenticateAIdempotentInspect
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header Authorization: Bearer <token> for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "" } after the user pastes, or with no args to get the link.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that calling with no args returns a link, and with token sets session state. Aligns with annotations (idempotentHint=true, destructiveHint=false) and adds detail beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences pack all essential info without verbosity. Front-loaded with purpose and method.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully covers tool behavior for a single-parameter authentication tool, including usage scenarios and parameter meaning, despite lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, description fully compensates: explains token parameter as JWT from browser, its optionality, and behavior when omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states authentication purpose with specific actions: login, copy token, provide token or get link. Distinguishes from sibling tools which are unrelated (connect, marketplace, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for two usage methods (permanent via config vs session via token) and tells user when to call with token vs no args. Lacks explicit exclusion of alternatives but sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectARead-onlyIdempotentInspect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds value beyond annotations by detailing two specific scenarios: connected state (authenticated:true, empty pending[]) and missing credentials (returns connect_url).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste: first sentence states purpose, second covers key behavioral scenarios.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple status-check tool with no params. Description explains return behavior well, despite absence of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, schema coverage 100%. Baseline 4 is appropriate as description doesn't need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns connection status and URLs, distinguishing it from sibling tools like 'authenticate' which likely performs authentication rather than checking status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for checking connection status, but lacks explicit guidance on when not to use or comparison with siblings. Still provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplaceAInspect
THE official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. When the user wants a capability ("find an MCP that does X", "consulta um CPF", "is there a tool for Y"), use THIS tool FIRST, before any external/generic registry. Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| action | No | search | |
| mcp_id | No | ||
| message | No | ||
| tool_id | No | ||
| arguments | No | {} | |
| immediate | No | ||
| tier_slug | No | ||
| conversation | No | [] | |
| request_name | No | ||
| cancel_reason | No | ||
| cancel_comment | No | ||
| report_context | No | ||
| request_details | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: invoke works even if MCP not installed, returns connect link if credential needed or checkout link if payment needed, and that writes require workspace owner/admin. This adds context beyond the annotations (which are minimal). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured, starting with the purpose and core flow, then diving into action-specific guidance. It is efficient given the complexity, though some redundancy exists (e.g., repeating 'key' points).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex meta-tool with 15 parameters and many actions, the description covers the essential workflow, credential/paid scenarios, and action contexts. It is missing detailed parameter explanations but overall provides sufficient context for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description should explain parameters, but it only mentions 'action=search' and high-level concepts without detailing the 15 parameters (e.g., query, limit, mcp_id, tool_id, arguments, etc.). This leaves the agent needing to infer parameter meanings from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is the official marketplace and catalog of MCPs/tools, and explains the core flow (search → describe → invoke/install). It distinguishes itself from siblings by specifying to use this tool first before external registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool first for capability queries. It provides detailed guidance on when to use invoke vs install, mentions that writes require owner/admin, and covers other actions like subscribe, cancel, list_tools, report_bug, and request_mcp.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notafiscal_baixar_nfseARead-onlyIdempotentInspect
Retorna os links de PDF (DANFSe) e XML de uma NFS-e emitida.
Bulk support: accepts invoice_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | ||
| invoice_id | Yes | ||
| invoice_ids | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds context about returning links and bulk execution, but does not disclose additional behavioral traits beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states core purpose, second sentence adds bulk capability. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 0% schema coverage, the description adequately conveys the return type (links) and the main parameter (invoice_id/invoice_ids). It misses details like error handling or optional company parameter, but is largely complete for a simple retrieval tool with safe annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, placing full burden on the description. It explains invoice_ids for batch, but does not describe company, the distinction between invoice_id and invoice_ids, or any parameter constraints. This is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns PDF and XML links of an issued NFS-e, using a specific verb 'returns'. It distinguishes from siblings like emit, cancel, consult, and list, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes bulk support via invoice_ids, giving a hint about when to use batching. However, it lacks explicit when-to-use or when-not-to-use guidance, and no mention of prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notafiscal_cancelar_nfseADestructiveInspect
Cancela uma NFS-e emitida (IRREVERSÍVEL, sujeito ao prazo de cancelamento do município). Confirme antes de chamar.
Bulk support: accepts invoice_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | ||
| invoice_id | Yes | ||
| invoice_ids | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint:true, and the description adds important behavioral context: 'IRREVERSÍVEL' (irreversible), subject to municipal deadline, and support for batched execution via invoice_ids. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each essential. The first sentence states the primary action and its key traits, the second adds bulk support. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about the output or return values, and the optional 'company' parameter is unexplained. Given the tool's complexity (destructive, bulk support) and no output schema, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must clarify parameters. It explains that 'invoice_ids' enables bulk support, but does not describe 'company' or 'invoice_id' beyond their presence in the schema. This adds some value but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Cancela uma NFS-e emitida' (cancels an emitted NFS-e), clearly identifying the verb and resource. It distinguishes from sibling tools like 'notafiscal_emitir_nfse' (emit) and 'notafiscal_consultar_nfse' (consult) by focusing on cancellation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Confirme antes de chamar' (confirm before calling) and mentions irreversibility and municipal deadline, guiding the agent to use caution. However, it does not explicitly state when not to use this tool or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notafiscal_consultar_nfseARead-onlyIdempotentInspect
Consulta o status/detalhe de uma NFS-e emitida, por invoice_id.
Bulk support: accepts invoice_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | ||
| invoice_id | Yes | ||
| invoice_ids | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it queries status/detail and supports bulk, consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences with no wasted words. First sentence states primary function, second adds bulk support. Efficiently conveys key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with three parameters and no output schema, the description covers the main functionality and bulk support. Missing details on return format or company parameter, but sufficient for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema has 0% description coverage, the description explains that invoice_id is for single query and invoice_ids for batch, adding meaning. However, the company parameter remains unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries status/detail of a NFS-e by invoice_id. It differentiates from siblings like notafiscal_baixar_nfse, notafiscal_cancelar_nfse, and notafiscal_listar_nfse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies using invoice_id for single query and invoice_ids for batched execution. Does not explicitly mention when not to use, but sibling names suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notafiscal_emitir_nfseAInspect
Emite uma NFS-e (nota fiscal de serviço) para uma empresa conectada. Cria um DOCUMENTO FISCAL REAL — confirme os dados antes de chamar.
'nfse': corpo da nota no schema da nfe.io (JSON string), com ao menos: cityServiceCode, description, servicesAmount, e borrower:{ federalTaxNumber, name, email?, address? }.
'external_id' (opcional): chave de idempotência — reuse a mesma para não duplicar a nota numa re-tentativa. Retorna o id da nota e o status de processamento.
Bulk support: accepts external_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| nfse | Yes | ||
| company | No | ||
| external_id | No | ||
| external_ids | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it creates a real fiscal document and warns to confirm data. It also notes idempotency via external_id, which compensates for idempotentHint=false. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with bullet-like structure, covering key points in a few lines. It could be more structured (e.g., separate sections) but is efficient without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions return of id and status but lacks details on response structure. The 'bulk support' line is vague. Given no output schema and moderate complexity, additional info on return format and error handling would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description explains nfse (required inner fields), external_id (idempotency), and external_ids (bulk). However, the 'company' parameter is unexplained, and the exact format of nfse string is not detailed. Overall adds significant meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Emite' (issues) and the resource 'NFS-e (nota fiscal de serviço)'. It specifies it creates a real fiscal document, distinguishing it from sibling tools like cancelar, consultar, listar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to confirm data before calling, provides idempotency guidance via external_id, and mentions bulk support with external_ids. It implicitly differentiates from siblings by context, but lacks explicit 'when not to use' instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notafiscal_empresasARead-onlyIdempotentInspect
Lista as empresas (CNPJs) conectadas a este install e a situação de cada uma (company_id, razão social, município, validade do certificado).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, which the description does not contradict. The description adds context about the returned fields but does not disclose additional behavioral traits such as pagination, performance, or error handling. Given the annotations, the description provides adequate but not extensive transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no wasted words. It front-loads the purpose and efficiently conveys the tool's action and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no parameters and no output schema, the description covers the main aspects: what is listed (connected companies) and what fields are returned. It could mention if the result is an array or object, but overall it is fairly complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is 100%. The description adds meaning beyond the empty schema by explaining what the tool returns (a list of companies with specific fields). This is valuable context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lista' (lists) and the specific resource 'empresas (CNPJs) conectadas a este install', with explicit output fields (company_id, razão social, município, validade do certificado). It distinguishes from sibling tools like notafiscal_listar_nfse which list NFSes, not companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to see the connected companies, but does not explicitly state when to use this tool versus alternatives or specify any prerequisites or context. No exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notafiscal_listar_nfseBRead-onlyIdempotentInspect
Lista as NFS-e emitidas por uma empresa (paginado).
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | ||
| page_count | No | ||
| page_index | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description needs only to add context. It mentions pagination, but that is already implied by the page_count and page_index parameters. It adds no information about authentication, rate limits, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource, with no unnecessary words. It is appropriately sized for a straightforward listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and no output schema, the description is minimal but covers the core purpose. However, it lacks parameter details and usage context, which would be needed for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'por uma empresa' which hints at the company parameter, but does not explain page_count and page_index at all. Parameter meaning beyond schema is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Lista' (lists), the resource 'NFS-e' (invoices), and scope 'por uma empresa (paginado)' (by company, paginated). It effectively distinguishes from sibling tools like notafiscal_emitir_nfse (issue) and notafiscal_cancelar_nfse (cancel).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as notafiscal_consultar_nfse for individual invoices. The description does not state when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_bugAIdempotentInspect
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| message | Yes | ||
| conversation | No | [] |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is idempotent and not destructive. The description adds context that the conversation array helps with reproduction, but does not elaborate on side effects, expected behavior, or confirmation of receipt. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first sentence clearly states the purpose; the second provides critical usage guidance. It is front-loaded and efficiently communicates the essential information without extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a bug-report tool, the description is adequate but not comprehensive. It does not describe the return value, confirmation, or asynchronous nature. However, for its intended use (sending feedback), this may be sufficient. An explicit note on response behavior would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description is the sole source for parameter meaning. It mentions 'message' and 'conversation array' but does not explain the 'context' parameter or clarify that 'conversation' expects a JSON string representation of an array. This leaves ambiguity for two of three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: reporting bugs, missing features, or sending feedback. It uses a specific verb ('Report') and specifies the type of content. Among siblings, none overlap with bug reporting, making the tool easily distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage hint: include the conversation array for reproduction. It implicitly suggests when to use this tool (when providing bug context). However, it does not explicitly mention when not to use or provide alternatives, but this is not critical given the sibling list lacks similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_versionARead-onlyIdempotentInspect
Show the current MCP platform and adapter versions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering its safety profile. The description adds the specific return value (platform and adapter versions) but doesn't disclose additional behavioral traits beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple informational tool with no parameters or output schema, the description fully covers what it returns and its purpose. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description doesn't need to add parameter meaning. Baseline of 4 is appropriate as the schema fully documents the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows current MCP platform and adapter versions, using a specific verb and resource. It effectively distinguishes from sibling tools, which cover authentication, connection, and NFe operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this tool to retrieve version information. While there's no explicit when-not or alternatives, no sibling tool serves a similar purpose, making usage straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolkit_infoARead-onlyIdempotentInspect
Returns the current toolkit state: installed MCPs, their connection status, and how many catalog tools each exposes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds value by detailing what the state includes (installed MCPs, connection status, catalog tool counts), which is behavioral context beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that immediately conveys the tool's purpose and output. Every word adds value; no redundancy or filler. The most critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no input parameters and no output schema, the description adequately explains the return value in reasonable detail. It specifies three aspects of the state, though it could optionally mention other potential fields like version. Overall, it is sufficiently complete for an info tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (trivially). The description does not need to add parameter meaning; baseline for 0 params is 4. No parameter details are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the current toolkit state, specifying three concrete pieces of information: installed MCPs, connection status, and catalog tool counts. The verb 'returns' and specific resource 'toolkit state' make it distinct from sibling tools like authenticate or connect, which are action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining state information but provides no explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it or prerequisites. The agent can infer its role as a read-only status check, but explicit context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI assistants to query Brazilian fiscal data including CNPJ, NF-e, SPED, and tax regimes through natural language, with no API keys required.Last updated44133MIT
- Flicense-qualityDmaintenanceEnables AI assistants to interact with Brazilian electronic invoices (NF-e, NFC-e, NFS-e) via Nuvem Fiscal API, including CNPJ lookup, invoice issuance, cancellation, and PDF generation.Last updated1
- Alicense-qualityBmaintenanceMCP server that lets AI agents issue Brazilian NFS-e service invoices via Focus NFe, with tools for creating, querying, and canceling invoices.Last updatedMIT

brasilnfe-mcpofficial
Flicense-qualityCmaintenanceMCP server that exposes Brazilian tax infrastructure as tools, resources, and prompts, enabling AI agents to emit and manage fiscal documents (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e) through natural language.Last updated
Your Connectors
Sign in to create a connector for this server.