Siigo MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Every tool has a clearly distinct purpose targeting specific resources and actions, with no overlap or ambiguity. For example, get_invoice retrieves details while get_invoice_pdf downloads the PDF, and list_invoices provides paginated listings, each serving a unique function within the accounting domain.
Naming Consistency5/5Tool names follow a highly consistent verb_noun pattern throughout, using 'get_' for single-item retrieval, 'list_' for paginated listings, and specific nouns like 'invoice', 'customer', or 'product'. This uniformity makes the tool set predictable and easy to navigate for an agent.
Tool Count5/5With 19 tools, the server is well-scoped for its accounting and invoicing domain, covering key entities like invoices, customers, products, and credit notes. Each tool earns its place by providing necessary operations such as retrieval, listing, and PDF generation, without being excessive or sparse.
Completeness4/5The tool set offers strong coverage for retrieval and listing operations across core accounting entities, but lacks create, update, or delete tools, which are essential for full CRUD workflows. Agents can read data effectively but cannot modify it, representing a minor gap in lifecycle management.
Average 3.8/5 across 19 of 19 tools scored. Lowest: 3.2/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.jsonto 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?
No annotations are provided, so the description carries the full burden. It states the tool returns a list but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or whether it's read-only. The description is minimal and misses key operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that directly state the action and return value. It's front-loaded with the main purpose and wastes no words, 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.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, it lacks details on usage context and behavioral transparency, which are gaps for a tool with no annotations. It's complete enough for a simple read operation but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the return purpose ('for categorizing products or customers'), which provides semantic context beyond the empty schema. Baseline is high due to no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('account groups/classifications') with the scope 'all', making the purpose specific. It distinguishes from siblings by focusing on account groups rather than other entities like invoices or customers, though it doesn't explicitly contrast with similar tools (e.g., no direct sibling for groups).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 mentions the purpose but lacks context on prerequisites, timing, or comparisons with other tools, such as whether it's for setup, reporting, or categorization tasks.
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 provided, the description carries the full burden of behavioral disclosure. It states it 'Returns the full customer details including contacts and addresses,' which gives some output context, but lacks details on permissions, error handling, rate limits, or whether it's a read-only operation. For a retrieval tool with zero annotation coverage, 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, using a clear title sentence followed by bullet points for arguments and returns. Every sentence adds value without redundancy, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, has output schema), the description covers the basics but lacks depth. It explains the parameter and return data, but without annotations or detailed behavioral context, it's only minimally adequate for an agent to use it correctly in varied scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema by specifying that 'customer_id' is a 'GUID' and clarifying what data is returned. Since schema description coverage is 0% and there's only one parameter, this adequately compensates, though it could include format examples or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('customer by ID'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from its sibling 'list_customers', which retrieves multiple customers rather than a single one by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'list_customers' or other retrieval tools. It mentions the required parameter but offers no context about prerequisites, error conditions, or typical use cases.
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 provided, the description carries the full burden of behavioral disclosure. It states the tool returns invoice details but doesn't mention whether it's a read-only operation, requires authentication, has rate limits, or handles errors. This leaves significant gaps for a tool that likely accesses sensitive financial data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by clear sections for arguments and returns. Every sentence adds value without redundancy, 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.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no nested objects) and the presence of an output schema, the description covers the basics but lacks behavioral context. It explains what the tool does and returns but misses details like permissions, error handling, or sibling tool differentiation, which are important for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the schema, specifying that 'invoice_id' is a GUID and explaining what the tool returns. Since schema description coverage is 0% and there's only one parameter, this adequately compensates, though it could provide more detail about the GUID format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('invoice by ID'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'list_invoices' or 'get_invoice_pdf', which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'list_invoices' or 'get_invoice_pdf'. It mentions retrieving by ID but doesn't specify prerequisites, exclusions, or contextual usage scenarios.
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 states the tool returns a list of users, which is basic output information, but lacks details on permissions required, rate limits, pagination, or error handling. For a read operation with zero annotation coverage, this is insufficient to inform safe and effective usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that are front-loaded with the core purpose ('Get all users in the Siigo account') followed by additional context about the return value. Every sentence adds value without redundancy, making it efficient and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists (which handles return values), the description's job is simplified. It covers the basic purpose and output type adequately. However, with no annotations and siblings that might contextually overlap (e.g., get_customer for user-related data), it lacks completeness in usage guidance and behavioral details, making it just minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately avoids discussing parameters, focusing instead on the tool's purpose and output. This aligns with the baseline expectation for tools without parameters, earning a high score for not adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('all users in the Siigo account'), making the purpose explicit. It distinguishes from siblings by focusing on users rather than other entities like invoices or products. However, it doesn't explicitly differentiate from potential user-related siblings (none exist in the provided list), so it falls short of a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 mentions users can be 'assigned as sellers or responsible parties,' which hints at use cases but doesn't specify scenarios, prerequisites, or exclusions. With siblings like get_customer or list_customers that might overlap in user contexts, the lack of explicit differentiation is a significant gap.
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 states the tool retrieves data ('Get'), implying it's likely read-only, but doesn't confirm this or address other aspects like authentication needs, error handling, rate limits, or what 'full credit note details' entails. The description is minimal and lacks behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded. The first sentence ('Get a credit note by ID.') directly states the purpose, followed by a brief 'Args' section and a return statement. Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no annotations, but has an output schema), the description is reasonably complete. It covers the basic operation and parameter semantics. The presence of an output schema means the description doesn't need to detail return values, but it could improve by addressing behavioral aspects like read-only confirmation or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics beyond the input schema. The schema has 0% description coverage and only defines 'credit_note_id' as a string. The description specifies that 'credit_note_id' is 'The credit note's GUID', clarifying its format and purpose. With one parameter and low schema coverage, this compensation is effective, though not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a credit note by ID' specifies the verb ('Get') and resource ('credit note'), and 'Returns the full credit note details' elaborates on the outcome. However, it doesn't explicitly differentiate from sibling tools like 'list_credit_notes' (which likely lists multiple notes) or 'get_credit_note_pdf' (which retrieves a PDF version), missing full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention sibling tools such as 'list_credit_notes' for browsing or 'get_credit_note_pdf' for PDF retrieval, nor does it specify prerequisites like needing a specific credit note ID. Usage is implied but not explicitly stated.
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 provided, the description carries the full burden of behavioral disclosure. It states the tool returns full details including line items, which adds some context beyond basic retrieval. However, it lacks information on permissions, error handling, rate limits, or whether it's a read-only operation (implied but not stated), leaving significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first ('Get a journal entry by ID'), followed by concise parameter and return details. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no nested objects) and the presence of an output schema (which handles return value documentation), the description is reasonably complete. It covers the purpose, parameter meaning, and return scope. However, with no annotations, it could better address behavioral aspects like safety or constraints to fully compensate for the missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'journal_id' is a GUID and clarifies what the tool returns (full entry details including line items), compensating well for the schema's lack of descriptions. With only one parameter, this provides adequate context, though it could specify the GUID format more precisely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('a journal entry by ID'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list_journals' (which retrieves multiple entries) or other 'get_' tools that fetch different resources, missing an opportunity for clearer sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention sibling tools like 'list_journals' for retrieving multiple entries or other 'get_' tools for different resources, nor does it specify prerequisites or exclusions. Usage is implied by the name and description but not explicitly stated.
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 states the tool returns product details but doesn't mention whether it's a read-only operation, requires authentication, has rate limits, or handles errors. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by brief but clear sections for arguments and returns. Every sentence earns its place without redundancy, making it efficiently structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the purpose, parameter semantics, and return scope adequately, though it lacks behavioral details that annotations would typically provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'product_id' by specifying it's a GUID, which clarifies the expected format beyond the schema's generic string type. With 0% schema description coverage, this compensates well, though it doesn't detail validation rules or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('product by ID'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from its sibling 'list_products', which retrieves multiple products rather than a single one by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'list_products' or other sibling tools. It lacks context about prerequisites, such as needing a valid product ID, or exclusions, leaving the agent to infer usage based on the tool name alone.
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 full burden. It discloses pagination behavior and filtering options, but lacks details about authentication requirements, rate limits, error conditions, or what specific data fields are returned in the paginated list. The mention of 'navigation links' hints at pagination structure but isn't fully explanatory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter explanations and return information. Every sentence adds value, and the Args/Returns formatting helps readability without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, pagination, filtering) and the presence of an output schema (which handles return value documentation), the description provides adequate context. It covers the core functionality and parameter meanings well, though additional behavioral details would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It successfully explains all 4 parameters: page (starts at 1), page_size (max 100), name (partial match filter), and identification (NIT/cédula filter). This adds crucial semantic context beyond the bare schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('customers'), and specifies pagination and filtering capabilities. It distinguishes itself from 'get_customer' (singular retrieval) by indicating it returns multiple customers, but doesn't explicitly contrast with other list tools like 'list_credit_notes' or 'list_invoices' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention when to choose 'list_customers' over 'get_customer' (singular retrieval) or other list tools, nor does it specify prerequisites or contextual constraints for usage.
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 that it returns a list and mentions common types (FV, NC, RC), which adds useful context. However, it doesn't cover behavioral aspects like error handling, rate limits, authentication needs, or whether it's read-only (implied by 'Get' but not explicit). The description doesn't contradict annotations, but 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by parameter details and return information. Every sentence adds value, such as the examples of common types. It could be slightly more structured by separating returns from args, but it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter) and the presence of an output schema (which handles return values), the description is fairly complete. It covers the purpose, parameter semantics, and return context. However, it lacks details on behavioral traits like error cases or performance, which would be helpful despite the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaning by explaining the optional 'document_type' parameter: it filters by type and provides examples (FV=invoice, NC=credit note). This clarifies the parameter's purpose and format beyond the schema's basic string/null definition. However, it doesn't detail all possible types or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all configured document types.' It specifies the verb ('Get') and resource ('document types'), and distinguishes it from siblings like get_invoice or get_credit_note by focusing on metadata rather than specific documents. However, it doesn't explicitly contrast with get_payment_types or get_taxes, which are similar configuration-fetching tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning an optional filter and common types, suggesting it's for retrieving document type configurations. However, it lacks explicit guidance on when to use this tool versus alternatives like get_invoice (for specific invoices) or get_payment_types (for other configuration data). No exclusions or prerequisites are stated.
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 pagination behavior and optional filtering, which are useful traits. However, it doesn't mention authentication needs, rate limits, error handling, or whether this is a read-only operation (though implied by 'List'), leaving gaps in behavioral context for a tool with multiple parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured: a brief overview sentence front-loads the purpose, followed by a clear 'Args' section with bullet-point-like explanations for each parameter, and a final sentence on returns. Every sentence earns its place without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with 0% schema coverage and an output schema present (so return values needn't be detailed), the description is largely complete. It covers all parameters thoroughly and mentions pagination with navigation links. However, it lacks context on authentication, errors, or sibling tool differentiation, which could be useful for a list tool in this server.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It provides clear semantics for all 5 parameters: page (starts at 1), page_size (max 100), date_start/end (YYYY-MM-DD format), and customer_name (partial match). This adds significant value beyond the bare schema, explaining formats, constraints, and behaviors not evident from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resource ('invoices'), and mentions key features like pagination and filtering. However, it doesn't explicitly distinguish this tool from sibling tools like 'list_credit_notes' or 'list_customers' which follow similar patterns, missing full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning pagination and filtering capabilities, suggesting this is for retrieving multiple invoices with optional constraints. However, it lacks explicit guidance on when to use this versus alternatives like 'get_invoice' (for single invoices) or other list tools, and doesn't state any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/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 effectively discloses key behavioral traits: pagination behavior (page/page_size parameters), date filtering capabilities, and the return format (paginated list with navigation links). It doesn't mention rate limits, authentication needs, or error conditions, but covers the core operational behavior well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening sentence followed by parameter details and return information. Every sentence adds value, though the 'Args:' section could be slightly more integrated. It's appropriately sized for a tool with 4 parameters and pagination behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (pagination, filtering), no annotations, but with an output schema present, the description provides good coverage. It explains what the tool does, all parameters, and the return structure. The output schema will handle return value details, so the description doesn't need to duplicate that information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all 4 parameters clearly. It adds essential semantics beyond the bare schema: page numbering starts at 1, page_size has a maximum of 100, date filters use YYYY-MM-DD format, and parameters are optional (implied by 'Filter by'). This provides complete parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('journal entries/accounting vouchers'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'get_journal' (singular) by indicating it returns multiple entries with pagination. However, it doesn't explicitly contrast with other list_* tools beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the mention of pagination and date filtering, suggesting this is for browsing multiple journal entries. However, it provides no explicit guidance on when to use this versus alternatives like 'get_journal' (singular) or other list_* tools, nor does it mention prerequisites or 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 key behavioral traits like pagination, filtering (partial match), and return format with navigation links, which goes beyond basic functionality. However, it lacks details on rate limits, error conditions, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by clear parameter explanations and return information. Every sentence adds value with no wasted words, 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.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, pagination, filtering) and the presence of an output schema, the description is largely complete. It covers key aspects like parameter semantics and return format, though it could benefit from more behavioral context like error handling or performance notes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains all four parameters (page, page_size, code, name) with semantics like 'starts at 1', 'max 100', and 'partial match', fully compensating for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resource ('products'), and distinguishes it from sibling tools like 'get_product' by emphasizing pagination and filtering capabilities. It explicitly describes what the tool does beyond just the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the mention of pagination and filtering, but does not explicitly state when to use this tool versus alternatives like 'get_product' or other list_* siblings. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
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 effectively describes the tool's behavior: it downloads a PDF, returns base64-encoded content, and requires decoding. However, it lacks details on permissions, rate limits, or error handling, which would be useful for a download operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by clear sections for arguments and returns. Every sentence adds value: the first states the action, the second defines the parameter, and the third explains the output and decoding process, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (which handles return value documentation), the description is mostly complete. It covers the purpose, parameter semantics, and output handling. However, it lacks context on authentication, error cases, or sibling tool differentiation, which could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does 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 adds meaning by specifying that 'credit_note_id' is a 'GUID', which clarifies the parameter's format beyond the schema's generic string type. This is helpful, but it does not explain where to obtain this ID or provide examples, leaving some gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Download a credit note as PDF') and resource ('credit note'), distinguishing it from siblings like 'get_credit_note' (likely returns metadata) and 'get_invoice_pdf' (different document type). It uses precise terminology like 'base64-encoded string' and 'binary PDF' to clarify the output format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a PDF download is needed, but does not explicitly state when to use this tool versus alternatives like 'get_credit_note' (for non-PDF data) or 'list_credit_notes' (for listing). It provides no guidance on prerequisites, error conditions, or exclusions, leaving usage context partially inferred.
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 of behavioral disclosure. It explains the output format ('PDF content as base64-encoded string') and decoding instructions, which adds useful context beyond basic functionality. However, it doesn't cover potential errors, authentication needs, or rate limits, leaving gaps for a tool that likely involves data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured: a clear purpose statement, a parameter explanation, and return value details in three sentences. Every sentence adds value, with no wasted words, and it's front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema, the description is mostly complete. It covers the purpose, parameter meaning, and output handling, but lacks details on error cases or usage constraints, which could be helpful for robust agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does 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 explaining the 'invoice_id' parameter as 'The invoice's GUID', adding semantic meaning that the schema lacks. Since there's only one parameter, this is sufficient to clarify its purpose, though it could note format constraints (e.g., UUID).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Download an invoice as PDF') and resource ('invoice'), distinguishing it from siblings like 'get_invoice' (which likely returns metadata) and 'get_credit_note_pdf' (a different document type). It uses precise language that leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'invoice' and referencing the 'invoice_id' parameter, which helps differentiate it from tools like 'get_credit_note_pdf'. However, it lacks explicit guidance on when to use this versus alternatives such as 'get_invoice' for non-PDF data or prerequisites for accessing invoices.
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 full burden. It describes the return format ('list of payment types') and hints at a read-only operation ('Get'), but lacks details on permissions, rate limits, or error handling. This is adequate for a simple read tool but misses deeper behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two concise sentences that directly state the tool's purpose and usage without any wasted words. Each sentence adds clear value, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, but with an output schema), the description is mostly complete. It explains what the tool does and how to use the results, but could benefit from mentioning the output schema's role or any limitations. The presence of an output schema reduces the need for return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description does not add parameter semantics, but this is acceptable as there are no parameters to document, warranting a baseline score above the minimum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('all configured payment types/methods'), and distinguishes it from siblings by focusing on payment types rather than other entities like customers, invoices, or products. It explicitly mentions what the tool returns, making its function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: to retrieve payment types for use in creating invoices or cash receipts. It implies usage by linking to other operations, but does not explicitly state when not to use it or name specific alternatives among siblings, which keeps it from a perfect score.
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 full burden. It discloses that the tool retrieves errors for rejected stamps, implying a read-only operation, but lacks details on permissions, rate limits, or error handling. It adds some context about DIAN validation but does not fully describe behavioral traits beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the purpose stated first, followed by parameter details and usage guidance in clear, concise sentences. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (one parameter, no annotations, but with an output schema), the description is mostly complete. It explains the purpose, parameter, and usage context. However, it could improve by addressing potential edge cases or linking to the output schema for return value details, though the output schema reduces the need for that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema by explaining that 'invoice_id' is 'The invoice's GUID' and that it is used to fetch rejection errors. With 0% schema description coverage and only one parameter, this compensates well, though it could provide more detail on the GUID format or validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('DIAN rejection errors for an invoice'), and it distinguishes itself from sibling tools by focusing on stamp rejection errors rather than general invoice data or other resources like customers or products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool ('if the stamp was rejected' and 'to understand why an invoice failed DIAN validation'), but it does not explicitly mention when not to use it or name alternatives among the sibling tools, such as 'get_invoice' for general invoice details.
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 of behavioral disclosure. It describes the return format ('list of taxes with their IDs, names, and percentages') and hints at a read-only operation ('Get'), but does not disclose other behavioral traits such as authentication needs, rate limits, or error handling. The description adds some context but is incomplete for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by additional context in a second sentence. Both sentences earn their place by providing essential information without redundancy, making it efficiently structured and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple read operation with 0 parameters), the description is mostly complete: it states the purpose, return format, and usage context. With an output schema present, it does not need to explain return values in detail. However, it lacks details on behavioral aspects like authentication or error handling, which are relevant for a tool with no annotations, leaving a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so no parameter information is needed. The description does not add parameter semantics, but this is appropriate given the lack of parameters. A baseline score of 4 is applied as it compensates adequately for the zero-parameter case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get all configured taxes') and resource ('in the Siigo account'), distinguishing it from sibling tools like get_customer or get_product. It explicitly mentions the scope ('all configured taxes') and the system context ('Siigo account'), providing a precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a clear usage context by stating 'Use these tax IDs when creating invoices or products,' which indicates when this tool's output is applicable. However, it does not explicitly differentiate when to use this tool versus alternatives (e.g., no mention of sibling tools like get_document_types or get_payment_types for other configuration data), so it lacks explicit exclusions or named alternatives.
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 pagination behavior and date filtering, which is helpful. However, it doesn't mention authentication requirements, rate limits, error conditions, or whether this is a read-only operation (though 'list' implies reading). The description adds some behavioral context but leaves significant gaps unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by parameter details and return information. Every sentence adds value, though the 'Args:' section could be slightly more integrated. It's appropriately sized for a tool with 4 parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, 4 parameters with 0% schema coverage, and the presence of an output schema (so return values don't need explanation), the description is quite complete. It covers purpose, parameters, and pagination behavior. The main gap is lack of authentication/error context, but the output schema reduces the completeness burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all 4 parameters: their purposes, formats, and constraints. It clarifies that 'page' starts at 1, 'page_size' has a max of 100, and date filters use YYYY-MM-DD format. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List credit notes') and distinguishes it from sibling tools like 'get_credit_note' (singular retrieval) and 'list_invoices' (different resource). It explicitly mentions pagination and filtering capabilities, providing a precise scope that differentiates it from other list operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'with pagination and optional filters' and distinguishes from 'get_credit_note' by being a list operation. However, it doesn't explicitly state when to use this tool versus alternatives like 'list_invoices' or provide exclusion criteria, leaving some guidance implicit rather than explicit.
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 full burden. It mentions that the tool 'Returns a list of warehouses for inventory management,' which gives basic behavioral context about the output. However, it lacks details on potential limitations (e.g., pagination, rate limits, or authentication needs), leaving some gaps in transparency for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured with three sentences that each serve a clear purpose: stating the action, describing the return value, and providing usage guidance. There is no wasted text, and it is front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is mostly complete. It explains what the tool does and how to use the results. However, with no annotations, it could benefit from more behavioral details (e.g., error handling or data freshness), slightly reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the purpose of the output ('warehouse IDs when creating products or invoices'), which goes beyond the schema. This earns a baseline 4 since it compensates with useful semantic context despite the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get all configured warehouses/locations') and distinguishes it from siblings by focusing on warehouses for inventory management. It explicitly mentions the resource (warehouses/locations) and the action (get all configured ones), making it distinct from other get/list tools in the sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance by stating 'Use warehouse IDs when creating products or invoices with inventory,' which tells the agent when to use this tool (to obtain IDs needed for other operations) and implies it's a prerequisite for those actions. This is clear and actionable without needing to list exclusions.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dsfaccini/siigo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server