elevor-erp360
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@elevor-erp360check the credit limit for customer code 1045"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
elevor-mcp — MCP server ERP360 / Elevor (DentalInoveh)
MCP server exposing Elevor's ERP360 to an agent/app. Built and live-tested (10/06) against the production installation s6.elevor.cloud/DentalInoveh/ERP360.
There are two APIs in the same ERP, with per-scope tokens (Bearer auth):
Scope | API | Token (.env) | Status |
Customers | Commercial |
| ✅ working (4,897 customers) |
Orders | Commercial |
| ✅ working (83 orders with items) |
Products/Stock | Ren9veCommerce |
| 🟡 auth OK, empty catalog* |
* The product token authenticates (200 OK), but the catalog comes back empty until Elevor marks the groups/products for e-commerce in the ERP (production config). Once that is done, produtos_sync will return the catalog without any code changes.
Tools
Tool | Scope | What it does |
| customers | Lists customers (paginated; filter by date/CPF/CNPJ) |
| customers | Customer by code |
| customers | Credit limit |
| orders | Queries orders (filters + pagination); returns Customer and Products |
| products | Catalog: |
| products | Product / balance by code (Stock + Grids) |
| products | Categories / grids |
| products | Write: creates order (stock deduction). Requires |
Related MCP server: erp-mcp
Setup
cd ~/elevor-mcp
npm install
cp .env.example .env # .env já tem os tokens reais (gitignored)
npm run build
node test-live.mjs # teste read-only contra produçãoRegister in the MCP client (Claude Desktop / OpenClaw):
{
"mcpServers": {
"elevor-erp360": {
"command": "node",
"args": ["/Users/barboza/elevor-mcp/dist/index.js"],
"env": { "ELEVOR_RADICAL_URL": "http://s6.elevor.cloud/DentalInoveh/ERP360" }
}
}
}(tokens are read from .env, or can go in the env block.)
Only pending item: e-commerce config (Elevor)
Meeting with Lucas (Elevor) to configure in the ERP:
Which groups/products go to e-commerce (unlocks the empty catalog).
Exposed price table (Price / Promotion / Cash).
Stock: is
Estoquealready the sum of the grids? Is there stock by warehouse/branch?Images via
ProdutosImagens. IP allowlist. Who consumes the delta cursor/Produtos.
Full technical details in INTEGRATION_STUDY.md. Swagger saved in erp360-swagger.json.
Available Tools
26 toolscidades_buscarBuscar cidadesA
Cidades cadastradas no ERP (por descrição).
| Name | Required | Description | Default |
|---|---|---|---|
| descricao | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose whether the operation is read-only or has side effects. The verb 'buscar' suggests a search, but there is no explicit statement about it being non-destructive or about response shape. With no annotations to supplement, this is a critical omission.
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 extremely concise—a single short sentence that conveys the core purpose and the filtering criterion. It is well-structured and free of unnecessary detail.
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 provides enough context to understand that it searches cities by description, but it does not specify what the response contains (e.g., a list of city objects). Since there is no output schema, this missing detail prevents full completeness, though the primary function is clear.
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 parameter 'descricao' is directly explained by the parenthetical '(por descrição)', indicating it is the description used to filter cities. This gives clear meaning, though it does not specify matching rules (e.g., exact vs. partial), which is a minor gap.
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 (buscar = search) and the resource (cidades cadastradas no ERP). It distinguishes this tool from siblings which deal with clients, products, etc., by specifying cities. The purpose is unambiguous.
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 when to use it (when needing cities by description) but does not explicitly provide usage guidance or contrast with alternatives. Since there are no alternative city-related tools among siblings, the context makes it obvious, but the description itself lacks explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_arquivosArquivos do clienteC
Arquivos autorizados do cliente (por código/CPF/CNPJ).
| Name | Required | Description | Default |
|---|---|---|---|
| codCpfCnpj | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden, but it only states a noun phrase and does not disclose whether the operation is read-only, whether it returns file metadata or content, or how authorization/errors behave. The word 'autorizados' adds a weak access-control hint but no concrete behavior.
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 extremely compact, front-loads the resource, and contains no filler. It loses a point only because it is so terse that it reads as a fragment rather than a complete operational statement.
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?
With no annotations and no output schema, the description needs to carry the full operational context, but it leaves out the expected return shape, the precise meaning of 'arquivos autorizados', and any error or authorization behavior. It is enough to guess the purpose but not to invoke with full confidence.
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 schema has 0% description coverage, but the description compensates by mapping the single codCpfCnpj parameter to a customer code, CPF, or CNPJ. This gives an agent enough semantic grounding for a single self-named parameter.
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 identifies the resource (client files) and the lookup key (code/CPF/CNPJ), but it is a noun phrase with no verb, so an agent must infer whether the tool lists, downloads, or manages those files. It is not a tautology, yet it does not clearly differentiate the action from sibling tools such as cliente_get or clientes_list.
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 guidance is given about when to choose this tool over alternatives, what prerequisites exist, or when it should not be used. The parenthetical 'por código/CPF/CNPJ' only hints at the input key, not the selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_atualizarAtualizar clienteB
Atualiza cliente (por Cod). PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| cod | Yes | ||
| cliente | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. It does disclose a meaningful safety/auth requirement (ELEVOR_ALLOW_WRITES=true) and warns that the operation affects production, which is valuable. It does not disclose whether the update is partial or full replacement, what validation occurs, or what the response looks like.
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 extremely concise and front-loads the core action. Every element earns its place: the operation, the key field, the environment, and the write-flag prerequisite. No redundant wording or filler is present.
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 lack of annotations, no output schema, and a completely open 'cliente' object, the description is not complete enough for an agent to invoke the tool reliably. The agent knows the target key and that a write flag is required, but it does not know what customer fields are acceptable or what the update behavior entails.
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 needs to compensate, but it only clarifies that 'cod' is the identifier used to locate the customer. The 'cliente' object parameter is left completely unspecified: no required fields, allowed keys, or update semantics are described. This is a significant gap for an unstructured nested object.
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 states a clear verb and resource: 'Atualiza cliente' (updates customer). The qualifier '(por Cod)' indicates the operation targets an existing customer by its code, which helps distinguish it from create/list operations. It does not explicitly name sibling alternatives, so it stops short of perfect differentiation.
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 an important usage condition: it is a production operation that requires ELEVOR_ALLOW_WRITES=true. However, it does not explicitly say when to choose this tool over alternatives like cliente_criar or cliente_get. The usage guidance is mostly implied by the word 'Atualiza' and the key-based reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_criarCriar clienteC
Cadastra cliente no ERP. PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| cliente | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions a requirement (ELEVOR_ALLOW_WRITES) but does not disclose what happens on success, whether the operation is idempotent, what side effects occur, or what the return value is. For a write operation, this is a significant gap in behavioral context beyond the simple fact that it creates a client.
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, compact sentence that conveys the purpose and a key requirement without any fluff. It is front-loaded with the primary action. While more detail is needed, the existing text is appropriately concise for what it covers.
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 nested object parameter, no output schema, and complete absence of annotations, the description is grossly incomplete. It omits essential information about parameter structure, return behavior, error handling, and prerequisites beyond the one environmental flag, making correct invocation highly unlikely.
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 only parameter 'cliente' is an object with additionalProperties allowed and zero schema descriptions. The description offers no explanation of expected fields, structure, or required sub-attributes. With 0% schema coverage, the description must fully compensate but fails to provide any guidance, leaving the agent to guess the object's shape.
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 states a clear action (register) and resource (customer) within the ERP context. It is distinct from sibling tools like 'cliente_atualizar' (update) and 'cliente_get' (retrieve) by virtue of the verb 'cadastra', even though it doesn't explicitly contrast with them.
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?
There is no guidance on when to use this tool versus alternatives like 'cliente_atualizar' or 'crm_criar_conta'. The production note about ELEVOR_ALLOW_WRITES is an environment prerequisite, not a usage discriminator, and no exclusions or alternative contexts are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_getObter clienteC
Retorna um cliente pelo Cod.
| Name | Required | Description | Default |
|---|---|---|---|
| cod | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure, yet it merely restates the operation—fetch a customer by code. It is silent on not-found behavior, the meaning of the number|string union, auth requirements, and error handling. This is minimally informative for a mutation-free read tool, so it falls short of a 3.
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 sentence with zero waste, front-loading the core retrieval semantic. It suits the minimal scope of a get-by-code tool, though one could argue it is lean to the point of thinness.
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, one-parameter lookup, the description is close to adequate—'Retorna um cliente' even covers the return value, which matters given there is no output schema. But within a 27-tool sibling surface with several cliente_* options, the lack of guidance on when to reach for this tool leaves the agent to rely on the tool name alone.
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 for the undocumented 'cod' parameter, but 'pelo Cod' merely repeats the property name without adding format, example values, or domain constraints. It does clarify cod is the lookup key, which is the one thing that goes beyond the structured schema.
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 'Retorna um cliente pelo Cod' uses a clear verb (Retorna) and resource (um cliente) qualified by the lookup key (Cod). It implies single-record semantics, distinguishing it from the list-oriented clientes_list. However, it never names or contrasts with siblings such as clientes_list, cliente_atualizar, or cliente_criar, so it doesn't quite reach the bar of explicit sibling differentiation.
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?
There is no guidance on when to use this tool versus the 27 siblings. With customer-adjacent alternatives like clientes_list, cliente_limite_credito, and cliente_arquivos available, the absence of usage context or exclusions is a real gap for an agent deciding between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_limite_creditoLimite de crédito do clienteA
Consulta o limite de crédito por código/CPF/CNPJ.
| Name | Required | Description | Default |
|---|---|---|---|
| codCpfCnpj | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does state 'Consulta', making the read-only nature and primary action clear, and it mentions the identifier types. However, it does not disclose output shape, authorization needs, or behavior when the identifier is not found.
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, front-loaded sentence with no filler or repetition. Every word adds value: the action, the resource, and the accepted identifier forms are all present.
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 lookup tool with one required parameter and no annotations, the description is nearly complete: it identifies the target data and the parameter semantics. The only notable gaps are response format and not-found behavior, which are minor for this low-complexity 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 input schema only defines codCpfCnpj as a string with 0% coverage. The description adds crucial semantics: the parameter is an identifier that can be a customer code, CPF, or CNPJ. This gives an agent enough context to populate the parameter correctly, though it omits formatting details.
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 uses a clear verb ('Consulta') with a specific resource ('limite de crédito') and states the accepted identifiers (código/CPF/CNPJ). This distinguishes it from sibling customer tools like cliente_get or clientes_list, which target broader customer data rather than credit limit.
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 when to use it (whenever a credit limit is needed by one of these identifiers), but it gives no explicit guidance, prerequisites, or comparison with alternatives. It does not say, for example, when to prefer this over cliente_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clientes_listListar clientesA
Lista clientes do ERP (paginado). Exige ao menos um filtro: codCpfCnpj OU uma data (cadastro/alteração). pageTake máx recomendado 100.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSkip | No | ||
| pageTake | No | ||
| codCpfCnpj | No | ||
| dataCadastroMin | No | dd/MM/yyyy | |
| dataAlteracaoMin | No | dd/MM/yyyy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses that the call is paginated, that an unfiltered call is not valid (exige ao menos um filtro), and that pageTake should not exceed the 100 recommendation. It stops short of covering rate limits or the failure mode when no filter is supplied, but the core behaviors are transparent.
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, front-loaded with purpose followed by constraints, with no filler. The pagination note and filter requirement are stated compactly and earn their place.
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 paginated list tool with no output schema and no annotations, the description covers the essential facts: purpose, mandatory filtering, pagination, and page-size guidance. The only notable gap is routing guidance toward cliente_get for single-record lookups, but nothing an agent needs to invoke this correctly is missing.
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 coverage is only 40%, so the description must compensate. It does: it clarifies that codCpfCnpj and the date fields are the accepted filter options and frames pageTake with a recommended maximum. This adds meaning beyond the bare schema, though pageSkip's role and codCpfCnpj's expected format remain undocumented.
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 states the verb+resource clearly ('Lista clientes do ERP') and adds that the result is paginated. It is distinguishable from the sibling cliente_get by the plural 'paginado' wording, but it does not explicitly call out that this lists many clients while cliente_get fetches one, so differentiation is only implicit.
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 an explicit precondition: at least one filter is required (codCpfCnpj OR a cadastro/alteração date), and it recommends pageTake max 100. This is concrete when-to-use guidance. It does not, however, describe when to prefer this over related siblings like cliente_get, so no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crm_consultar_atividadesCRM consultar atividadesC
Consulta atividades do CRM por filtros.
| Name | Required | Description | Default |
|---|---|---|---|
| filtros | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It implies a read-only query operation but provides no details about return format, pagination, error handling, or any side effects. It does not contradict annotations (since none exist), but it is far from transparent.
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 extremely concise, a single clause. While it wastes no words, it is under-specified to the point of being unhelpful. It is not structured to front-load critical information beyond the basic action and resource.
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 tool accepting a flexible nested object (filtros) with no output schema or annotations, the description is far too thin. An agent would not know what shapes of filters are valid, what data is returned, or how to handle edge cases. The tool is contextually inadequate for reliable invocation.
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 coverage is 0%, so the description must compensate for the undocumented 'filtros' parameter. It merely says 'por filtros' (by filters), which restates the parameter name without explaining acceptable filter keys, value types, or how filtering behaves. This adds minimal value over the schema.
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 states a clear verb (consulta) and resource (atividades do CRM), with a mention of filters as the mechanism. It is immediately understandable, though it doesn't differentiate from sibling tools like crm_criar_atividade or other query tools beyond the resource name.
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 provides no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of related tools or common use cases. It only states what it does, not when to prefer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crm_criar_atividadeCRM criar atividadeC
Cria atividade no CRM. Requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| atividade | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a prerequisite (ELEVOR_ALLOW_WRITES=true) but does not describe side effects, return values, or error behavior. It only states that it creates an activity, leaving the user unaware of what happens after the call.
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 extremely concise, summarizing the action in a single sentence with a clear primary verb and resource. It is front-loaded and gets directly to the point, with 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 essential context such as the expected structure of the 'atividade' object, any return information, and the broader purpose of the activity within the CRM. It leaves the user guessing about the tool's full functionality and data requirements.
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 only parameter 'atividade' is an object with no schema definition. The description does not explain what fields or structure are expected, making the parameter completely vague.
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 'Cria atividade' (creates activity) and the resource is the CRM. This distinguishes it from other creation tools like crm_criar_contato and crm_criar_conta, which create contacts and accounts respectively.
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 provides no guidance on when to use this tool instead of other CRM creation tools. It mentions a permission requirement but does not explain conditions for usage or comparisons with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crm_criar_contaCRM criar contaC
Cria/atualiza conta no CRM. Requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| conta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It reveals a write-permission requirement, which is useful, but it does not mention side effects, idempotency, required fields, errors, or response behavior. For a mutation tool, this is minimal and insufficient.
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 very terse (two sentences) and front-loads the purpose, but the brevity comes at the cost of essential information. It is concise but under-specified, making it only minimally acceptable.
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 nested, arbitrary object parameter, no output schema, and zero annotations, the description is grossly incomplete. It fails to convey what data the 'conta' object needs, what happens on success or failure, or any authentication or prerequisite details beyond the env variable.
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%, and the only parameter 'conta' is a fully open object with additionalProperties=true. The description does not explain what properties the 'conta' object should contain, so an agent has no idea how to construct a valid input. This is a critical gap.
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 ('Cria/atualiza conta') and the resource ('no CRM'), and it is distinct from sibling tools like crm_criar_contato (contact) and crm_criar_atividade (activity). Even though 'conta' is ambiguous (account vs. bill), the CRM context and sibling differentiation make the intent obvious.
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 mentions a prerequisite (ELEVOR_ALLOW_WRITES=true) but provides no guidance on when to choose this tool over alternatives. It does not explicitly say 'use this for accounts' or contrast with siblings, leaving the agent to infer from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crm_criar_contatoCRM criar contatoB
Cria contato no CRM. Requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| contato | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description carries the behavioral disclosure burden. It does state that the operation creates a contact and that it requires ELEVOR_ALLOW_WRITES=true, which is useful auth-related context. However, it does not explain validation behavior, duplicate handling, failure modes, or what happens on success.
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 definition is two short sentences, with the action presented first and the required write-flag prerequisite second. Every sentence earns its place, and there is no redundant or filler language.
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 write operation with a nested object parameter, no output schema, and no annotations, the description is not complete enough. The ELEVOR_ALLOW_WRITES prerequisite is helpful, but the lack of contact-object structure and any success or failure semantics leaves a significant gap for the agent to cross before invoking the tool confidently.
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 input schema has one nested 'contato' object with no per-property descriptions, and schema description coverage is 0%. The description only mirrors the parameter name instead of explaining which fields belong in the object, making it difficult for the agent to correctly construct a request.
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 identifies the action and resource: 'Cria contato no CRM' says it creates a contact in the CRM. This separates it at surface level from crm_criar_conta and crm_criar_atividade, though it is mostly a rephrasing of the title and does not define what a 'contato' record contains.
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 prerequisite, ELEVOR_ALLOW_WRITES=true, but no guidance on when to use this tool instead of siblings such as crm_criar_conta, crm_criar_atividade, or cliente_criar. The agent is left to infer the correct usage from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crm_loginCRM loginA
Login no CRM (usuario/senha) → token temporário.
| Name | Required | Description | Default |
|---|---|---|---|
| senha | Yes | ||
| usuario | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It honestly states that the output is a token and that it is temporary, which is useful. However, it does not detail side effects (e.g., session creation), error behavior, or how the token should be used in subsequent calls. This is adequate for a simple login tool but not exceptional.
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 extremely concise, single-sentence, and front-loads the action, input, and output. Every word earns its place with no fluff.
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 low-complexity authentication tool with no output schema, the description is sufficient to understand the basic call flow. However, it could clarify whether the token should be sent as a header and any prerequisites. The missing details do not break usability but 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?
The schema has 0% description coverage, so the description should enrich parameter understanding. The text mentions 'usuario/senha', which merely restates the parameter names without adding format, length, or validation rules. Since the parameter names are self-explanatory, the description does not meaningfully compensate for the lack of schema descriptions, leaving it at an average level.
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 'Login no CRM' with 'usuario/senha' and the output 'token temporário', unambiguously identifying this as an authentication tool that exchanges credentials for a temporary token. It uses a specific verb and resource and is easily distinguishable from sibling tools like crm_consultar_atividades or pedido_criar_v2.
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 the tool is used for logging in and obtaining a token, but it does not explicitly state when to use it relative to other tools (e.g., 'call first to authenticate') or provide any exclusions. Given there is no sibling login tool, the usage context is self-evident from the name and description, but it lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estoque_getConsultar estoqueC
Saldo de estoque de um produto (Estoque total + Disponivel por variação).
| Name | Required | Description | Default |
|---|---|---|---|
| cod | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, does not mention authentication or authorization requirements, and does not describe the response structure. The word 'saldo' implies a query, but side effects and data scope are unstated.
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, concise sentence that conveys the core purpose immediately. It is front-loaded and easy to scan, with no unnecessary information. It loses a point because it omits important contextual details that could be added without bloating the description.
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 is short and covers the basic purpose but lacks essential context for correct invocation: it does not explain what the input parameter represents, how the response is structured, or whether variations affect the output. Since there is no output schema and no annotations, the description should compensate with these details, and it does not.
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 schema has one parameter ('cod') with 0% description coverage,D and the tool description does not clarify what 'cod' refers to (product code, SKU, internal ID?). The description mentions 'variação' but does not explain how it relates to the parameter. Without schema descriptions and no additional explanation, the agent must infer parameter meaning from the tool name alone.
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 resource (product stock) and the data provided (total stock and available per variation). It uses a specific noun and implies a read operation. However, it does not explicitly mention an action verb like 'get' or 'query', and it does not differentiate from sibling tools, though siblings operate on different entities (cliente, produto, 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?
No guidance is given on when to use this tool versus alternatives. There are sibling tools like produto_get and clientes_list, but no mention of conditions that would select estoque_get over them. The description does not indicate prerequisites, such as whether the product code must exist or how variations are handled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedido_alterar_statusAlterar status do pedidoC
Altera status (AlterarPedido). PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'PRODUÇÃO' and the write-flag requirement, which hints at side effects (a write operation affecting production data), but it does not disclose whether the change is reversible, what status transitions are allowed, or what the response indicates. For a mutation tool with no annotation coverage, this is a notable gap.
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 very short (one sentence plus a flag warning), which is economic. It front-loads the core action and includes a critical production requirement. However, it omits essential operational details, so the conciseness comes at the cost of completeness—this is under-specification rather than efficient brevity, as with the 'process' example.
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?
This is a mutation tool with no annotations, no output schema, and a single opaque 'request' object parameter. To call it correctly, an agent would need to know the required fields and the valid status values, none of which are provided. The flag warning is useful, but the description is far from sufficient for a tool whose input schema is a black box.
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 schema has one required parameter named 'request', described as an object with additionalProperties: {} and 0% schema description coverage. The description does not explain what fields this 'request' object must contain (e.g., pedido id, target status). With no schema details and no description compensation, an agent cannot infer how to structure the request. The description adds no semantic value beyond the schema's bare type.
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 states a specific verb ('Altera status') and resource ('pedido'), so it identifies the action. However, it does not clarify what the status change means operationally (e.g., which statuses are possible, whether it confirms or cancels), and 'AlterarPedido' is an opaque system name that adds little. It distinguishes weakly from siblings like pedido_cancelar or pedido_status because it only says 'Altera status' without scope.
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?
There is no guidance on when to use this tool versus alternatives like pedido_cancelar or pedido_status. The only contextual note is the production flag requirement (ELEVOR_ALLOW_WRITES=true), which is operational, not usage-related. The description does not state prerequisites (e.g., an existing pedido id or a valid status value) or contrast with sibling cancellation/status-check tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedido_cancelarCancelar pedidoB
Cancela pedido/pré-venda (por id). PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states that this is a cancel operation and mentions the write flag, but does not disclose side effects (e.g., irreversible action, status changes, stock updates), return values, error conditions, or whether it is idempotent. This is a significant gap for a mutation tool.
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 two short sentences, front-loading the main action and then stating the production requirement. Every word serves a purpose, and there is no redundancy. It is appropriately concise for a simple 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?
With a single required parameter, no annotations, and no output schema, the description should cover key behavioral and return aspects. It states the core action and a prerequisite, but omits what the response looks like, whether cancellation is reversible, and any side effects. For a write operation, this is incomplete.
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 schema has 0% description coverage, so the description must compensate. It says 'por id' (by id), which clarifies that the 'id' parameter is the identifier of the order/pre-sale. This adds meaning beyond the schema's bare 'id' field, but it does not elaborate on format or constraints. It is minimally adequate.
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 'Cancela' (cancel) and the resource 'pedido/pré-venda' (order/pre-sale), and mentions it operates by id. This makes the tool's purpose clear. It does not explicitly contrast with siblings like pedido_alterar_status, but the action is unambiguous enough for an agent to select it.
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 provides a prerequisite: 'PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true.' This is useful usage guidance, indicating that in production the flag must be set for writes. However, it does not explain when to use this tool versus alternatives such as pedido_alterar_status or pedido_criar_v2, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedido_criar_v2Criar pedido V2D
Cria pedido (Ren9veCommerce V2). PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| pedido | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only mentions that writes are allowed via the ELEVOR flag, but does not disclose side effects, idempotency, validation behavior, or any potential failures. Since no annotations are provided, the description carries full burden and it is severely insufficient.
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 very brief, but it lacks substance. While it is concise (no fluff), it omits critical details that make the tool usable. The structure is a single sentence with a requirement note, which is not well-organized for an API 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 complexity of an order creation operation, the description is extremely incomplete. It does not mention return values, error scenarios, required inputs, or any business rules. There is no output schema, and the description fails to provide any contextual information.
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 only parameter 'pedido' is an object with no defined properties in the schema. The description does not explain what fields or structure the 'pedido' should have. Schema coverage is 0% and the description does not compensate at all.
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 states the verb 'cria' (create) and resource 'pedido' (order), which is a clear action. However, it does not distinguish this tool from sibling 'pedido_ecommerce_criar', both creating orders, and provides no specific scope. The mention of 'Ren9veCommerce V2' is vague and does not clarify the exact intent.
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 guidance is given on when to use this tool instead of alternatives like 'pedido_ecommerce_criar' or 'pedido_status'. The note about ELEVOR_ALLOW_WRITES is a prerequisite, not a usage context. Completely lacks any when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedido_ecommerce_criarCriar pedido (e-commerce)B
Cria pedido/pré-venda no ERP via Ren9veCommerce (baixa estoque). PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| pedido | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does it well: it flags that this is a mutating operation ('cria pedido/pré-venda'), discloses the consequential side effect on stock ('baixa estoque'), and warns it is gated to environments with ELEVOR_ALLOW_WRITES=true. It adds real context beyond the schema, even if rollback/failure behavior is not addressed.
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 compact sentences, each earning its place: the first packs verb, resource, channel, and side effect; the second delivers the critical production write-gate requirement. No filler or restated schema 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?
The missing pieces are substantial for a mutations with a complex nested parameter: the structure of the 'pedido' object is completely undocumented, there is no output schema, no alternative-vs-pedido routing, and no error/failure semantics. The stock-decrement warning and write-gate information add real value, but an agent likely cannot construct a correct request without external knowledge.
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, and it does not. The only parameter, 'pedido', is a free-form object (additionalProperties: {}) with no defined fields, and the description nowhere explains what fields the order object requires. The agent knows only the parameter's name and the fact that it represents an e-commerce order.
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 states a specific verb ('Cria'), a resource ('pedido/pré-venda no ERP'), and the channel ('via Ren9veCommerce'), plus the side effect '(baixa estoque)'. It clearly distinguishes from query/status siblings via the e-commerce channel, though it does not explicitly name pedido_criar_v2 as the overlapping alternative.
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?
It provides a clear precondition for use ('PRODUÇÃO — requer ELEVOR_ALLOW_WRITES=true'), which tells the agent when this write can actually be executed. However, it gives no explicit when/when-not guidance relative to pedido_criar_v2 or the other order tools, so routing to it over alternatives is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedido_por_dataPedidos por data (e-commerce)B
Pedidos/pré-vendas alterados após dd/MM/yyyy.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals the core selection behavior (orders changed after a date) but does not mention whether the result is a list, count, or detailed records, nor any pagination or ordering behavior. Some transparency is present, but significant gaps remain.
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 compact sentence with no filler or redundant information. It is front-loaded with the resource and condition, though it reads more like a fragment than a full instruction.
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 tool with no output schema and no annotations, the description should explain what the caller receives and any relevant usage context. It only provides the input format and a vague filter, leaving the return value and invocation context to inference.
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 schema only defines 'data' as a string with no description, so the tool description's mention of 'dd/MM/yyyy' adds crucial format context. However, it does not clarify whether the date is inclusive, what timezone applies, or whether the date refers to modification date specifically, leaving some ambiguity.
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 identifies a specific resource ('Pedidos/pré-vendas') and a clear criterion ('alterados após dd/MM/yyyy'), so an agent can tell this is a query for orders modified after a given date. It does not explicitly name a sibling alternative, but the date-based scope is reasonably distinct from the other order-related tools.
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 states what the tool does but gives no guidance on when to choose it over alternatives like pedidos_consultar or pedido_status. There are no exclusions, prerequisites, or context about the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedidos_consultarConsultar pedidosC
Consulta pedidos com filtros combinados e paginação. Cada pedido traz Cliente e Produtos (itens).
| Name | Required | Description | Default |
|---|---|---|---|
| pagina | No | ||
| status | No | ||
| codClientes | No | ||
| numeroPedido | No | ||
| dataCadastroMin | No | dd/MM/yyyy | |
| dataAlteracaoMin | No | dd/MM/yyyy | |
| registrosPorPagina | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds minimal behavioral context: mentions combined filters, pagination, and that each order brings Cliente and Produtos. However, it does not explain things like whether filters are AND/OR combined, what the response structure is (beyond returning client/products), or any rate limit or data scope (e.g., this appears to be a CRM or ERP module, but that's not explicitly stated).
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 and front-loaded: two sentences with no fluff. It efficiently gets the purpose and a key behavioral note (combined filters and pagination). The annotations and schema are not repeated, which is good practice. It could add a tiny bit more context, but it's well-sized for its current content.
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's complexity (7 parameters, no annotations, no output schema), the description is under-developed. It explains what gets returned (Cliente, Produtos) but not the response shape, which is critical for an agent to parse results. It also lacks context on how filters interact or what 'status' refers to. For a query tool of this complexity, more guidance is needed to be complete.
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 low at 29%, with only 2 of 7 parameters having descriptions. The description adds no parameter-specific details. However, parameter names are mostly self-explanatory (e.g., 'dataCadastroMin', 'registrosPorPagina'), and the date parameters include format details in the schema. The description's mention of 'filtros combinados' hints that parameters can be used together, which is some compensation, but it doesn't fully bridge the gap.
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 a specific verb and resource: 'Consulta pedidos' (queries orders) with combined filters and pagination. It distinguishes the tool's scope by noting that every order includes Cliente and Produtos, which is useful, though it doesn't explicitly name a sibling for differentiation. It is clearly a query/consult tool versus sibling create/update tools.
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 this is for querying orders with filters, but provides no explicit guidance on when to use this tool over siblings like pedido_por_data or pedido_status. There is no mention of alternatives or exclusions. Agents would not know if this is the right tool for a specific order-querying use case without deeper inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedido_statusStatus do pedidoB
Status + nota fiscal de um pedido (por id/número).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool returns status and invoice, but does not disclose whether it is read-only, error behavior for non-existent IDs, authentication needs, or any side effects. Minimal behavioral context.
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, concise sentence with no filler. The key information (status + invoice, by id/número) is front-loaded, making it efficient for an agent to parse.
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 one-parameter query tool, the description is adequate but minimal. It does not mention response format or limitations, but without an output schema, that is not strictly required. The absence of any error or edge-case guidance leaves it incomplete.
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 has zero description coverage, but the description clarifies that the 'id' parameter is the order id/número, adding some meaning beyond the schema. However, it does not specify format, length constraints, or whether it can be numeric or alphanumeric in detail.
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 states a specific resource (pedido) and what it returns (status + nota fiscal) via a clear verb. It distinguishes from siblings like pedido_alterar_status and pedido_cancelar, but does not explicitly name alternatives.
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 querying a specific order's status and invoice, but provides no explicit when-to-use guidance, exclusions, or references to sibling tools like pedidos_consultar or pedido_por_data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produto_getObter produtoB
Produto por Cod (com Estoque e Grades).
| Name | Required | Description | Default |
|---|---|---|---|
| cod | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals only that the result includes stock and grades; it does not mention response shape, error behavior for unknown codes, permissions, or any other observable side effects.
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 short phrase with no filler and the core lookup criterion is front-loaded. It earns a high conciseness score even though it is too terse to carry much behavioral context.
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 one-parameter read tool, the description gives enough direction to pass a cod and expect product data with stock and grades. Still, with no output schema or annotations and several related siblings, it lacks return-structure details and usage context.
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 only restates that cod is the lookup key ('por Cod') without adding formats, accepted code types beyond the schema, or examples, so it adds little meaning over the property name.
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 phrase 'Produto por Cod (com Estoque e Grades)' clearly identifies a product lookup by code that also returns stock and grids, so an agent knows the resource and selection criteria. However, it is a noun phrase rather than an explicit verb, and sibling differentiation is only implicit via the mention of stock and grades.
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 the tool is for retrieving a product by its code with stock and grades bundled in, but it never states when to choose it over siblings such as estoque_get or produtos_grades, nor does it provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produto_imagensImagens do produtoC
Imagens base64 do produto (por Cod).
| Name | Required | Description | Default |
|---|---|---|---|
| cod | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions base64 format, which is useful, but it does not state whether the operation is read-only, what happens if no images exist, whether multiple images are returned, or the response structure. This is a significant gap, especially with no output schema.
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 extremely concise, consisting of a short noun phrase. It is front-loaded with key information (product images, base64, by code) and contains no fluff. However, it is not a complete sentence, which slightly reduces readability, but for its length it is 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?
The tool is simple, but the description leaves out important context. With no output schema, an agent cannot anticipate the response shape (e.g., JSON object, array of base64 strings, or single string). It also omits error behavior, such as handling non-existent product codes. Given the lack of annotations and output schema, this description is insufficient for confident tool invocation.
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 schema defines a single required parameter 'cod' with no description, and schema description coverage is 0%. The description only says 'por Cod', which essentially restates the parameter name. It does not explain the expected format, constraints, or how the code should be supplied, adding almost no value beyond the schema's structural definition.
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 'Imagens base64 do produto (por Cod)' clearly states that the tool provides product images in base64 format keyed by product code. Although it lacks an explicit verb, the meaning is unambiguous and distinguishes it from sibling tools like produto_get or produtos_categorias by focusing on images. It doesn't name a sibling explicitly, but the purpose is clear.
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?
There is no guidance about when to use this tool versus alternatives. The only hint is 'por Cod', implying a product code is needed, but no exclusions or alternative tools are mentioned. The description does not explicitly explain when to prefer this tool over other product-related tools, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produtos_categoriasCategorias do e-commerceC
Árvore de grupos/categorias (ProdutosGruposECommerce).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It only states that the result is a tree of groups/categories but does not reveal whether it is a read-only listing, what the return format is, whether it is filtered, or the size/nature of the output. For a tool with zero annotations, this is insufficient.
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?
It is one short line, which is efficient, but the brevity is closer to under-specification than disciplined conciseness. The line does state the core resource, so it is not wasteful.
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?
With no annotations, no output schema, and zero parameters, the description is the sole source of behavioral information. It only names the resource without stating what the tool returns (list, tree nodes, count), how the hierarchy is represented, or any usage context. This is insufficient for a tool an agent must pick among many siblings.
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 0 parameters, so the baseline for no-param tools applies. There is nothing for the description to add beyond the schema; the description does not contradict or duplicate any 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 states the resource clearly — a tree of groups/categories (ProdutosGruposCategorias) for e-commerce. However, it lacks an explicit verb ('retrieves', 'lists'), so the agent must infer the action. The parenthetical implementation reference adds little. It is distinguishable from siblings like produtos_grades only because the entity name itself is different; the description doesn't articulate that distinction.
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 guidance is given on when to call this tool instead of siblings like produtos_sync, produtos_grades, or produto_get. There is no mention of the use case (e.g., rendering category filters in a storefront) or any exclusions. An agent has nothing to base a selection decision on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produtos_gradesGrades/variaçõesC
Definições de grade cadastradas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not indicate whether the tool performs a read or write operation, what data it returns, or any side effects. The agent has zero insight into the tool's behavior.
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 extremely short, but brevity alone is not efficiency—it is under-specification. A single vague phrase provides almost no information and is not well-structured or front-loaded with actionable content.
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 tool with no parameters and no output schema, the description is the only source of context. It is completely inadequate—an agent cannot discern what the tool does, what it returns, or how it relates to other product tools. Essential operational context is missing.
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 input schema has zero parameters, making schema coverage 100% trivially. Per guidelines, a baseline of 4 applies for 0-parameter tools. The description adds no parameter-specific meaning, but there are no parameters to explain, so this is acceptable.
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 'Definições de grade cadastradas' is a noun phrase without an action verb. It vaguely suggests 'registered grid definitions' but does not state whether the tool lists, retrieves, or modifies these definitions. It fails to identify a clear verb and resource, leaving the tool's core function ambiguous.
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 guidance is provided on when to use this tool versus the many siblings (e.g., produto_get, produtos_categorias). There is no mention of context, prerequisites, or alternatives, so an agent cannot determine appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produtos_syncSincronizar produtosA
Puxa produtos do e-commerce. mode='all' (dump) | 'since' (alterados após since dd/MM/yyyy) | 'changed' (delta — AVANÇA o cursor no servidor). Cada produto traz Estoque e variações (Grades).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| since | No | dd/MM/yyyy (para mode='since') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It explicitly warns that 'changed' mode advances the server cursor, which is a critical side effect. It also states that each product includes stock and variations, giving the agent a useful preview of the response. Missing details like pagination or permissions are not disclosed, but the most important behavior is covered.
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 compact and information-dense, using a concise pipe-separated format for modes. Every sentence adds value: the operation, the mode semantics, the side-effect warning, and the response shape. No filler or redundancy.
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 tool with only two parameters and no output schema, the description covers the essential operational choices, the side-effect of 'changed', and the returned product structure. It could be more complete by mentioning pagination or the exact response envelope, but for this level of complexity it is adequately complete.
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 schema only provides enum values for 'mode' and a brief description for 'since', so the description adds meaningful semantics by explaining what each mode does and clarifying the 'since' date format. This compensates for the 50% schema coverage. It does not specify validation rules like whether 'since' is ignored for 'all' or 'changed', but the core parameter meanings are clear.
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 core operation: 'Puxa produtos do e-commerce' (pulls products from e-commerce) and enumerates the three sync modes by name. It is specific about resource and action, though it does not explicitly distinguish itself from sibling tools like produto_get or produtos_grades.
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 provides clear context on how to choose each mode: 'all' for a full dump, 'since' for updates after a date, and 'changed' for an incremental delta. It does not mention alternatives or exclusions, but for a single-tool sync operation, the mode-level guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
separacao_consultarConsultar separaçãoC
Separação e produtos do pedido (com estoque/lote/validade).
| Name | Required | Description | Default |
|---|---|---|---|
| pageTake | No | ||
| numeroDocumento | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full responsibility for behavioral disclosure. It indicates the content type (stock, batch, validity) but does not explicitly state read-only behavior, pagination, or how the 'numeroDocumento' filter works.
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 concise sentence without filler. It is efficient, though it sacrifices detail, but for conciseness it is well-structured.
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?
With no output schema and no annotations, the description is insufficient. It fails to explain parameter semantics or expected return format, leaving significant gaps for an agent to call 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?
Schema coverage is 0%, and the description provides no explanation of the two parameters (pageTake, numeroDocumento). The agent receives no guidance on what these parameters mean or how to use them, making correct invocation difficult.
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 states a clear verb (consultar) and resource (separação e produtos do pedido) and specifies it includes stock, batch, and validity. This differentiates it from siblings like pedidos_consultar and estoque_get, though it could be more explicit about the exact return structure.
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 guidance is provided on when to use this tool versus alternatives like pedidos_consultar or estoque_get. The description implies its domain but does not state any conditions or exclusions, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
26 tool updates
v0.1.0- First observed
cidades_buscar - First observed
cliente_arquivos - First observed
cliente_atualizar - First observed
cliente_criar - First observed
cliente_get - First observed
cliente_limite_credito - First observed
clientes_list - First observed
crm_consultar_atividades - First observed
crm_criar_atividade - First observed
crm_criar_conta - First observed
crm_criar_contato - First observed
crm_login - First observed
estoque_get - First observed
pedido_alterar_status - First observed
pedido_cancelar - First observed
pedido_criar_v2 - First observed
pedido_ecommerce_criar - First observed
pedido_por_data - First observed
pedido_status - First observed
pedidos_consultar - First observed
produto_get - First observed
produto_imagens - First observed
produtos_categorias - First observed
produtos_grades - First observed
produtos_sync - First observed
separacao_consultar
TDQS
Scored across 26 tools
Several tools overlap: pedido_ecommerce_criar and pedido_criar_v2 both create orders, while pedidos_consultar and pedido_por_data both query orders by filters/date. produto_get includes stock and grades, making it unclear when estoque_get is needed. This is more than just one or two confusing pairs.
Naming follows no clear convention: cliente_get, clientes_list, pedido_status, pedido_por_data, crm_consultar_atividades, and produtos_sync all use different patterns. It also mixes English and Portuguese verbs in a single toolset, which makes the API feel inconsistent despite the shared domain prefixes.
With 26 tools, the count crosses the 25-tool heavy threshold. Although the ERP/CRM domain is broad, several overlapping order and product tools make the set feel larger than necessary and harder to navigate.
The toolset covers core ERP workflows: customer create/update/read, product and stock retrieval, order lifecycle including create/status/cancel, plus CRM account/contact/activity creation. Minor gaps remain, like product update/delete and CRM read endpoints for contacts, but the main integration flows are usable.
Maintenance
Related MCP Connectors
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
MCP server for Codat — companies, connections, invoices, bills and financial statements.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA comprehensive MCP server for ERPNext providing generic, doctype-agnostic access to any ERPNext document type with robust permission controls, audit logging, and enterprise-grade security.MIT

erp-mcpofficial
AlicenseNot gradedqualityCmaintenanceExposes ERP data (production orders, inventory, BOM, customers) to any MCP client through a backend-neutral interface, with a mock backend for testing.MIT- AlicenseNot gradedqualityBmaintenanceExposes Dynamics 365 Business Central data to MCP clients via standard v2.0 API or custom AL APIs, supporting read, write, and destructive operations with multiple authentication modes.7 npmMIT
- FlicenseAqualityBmaintenanceRead-only MCP connector for querying the Protheus (TOTVS) system, exposing 10 GET endpoints as MCP tools with OAuth2 authentication and friendly error handling.10-