Skip to main content
Glama
klausagnoletti

e-conomic MCP Server

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool targets a distinct resource-action pair: customers, products, invoice drafts, booked invoices, and reference data. List vs. get operations are clearly separated, and even the 'hello' tool is unambiguous.

    Naming Consistency4/5

    Tools consistently use verb_noun snake_case (list_, get_, create_, update_, book_, download_, upsert_). The only outlier is 'hello', which breaks the pattern but is a trivial helper.

    Tool Count4/5

    At 17 tools, this is slightly above the typical 3-15 range, but the count is justified by covering customers, products, invoices, and reference data. No tool feels redundant.

    Completeness4/5

    The invoice workflow is well covered from draft creation through booking to PDF download. However, customers lack a create operation and products lack a single get operation, leaving minor gaps.

  • Average 3.4/5 across 17 of 17 tools scored. Lowest: 2.4/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    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 indicates a mutation (update) but does not mention whether it performs partial updates, how missing fields are handled, whether it validates input, what happens if the customer does not exist, or any error behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence that communicates the core action without waste. However, it is under-specified for a tool with many parameters and no annotations, so it does not fully earn its place as the only descriptive text.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (16 parameters, no annotations, no output schema), the description is completely inadequate. It fails to explain return values, error scenarios, or which fields are supported for update, leaving the agent without crucial decision-making information.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 16 parameters with only 13% description coverage (customerNumber and currency). The description adds no parameter-level meaning, merely saying 'update an existing customer' without explaining any fields or the update semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool updates an existing customer in e-conomic, which identifies the action and resource. It distinguishes from sibling tools like list_customers and get_customer, though it does not enumerate which fields can be updated.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance is provided on when to use this tool versus alternatives or any preconditions (e.g., customer must exist). Usage is only implied by the verb 'update', but there is no context about when to choose this over other tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden, but it only states the action. It does not disclose side effects like automatic customer creation via createCustomerIfMissing, or that it creates a draft rather than a booked invoice, nor does it mention error conditions or permissions.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely short, almost to the point of under-specification. While concise, it sacrifices needed detail and does not earn its place as a standalone, informative description.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a complex tool with 11 parameters, nested objects, and no output schema, this one-sentence description is drastically incomplete. It fails to cover prerequisites, return values, or behavior, making it insufficient for an agent to use confidently.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 55%, yet the description adds no parameter information whatsoever. It does not explain required fields, optional fields like newCustomer, or behaviors such as how createCustomerIfMissing works, leaving the agent to rely entirely on the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool creates a draft invoice in e-conomic, using a specific verb and resource. It is distinct from siblings like update_invoice_draft and book_invoice_draft by emphasizing the creation step.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 update_invoice_draft or book_invoice_draft. It also lacks context on prerequisites, such as requiring an existing customer or how to handle missing customers.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Without annotations, the description carries the full burden for behavioral disclosure. It only says 'Update an existing draft invoice', which barely restates the tool name. There is no mention of whether the update is partial or full replacement, what happens to unspecified fields, or any side effects. This is a tautology of the title.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise and free of fluff, but it is arguably too terse for the tool's complexity. It is a single sentence that sacrifices useful specifics. It earns a middle score for being short and clear, yet under-specified relative to the 9-parameter schema.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With 9 parameters, no annotations, and no output schema, this one-sentence description is severely incomplete. It does not explain required fields (beyond the schema), update semantics, return values, or any edge cases. The agent would have to rely entirely on the schema and guess significant behavioral aspects.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description adds no meaning to the parameters. While five of nine properties have schema descriptions, the remaining four (layoutNumber, recipientName, paymentTermsNumber, recipientVatZoneNumber) lack any explanation, and the description does not compensate for these gaps or clarify how the nested 'lines' array behaves during an update.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Update') and the resource ('existing draft invoice'), which distinguishes it from sibling tools like create_invoice_draft (new) and book_invoice_draft (booking). The word 'existing' is a specific differentiator.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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. It does not mention that it should be used for modifying an already-created draft, nor does it reference create_invoice_draft for new drafts. The only hint is 'existing', but no explicit usage context or exclusions are given.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must disclose behavioral traits, but it only states the basic action. It does not mention side effects such as whether the draft is deleted, whether the operation is reversible, required permissions, or error conditions. The optional 'bookWithNumber' parameter's effect is also unexplained, leaving the agent to guess about behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, focused sentence that directly conveys the tool's core purpose. It contains no filler or irrelevant details, making it efficient and easy to parse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool lacks an output schema and annotations, and the description is minimal, failing to explain the operation's full impact. For example, it does not describe what happens to the draft invoice after booking, nor the return value. Given the low complexity, the description is still under-specified for an agent to use it safely without additional context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema descriptions for both parameters are present and cover 100% of the parameters, so the baseline is 3. The description adds no additional meaning beyond the schema—it does not explain how 'bookWithNumber' interacts with the booking process or why it is optional.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('book') and the resource ('draft invoice'), with the outcome being 'booked invoice'. This distinguishes it from sibling tools like create_invoice_draft and update_invoice_draft, though it does not explicitly name alternatives. The verb 'book' is domain-specific but clear in the invoice context.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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. It does not mention prerequisites, exclusions, or scenarios where other tools (e.g., update_invoice_draft) would be more appropriate. This is a significant gap given the presence of related draft and booked invoice tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    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 does convey read-only intent via 'Fetch' and pagination via 'a page', but lacks detail on return format, sorting, filtering, or any side effects. It adds only marginal behavior beyond the title and name.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence with no fluff. It is appropriately sized for a simple list tool, though it is slightly too terse to include any usage guidance. It is front-loaded and easy to parse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity, the description is adequate: it states the primary function and pagination is covered by the schema. However, without an output schema or annotations, there is no mention of return fields, ordering, or permission requirements, leaving some gaps for an agent to infer.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the parameters page and pageSize are fully documented with types, ranges, and defaults. The description adds no additional meaning beyond what the schema already provides, earning the baseline score of 3.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses the specific verb 'Fetch' with resource 'a page of draft invoices', clearly indicating a listing operation for draft invoices. It implicitly distinguishes from sibling tools like get_invoice_draft (singular) and list_booked_invoices (booked vs draft), though it 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.

    Usage Guidelines2/5

    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 other sibling tools such as get_invoice_draft or book_invoice_draft. There is no context for selecting this tool, no exclusions, and no mention of prerequisites.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    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 only says 'Fetch a page of booked invoices,' which largely restates the title and adds little behavioral context. It does not disclose read-only semantics, ordering, default behavior, or what 'booked' implies, leaving the agent to infer safety and 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, focused sentence that is front-loaded with the action and resource. Every word contributes meaning without redundancy or filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple paginated list tool, the description is minimally viable. However, with no output schema, no annotations, and no guidance on distinguishing from sibling list tools, it lacks richer context about response format or typical use cases that would make it fully complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with both 'page' and 'pageSize' having descriptive comments. The description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Fetch') and resource ('booked invoices') with a scope ('a page'), clearly distinguishing it from sibling tools like list_invoice_drafts (drafts) and get_booked_invoice (single invoice). It indicates pagination, which is a key differentiator.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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. It does not mention that this is for browsing booked invoices or that sister tools like list_invoice_drafts are for different states. No exclusions or prerequisites are given.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    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 indicates a 'fetch' operation (implying read-only), but does not mention authorization requirements, rate limits, response format, or any side effects. The description is too minimal to disclose behavioral traits beyond the basic action.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that front-loads the core action and resource. No wasted words or redundant information, and it appropriately avoids repeating schema details.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple with two well-documented parameters, but no output schema or annotations exist. The description covers the basic purpose and pagination, but leaves out any mention of the return value structure or whether it returns a list of VAT zones. It is minimally viable but lacks some context that would help the agent fully understand the tool's behavior.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema fully describes both parameters (page and pageSize) with clear descriptions and defaults, so schema coverage is 100%. The description adds no extra parameter-specific meaning, but the baseline of 3 is appropriate since the schema already provides the necessary semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's action ('Fetch') and resource ('a page of VAT zones'), using a specific verb and resource that distinguishes it from sibling tools like list_customers or list_products. The pagination aspect is also explicitly mentioned, making the purpose unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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, nor any exclusions or prerequisites. It simply states the function without contextual cues about use cases or comparisons to other list tools. No alternatives are mentioned.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry the burden. It only says 'Create or update,' but does not disclose whether the operation is idempotent, what happens to existing fields on update, whether specific permissions are needed, or any side effects. This is inadequate 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that front-loads the operation ('Create or update') and identifies the resource ('product'). It is concise, clear, and every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For an 8-parameter mutation tool with no annotations and no output schema, the description is too sparse. It does not explain upsert behavior, distinguishing between create and update paths, or the significance of required vs optional parameters. The schema covers parameter details but not the behavioral semantics needed for correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds the key fact that productNumber is the lookup key, which is helpful but not substantial. It does not clarify upsert-specific requirements like productGroupNumber being required only on create, which is left to the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Create or update a product by productNumber.' This is a specific verb+resource+key, distinguishing it from sibling tools like list_products or update_customer. It precisely communicates the upsert operation and the unique identifier.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage: use this when you need to create or update a product. However, it does not explicitly mention when not to use it or contrast with alternatives. Since there is no other product-write tool among siblings, the context is clear but not fully explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    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 only says 'Fetch', which implies a read operation, but it does not disclose error handling (e.g., not found), required permissions, or response structure. This leaves significant behavioral gaps.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no redundant wording. It efficiently communicates the tool's purpose and fits the simplicity of the tool.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple single-parameter tool, the description covers the core purpose and input. However, it lacks details on return values, error behavior, and usage context. Since there is no output schema and no annotations, the description is minimally adequate but with clear gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema fully documents the only parameter (bookedInvoiceNumber) with type, description, and constraint. The description's 'by number' reiterates the schema without adding extra meaning, so the baseline of 3 applies due to 100% schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Fetch a booked invoice by number' with a specific verb ('fetch'), a specific resource ('booked invoice'), and the identifier method ('by number'). This distinguishes it from sibling tools like get_invoice_draft and list_booked_invoices.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The usage is implied: you use this tool when you have a booked invoice number and need the invoice details. However, there is no explicit guidance on when to use this vs alternatives like list_booked_invoices or get_invoice_draft, nor any exclusions or conditions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden. It discloses that the output is base64, which is a useful behavioral detail beyond a simple 'download'. However, it does not mention error handling, permissions, or behavior for invalid/not-booked invoice numbers.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, clear sentence that conveys the action, the target, and the output format with no unnecessary words. It is front-loaded and easily parsed.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple tool with one parameter and no output schema, the description adequately communicates the return format (base64 PDF) and identifies the resource type (booked invoice). Minor gaps exist around error cases and the need for prior booking, but the tool's purpose and primary use are clear.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has 100% coverage and the single parameter 'bookedInvoiceNumber' is described as 'Booked invoice number'. The description adds no further meaning beyond the schema, so the baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific action verb ('Download') with a clear resource ('a booked invoice PDF') and specifies the output format ('as base64'). It clearly distinguishes this tool from sibling tools like get_booked_invoice, which likely returns invoice data rather than the PDF file.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 such as get_booked_invoice or list_booked_invoices. The description does not mention prerequisites, scenarios where this is the preferred choice, or any explicit exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden. It discloses the return type (a greeting) but does not mention optional parameters, formatting, or any side effects. For a simple read-only utility, this is adequate but minimal.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    A single concise sentence that is front-loaded and contains no filler. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the extreme simplicity of the tool and the schema's parameter description, the description is largely complete. It lacks an example output or explicit statement that the tool is a testing utility, but it is sufficient for the trivial nature of the tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with the name parameter described as 'Name to greet'. The description adds no extra meaning beyond the schema, so the baseline score of 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Return a friendly greeting' uses a specific verb and resource, clearly distinguishing it from sibling business tools. It fully states what the tool does.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance on when to use this tool versus alternatives. The context of being a greeting tool is implied but not stated, and no exclusions or alternative references are provided.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description discloses that this is a read operation returning a single page, which implies pagination and read-only behavior. However, with no annotations, it omits details like error handling, pagination edge cases, or any side effects. It meets the minimum bar but lacks richer 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    A single, focused sentence that states exactly the core function. It is front-loaded with the essential information and contains no unnecessary words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple list tool with fully documented optional parameters, this description is largely complete. It does not describe the return format, but the tool name and title make it obvious that products are returned. The lack of an output schema is not problematic here.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides full descriptions for both page and pageSize (100% coverage). The description adds no additional parameter meaning beyond what the schema states, so it earns the baseline score.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Fetch a page of products' uses a specific verb and resource, making it clear what the tool does. It distinguishes the tool from siblings like list_customers or upsert_product by naming both the action and the target entity.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No usage guidance is provided. There is no mention of when to choose this tool over alternatives, nor any exclusions or context about other list tools. The description only states what it does, not when to use it.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    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 states the basic read operation but does not disclose return behavior (e.g., what happens if the draft invoice is not found), response structure, or any authorization requirements. It adds no information beyond what the title and schema already indicate.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no redundant words. It directly conveys the operation without excessive detail, making it appropriately concise for a simple fetch tool.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple single-parameter fetch, the description is adequate but lacks information about the return value (no output schema exists) and error handling. It also does not clarify the distinction from get_booked_invoice beyond the word 'draft'. This is a minimal viable description but has clear gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides full coverage with a description for draftInvoiceNumber. The description's 'by number' adds only marginal context, as the schema already describes the parameter. With 100% schema coverage, the baseline of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Fetch a draft invoice by number' uses a specific verb ('fetch') and resource ('draft invoice') with a clear lookup criterion. It distinguishes this tool from siblings like list_invoice_drafts (which lists drafts) and get_booked_invoice (which retrieves booked invoices).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description clearly implies use when a specific draft invoice needs to be retrieved by its number. It does not explicitly state when not to use it or mention alternatives, but the context is unambiguous for a single-item fetch.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description is minimal, using 'Fetch' to imply a read operation, but with no annotations, it does not disclose other behavioral aspects such as authentication, side effects, or pagination behavior beyond what the schema indicates. It is not misleading but lacks depth.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence without filler words. It efficiently communicates the tool's purpose with no waste.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple list operation, the description is mostly adequate. It clearly states what is fetched and the schema covers pagination parameters. However, since there is no output schema, the description could provide a bit more detail on the return format, but it does not severely hinder comprehension.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides full descriptions for both page and pageSize, so the tool description does not need to add parameter semantics. The description adds no extra value beyond referring to 'a page', which is already covered in the schema, so baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's function with the verb 'Fetch' and the resource 'customer groups', distinguishing it from sibling tools like list_customers and get_customer. It precisely indicates a paginated read operation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for listing customer groups, but it does not provide explicit guidance on when to use this tool versus alternatives. There is no mention of exclusions or preferred scenarios compared to other list tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the burden of disclosing behavior. It mentions pagination via 'a page', but it does not describe sorting, filtering, authentication requirements, or the return format. This is minimal but not misleading.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence, immediately stating the core action. It contains no filler or redundant information, making it highly concise and well-structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple list operation with no output schema, the description provides the essential information: it fetches a page of payment terms. However, it lacks details about the shape of the returned data or any behavioral caveats, though the schema covers the pagination parameters.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides full descriptions for both 'page' and 'pageSize', including defaults and constraints. The description does not add any additional parameter semantics beyond using the word 'page', so it remains at the baseline.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Fetch' and resource 'payment terms', adding scope with 'a page' to distinguish it from other list tools for different resources. This is a specific and unambiguous statement of purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies the tool is used to fetch payment terms, but it does not explicitly state when to use it over alternatives or provide exclusions. Since no sibling tool for payment terms exists, the guidance is minimal but adequate for the task.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the burden. It indicates a read operation ('Fetch') but does not disclose behavior such as error handling if the customer is not found, whether it returns null or throws, or any authentication requirements. This is minimal for a simple fetch.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, focused sentence that front-loads the action and resource, with no redundant words or fluff.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple single-fetch tool with one parameter, the description conveys the essential operation. However, without an output schema or error behavior, it leaves some ambiguity about return format and edge cases, making it adequate but not comprehensive.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already fully describes the only parameter with 100% coverage, including a description ('Customer number in e-conomic'). The description merely repeats 'by customer number' without adding additional context, so it adds little beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses the specific verb 'Fetch' and resource 'a single customer' with the key 'customer number', clearly distinguishing it from siblings like list_customers (plural) and update_customer. It precisely conveys both the operation and its scope.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies use when you have a specific customer number, providing clear context for a single-record lookup. However, it does not explicitly name alternatives or state when not to use it, such as 'use list_customers to retrieve multiple customers'.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the transparency burden. The verb 'Fetch' clearly indicates a read-only operation, and the pagination parameters imply a non-mutating list action. However, it lacks details on potential rate limits, sorting/filtering behavior, or any side effects, which would be useful for a complete picture.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that directly states the tool's purpose without any fluff or repetition. Every word contributes value.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple list tool with optional pagination parameters and no output schema, the description is adequate. It identifies the resource and pagination behavior without needing to explain return fields. However, it could benefit from a brief note that it returns an array of customer objects, given the absence of an output schema.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already fully describes both parameters (page and pageSize) with defaults and ranges. The description's mention of 'page' adds no new meaning beyond the schema, so it aligns with the baseline for high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Fetch') and resource ('customers'), and specifies it is paginated ('a page'). This distinguishes it from siblings like get_customer (which fetches a single customer) and list_products (different resource).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies use for retrieving customers in a paginated manner, which provides clear context. However, it does not explicitly mention when not to use it or point to alternatives like get_customer for single records, so it falls short of a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

e-conomic-mcp-server MCP server

Copy to your README.md:

Score Badge

e-conomic-mcp-server MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/klausagnoletti/e-conomic-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server