Skip to main content
Glama
t4dhg

@t4dhg/mcp-holded

Server Quality Checklist

75%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v2.1.1

  • Disambiguation4/5

    Each top-level tool maps to a distinct Holded domain, so the primary purposes are clear. A few action names recur across domains (e.g., list_accounts in accounting vs. treasury, task actions in CRM vs. projects), which could cause occasional misselection without careful attention to the tool context.

    Naming Consistency5/5

    All tools follow the same `holded_<domain>` snake_case pattern, and actions within each tool use consistent lowercase snake_case verbs and nouns. The meta tools holded_discover and holded_request also fit the prefix convention cleanly.

    Tool Count5/5

    15 tools is at the upper end of the ideal range but appropriate for a broad ERP suite covering contacts, sales, purchases, payments, treasury, accounting, catalog, team, CRM, projects, calendar, inbox, and webhooks. Each domain tool earns its place, and the discover and request tools provide useful navigation and escape-hatch roles.

    Completeness5/5

    The domain tools provide broad lifecycle coverage: create, read, update, delete, list, and domain-specific actions like approve, send, reconcile, and attach. The low-level holded_request tool also covers the remaining ~350 v2 operations, so there are no dead ends and the set is effectively complete for the stated API surface.

  • Average 3/5 across 15 of 15 tools scored. Lowest: 2.4/5.

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

    • No community issues in the last 6 months
    • 46 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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.

  • This repository includes a glama.json configuration file.

  • This server has been verified by its author.

  • 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?

    Annotations are absent, so the description carries the full burden. It provides some behavioral details, such as the parameters for list_bookings and the special handling for slots (id is location id, data carries the query). However, it does not disclose the confirm/confirmation flow for gated actions, the side effects of delete/cancel, or the meaning of the data object for other create/update actions. The description fails to explain how the action dispatch works beyond listing actions.

    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 a single run-on sentence listing actions with parenthetical details. It is not front-loaded with a clear statement of purpose; instead, it immediately dives into a list. The formatting is cluttered and difficult to parse quickly. While it is compact, it lacks a clear structure that would aid an agent's comprehension.

    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?

    Given the tool's complexity (11 parameters, 12 actions, nested data object) and no output schema, the description is insufficient. It covers only a few actions in detail (list_bookings, slots) and leaves other actions' semantics to the schema. It does not explain pagination, the confirm flow, or return values. For a dispatcher tool, this is a significant gap that would require the agent to experiment or look elsewhere.

    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 only 45%, and the description partially compensates. It explicitly lists the parameters for list_bookings (start_date, end_date, service_id, sort_field, sort_order) and clarifies the slots action's id and data fields. It also notes that data is the payload for create/update actions. However, it does not add semantics for the other actions' parameters, such as what fields are required for create_event or how confirm works.

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

    Purpose3/5

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

    The description states the tool handles 'Events and bookings' and lists specific actions, which gives a general sense of purpose. It distinguishes from sibling tools like sales or contacts because it is the only calendar/booking domain. However, it lacks a clear verb+resource statement (e.g., 'Manage calendar events and bookings') and the purpose is implied through the action list rather than explicitly articulated.

    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?

    There is no explicit guidance on when to use this tool versus alternatives. The sibling tools are clearly different domains (contacts, sales, etc.), so an agent could infer from the name and actions that this is for calendar/booking operations. But the description does not state any conditions for use, exclusions, or when to prefer another tool. 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 full behavioral disclosure burden. It gives no information about side effects, idempotency, authentication needs, or the confirm gate for gated actions (despite the confirm parameter existing). It also does not mention pagination or cursor behavior.

    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 a long list that duplicates the schema enum, making it redundant and poorly structured. It is not front-loaded with a clear purpose, and every sentence is not earning its place since it repeats schema information. The wall-of-text format is not concise or organized.

    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?

    With 28 actions and 8 parameters, the description is highly insufficient. It does not explain how to compose calls, how to use pagination, or the gated confirm flow. It relies entirely on the schema, but the schema lacks context for many parameters (like the data object), leaving the agent with too many unknowns.

    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 75%, so the description only needs to add marginal value. It mentions specific parameters for some actions (name for list_products, include_archived for list_services, data fields for update_stock), but it does not explain the data object structure or the confirm parameter. It adds a little beyond the schema but not enough to compensate for the coverage gaps.

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

    Purpose3/5

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

    The description lists the resources (products, services, warehouses, price lists, production orders) and enumerates all actions, but it does not state a single clear purpose like 'Manage catalog entities'. The action list duplicates the schema enum, so it adds little beyond what the schema already provides. It distinguishes from siblings only by domain, not explicitly.

    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?

    There is no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or scenarios where this tool is appropriate. The description is purely a listing with no usage context.

    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 disclosing behavior. It mentions that 'usage' provides API quota for the current month, but it does not disclose destructive nature of delete, side effects of enable/disable, confirmation requirements, or any auth or rate-limit considerations. The list of actions is present but lacks any behavioral context beyond the bare action names.

    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 concise, using a single sentence with a list of actions. It front-loads the resource and then lists actions, which is efficient. However, the list format is a bit cryptic and could be more readable with separators or short explanations. It is not verbose, but the structure could be improved for clarity.

    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?

    Given the tool has 7 parameters, a nested data object, no output schema, and no annotations, the description is significantly incomplete. It does not explain return formats, pagination behavior, error conditions, or how actions map to parameters. The 'confirm' parameter behavior is only in the schema, not the description. The agent lacks enough context to call this tool correctly across all actions.

    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 71%, and the schema already documents most parameters clearly (id, data, limit, cursor, confirm). The description adds no parameter-specific meaning; it only repeats the action names. Since the schema covers the parameters well, the description does not need to compensate, but it also does not enhance understanding. The 'usage' action hint about API quota is in the description but not linked to the usage_type parameter, leaving a minor ambiguity.

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

    Purpose3/5

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

    The description states the resource (webhooks and API usage) and lists actions, but it is a generic enumeration rather than a specific verb+resource statement. It does not clearly distinguish itself from sibling tools beyond the resource name, and the inclusion of 'API usage' is a separate concern that muddies the focus. The description is adequate but not precise.

    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 description implies that webhook management or API quota checks should use this tool, but it does not name any sibling or condition for selection. There are no exclusions or alternative recommendations, leaving the agent to infer usage from the resource name.

    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, and the description only names actions like delete, update, upload, and attach without explaining side effects, destructive potential, gating, or return behavior. The action names imply modification but do not disclose consequences or safety mechanisms.

    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 compact sentence with no redundant wording. The action-to-parameter mapping is telegraphic but efficient, making it easy to scan.

    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?

    Given the multi-action dispatcher design, nested data object, and absence of an output schema, the description is too sparse to be fully actionable. It omits expected outcomes, error behavior, pagination details, and confirmation workflows.

    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?

    Schema description coverage is only 54%, and the description mostly repeats parameter names without explaining formats, allowed values, or the structure of the nested 'data' object. It adds little beyond what the schema already provides.

    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 identifies the resource as 'Incoming documents scanned by Holded' and enumerates the supported actions, distinguishing this tool from the sibling Holded tools by resource domain. However, it does not explain the individual action semantics in any detail.

    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 lists actions and their associated parameters but provides no guidance on when to choose one action over another, no workflow context, and no mention of confirmation requirements or pagination. An agent would have to infer usage from the action names alone.

    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 does add some useful details: ledger dates use DD/MM/YYYY and amounts use a dot decimal separator, and it notes that start_date/end_date add debit/credit/balance for list_accounts. However, it omits critical behaviors such as the confirm gating mechanism (mentioned in the schema but not the description), pagination semantics (cursor/limit), side effects of create/update/delete actions, and reversibility. The coverage is thin for a tool with 23 actions.

    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 a single block that lists the general purpose then a long list of actions with parenthetical parameter hints. It is not verbose, but it is not well-structured; it could be broken into logical sections (e.g., accounts, ledger, taxes, etc.). The front-loaded purpose is helpful, but the dense list makes scanning harder. It earns a middling score for being concise yet poorly organized.

    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?

    Given the complexity (23 actions, 15 parameters, no output schema, no annotations), the description is notably incomplete. It does not explain return values or pagination behavior, does not mention the confirm gating flow, does not describe error cases, and leaves many parameters undefined in context. An agent would need to rely heavily on the schema and possibly make trial calls to understand expected behavior. The description provides only a high-level list of actions and a few formatting notes, which is insufficient for a tool of this scope.

    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 60%, so the description must compensate for the missing 40%. It does add meaning to several parameters: it explains that start_date and end_date add debit/credit/balance for list_accounts, that list_ledger requires them, that tax_keys takes a country, that series_type is used for list_numbering_series, and that delete_tag requires name. However, many parameters (id, data, section, archived, include_empty, cursor, limit) are not addressed in the description, and the meaning of the 'data' object is left to the schema. It provides partial compensation but not full.

    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 opens with 'Chart of accounts, journal, taxes and configuration lists', which clearly scopes the tool to accounting data and configuration. The long action list reinforces the domain. It distinguishes from siblings like holded_sales and holded_contacts by focusing on accounting-specific entities. However, the purpose is stated as a list of domains rather than a single unified verb+resource, so it's not perfectly crisp.

    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?

    There is no explicit guidance on when to use this tool versus alternatives. The description never mentions other Holded modules or conditions that would route an agent to a sibling. The only implicit cue is the domain name, which is not enough for clear decision-making. It does not state exclusions or alternatives.

    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 itself. It does not mention destructive actions (delete_funnel, delete_lead, delete_task), the need for confirm on gated actions, pagination via cursor/limit, or any side effects. It only hints at required parameters for a few actions (stage_id, due_date, task_id). This is insufficient for an agent to safely invoke these actions.

    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 extremely concise, a single sentence, which is efficient. It front-loads the domain ('Funnels and leads') before listing actions. However, it is a flat list without grouping or hierarchy, and it omits important contextual details that would make it more useful. It earns a middle score for being brief but not optimally structured.

    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?

    This tool has 17 actions, no output schema, and no annotations. The description merely lists actions without explaining their behavior, prerequisites, error handling, or return values. It does not mention confirm, pagination, or the data contract. For a complex multi-action tool, this is severely incomplete and leaves the agent guessing about how to call most actions correctly.

    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 leaves task_id, due_date, and stage_id without descriptions (coverage 56%). The description partially compensates by noting these parameters are required for specific actions (move_stage, update_dates, delete_task), adding meaning beyond the schema. However, it does not explain the data payload structure or other parameters, so it only marginally improves clarity.

    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 identifies the tool's domain as 'Funnels and leads' and enumerates the specific actions it supports. This distinguishes it from sibling tools like contacts or sales, and the action names themselves are self-explanatory verbs on resources. It avoids tautology and gives a concrete idea of what the tool does, though it lacks a more formal 'verb+resource' structure.

    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?

    There is no guidance on when to use this tool versus the many sibling Holded tools (contacts, sales, etc.). The description implies it's for CRM funnel/lead management but doesn't state when it should be chosen or when an alternative is more appropriate. No exclusions or 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?

    With no annotations provided, the description carries the full burden of disclosing behavioral traits. It mentions that amounts are strings with a dot decimal separator, which is a useful detail. However, it does not disclose that delete and archive actions are destructive, that some actions require confirmation (confirm parameter is in schema but not echoed here), or any other side effects. The description is sparse on behavior beyond the amount format.

    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 a single paragraph that front-loads the resource definition and then lists actions. It is reasonably concise but lacks structure; grouping actions by category (e.g., accounts, movements, remittances, forecasts) would improve readability. The note on amount format is placed at the end, which is acceptable but could be more prominent. No fluff, but it reads as a dense list.

    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?

    Given the tool's complexity—13 parameters, 17 actions, no output schema, and no annotations—the description is incomplete. It does not cover pagination (cursor, limit), status filtering, destructive-action warnings, confirmation requirements, or return value shapes. An agent would need to consult the schema extensively and still might miss behavioral nuances. The description lists actions but does not provide enough detail for correct invocation in many scenarios.

    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 only 38%, so the description must compensate. It adds meaning for several parameters by tying them to actions: list_movements uses account id, start_date, end_date; create_movements is manual; reconcile uses movement_id plus data.documents. It also clarifies amount format. However, many parameters (cursor, limit, status, remittance_type, archived) are not explained in the description, leaving gaps that the low-coverage schema does not fill.

    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 identifies the resource as 'Banking accounts and their movements' and lists the supported actions, making its purpose evident. It is distinguishable from sibling modules by the treasury-specific domain, though it does not explicitly contrast with them. A specific verb and resource are present, but the description is more of an enumeration than a precise purpose statement.

    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 alternative modules like holded_accounting or holded_payments. It only lists actions without any contextual routing, such as 'use this for treasury operations, use that for accounting.' Some action-specific parameter hints exist (e.g., list_movements uses id, start_date, end_date), but there is no explicit when/when-not guidance.

    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 of behavioral disclosure. It does add some useful detail about exact-match filters and substring search, but it omits critical behavioral facts such as side effects of delete/bulk actions, the confirm-based gating behavior where the first call sends nothing, pagination via cursor, and attachment file upload 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 compact and front-loads the resource scope before listing actions. The long action enumeration is dense but not padded, and every clause carries information about what the tool can do.

    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 a tool with 16 actions, 14 parameters, no annotations, and no output schema, this description is underspecified. It does not explain when confirm is required, what bulk_archive or portal_link do, how responses are structured, or how pagination works, leaving an agent without enough context to safely invoke destructive or gated operations.

    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 description adds meaningful semantics beyond the input schema by stating that email, code, phone, mobile, and custom_id are exact-match filters and that name is a substring search. However, with 14 parameters and only 64% schema description coverage, many parameters such as data, ids, file_path, and cursor receive no additional context in the description.

    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 identifies the resource scope ('Customers and suppliers') and enumerates the full set of operations available, from list/search to groups and attachments. It distinguishes the tool from sibling modules by domain, though it lacks a concise verb phrase because it is a multi-action tool.

    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 this tool should be used instead of sibling tools such as holded_crm, holded_sales, or holded_purchases. The only usage-related information is internal to this tool: list filters are exact matches while search performs substring on name, which does not help an agent choose between 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 provided, the description carries the full burden of behavioral disclosure. It adds only one useful trait: amounts in responses use comma decimals. It does not mention side effects of actions like delete, approve, or send, the confirm-gating mechanism, pagination behavior, or any permission requirements.

    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 compact and every phrase adds information: types, action-to-parameter hints, and a response format note. It is a single dense run-on sentence, which slightly hurts scannability, but there is minimal waste.

    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 a tool with 18 parameters, nested objects, no output schema, and no annotations, the description is skeletal. It fails to explain the data payload contract, gated actions, status filters, pagination semantics, or what responses look like beyond the amount format. An agent would still face significant uncertainty when invoking most actions.

    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?

    Schema description coverage is only 39%, so the description should compensate. It does associate output_path with the pdf action and file_path with attach, and clarifies type values, but it leaves many parameters (contact_id, pipeline_id, due_date_start/end, approval_status, data, status) without additional meaning or context.

    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 names the specific resource ('Purchase documents') and enumerates the exact document types it covers, differentiating it from sibling Holded tools like holded_sales or holded_contacts. It also lists the available actions, making the tool's scope and responsibility 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 lists actions and types but gives no guidance on when to use this tool instead of alternatives, nor does it explain which action to choose for a given task. There are no exclusions, conditions, or comparisons to sibling tools, so an agent gets no routing help beyond the resource name.

    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 disclosing behavior. It only notes the comma decimal separator for salary amounts, which is a useful detail. It fails to mention side effects (e.g., delete_payslip_payment is destructive), authentication needs, rate limits, pagination behavior, or the gating mechanism of the 'confirm' parameter. This is a significant gap for a tool with many actions.

    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 paragraph that front-loads the domain ('Employees and payroll records') and then lists actions with parameter hints. It is efficient and avoids filler, but the action list is lengthy and could benefit from grouping or structured formatting. Still, it is appropriately sized and does not waste words.

    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?

    Given no output schema, no annotations, and only partial parameter mapping, the description is insufficient for an agent to call the tool correctly across all actions. It does not specify required parameters per action, return formats, error handling, or how to handle pagination (cursor/limit are mentioned in schema but not in description). The description is a catalog but not a complete usage guide.

    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 only 36%, so the description must compensate. It maps some actions to their relevant parameters (e.g., list_salary_records to employee_id, start_date, end_date; salary_record_pdf to output_path), which adds value. However, it omits parameter semantics for many actions and does not explain generic fields like 'data', 'confirm', 'kind', or 'search'. The comma decimal separator note adds useful context for salary-related parameters.

    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 identifies the resource domain as 'Employees and payroll records' and enumerates the available actions, making the tool's scope apparent. However, it lacks a specific verb like 'manage' or 'retrieve' and does not explicitly differentiate from sibling tools beyond the domain, so it is clear but not maximally distinguishing.

    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?

    There is no guidance on when to use this tool versus alternatives. The description is a flat list of actions without selection criteria, exclusions, or prerequisites. An agent must infer from the domain that this tool handles employee/payroll data, but there is no explicit routing instruction to aid decision-making.

    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 side effects and operational details, but it only mentions the amount format. It does not explain the consequences of create/update/delete, the confirm mechanism, or any authentication or rate-limit 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/5

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

    The description is two concise sentences, with the core purpose front-loaded and no wasted words. It efficiently conveys the resource and a key data format.

    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?

    Given the tool's complexity (10 parameters, 7 actions, no output schema, no annotations), the description is far too sparse. It omits pagination behavior, confirm semantics, data payload expectations, and per-action outcomes, leaving an agent under-informed.

    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 lists some list parameters but adds no semantic detail beyond their names. The schema already covers id, data, limit, cursor, and confirm, but the date, document, and banking parameters remain undocumented in both schema and description, leaving a coverage gap unaddressed.

    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 identifies the resource (payments and collections) and enumerates the available actions. It distinguishes the tool's scope from other modules, though it does not explicitly name alternatives like treasury or accounting.

    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?

    There is no explicit guidance on when to use this tool versus its siblings. The purpose is implied by the resource name, but no conditions or exclusions are given, leaving the choice to inference.

    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?

    With no annotations, the description carries the full burden of behavioral disclosure, but it provides none. It does not mention side effects, permission requirements, pagination behavior, or consequences of actions like delete_project or create_project.

    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, well-structured sentence that front-loads the purpose and lists actions efficiently. It avoids redundancy and is 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?

    For a tool with 9 parameters and 16 actions, the description is far too sparse. It lacks guidance on constructing payloads, using pagination (cursor, limit), handling the confirm gate, and typical usage patterns, making it incomplete for an agent to call correctly.

    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 description adds some parameter context by linking actions to parameters (e.g., 'list_projects (status)', 'list_times (project_id optional)'), but it does not explain most parameters or the data payload structure. With only 56% schema coverage, this partial compensation is insufficient.

    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 domain as 'Projects, tasks and time tracking' and enumerates all actions, making its purpose unambiguous. This differentiates it from sibling tools like holded_contacts or holded_sales by 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/5

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

    There is no guidance on when to use this tool versus alternatives. The description only lists actions without providing context, prerequisites, or exclusions, leaving the agent to infer usage from the domain 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?

    No annotations are provided, so the description carries the full burden. It discloses one important behavioral trait: 'Amounts in responses are strings with a comma decimal separator.' It also hints at parameter requirements ('pdf (needs output_path)', 'attach (file_path)') and type-specific actions. However, it does not disclose side effects (e.g., delete is permanent, send emails), prerequisites, or the confirm gate, leaving significant gaps.

    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 a single dense sentence listing types and actions. It is compact but not well-structured; the information is front-loaded but could be presented as a list for better readability. It's not overly verbose, but the lack of structure reduces clarity.

    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?

    This is a complex tool with 21 parameters, 22 actions, no output schema, and no annotations. The description provides a high-level list but omits crucial usage context: how to use actions together, required fields for create/update, pagination, the confirm gate, and typical workflows. It fails to give an agent enough to call it correctly without further exploration.

    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 62%, so the description must compensate. It adds some meaning by linking actions to parameters (e.g., 'pdf (needs output_path)', 'attach (file_path)', 'find_by_number (invoices)' implying document_number). However, many parameters (contact_id, pipeline_id, due_date_start/end, etc.) are left without explanation, and the description does not cover all 21 parameters.

    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's domain: 'Sales documents by `type`' and lists all supported document types and actions. It distinguishes from siblings like holded_purchases by explicitly naming the sales domain, though it doesn't explicitly say 'use this for sales, not purchases'. The purpose is clear and specific.

    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 through its domain focus and action list, but it does not explicitly state when to use this tool versus alternatives like holded_purchases. It provides some per-action type restrictions (e.g., 'find_by_number (invoices)'), but no general when/when-not guidance 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 states the tool lists domains, which is inherently read-only, but it does not explicitly disclose that this operation has no side effects or require any authentication. The absence of an explicit read-only statement is a minor gap, though the verb 'List' strongly implies a safe query.

    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 two sentences with zero fluff. The primary purpose is front-loaded, and the second sentence adds useful operational detail about sibling tools. Every word earns its place.

    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 description does not specify the output format of this tool (e.g., a list of domain names). While the agent can infer the result from the purpose, with no output schema, the description should at least hint at the return structure. The guidance on sibling tools is useful but does not fully compensate for this missing detail.

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

    Parameters4/5

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

    The tool has no parameters, and the schema coverage is 100% (empty object), so the description need not add anything. However, it goes beyond the schema by explaining that domain tools take an `action` parameter, which is valuable context for the agent to understand the broader tool ecosystem.

    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: 'List the Holded tool domains.' It specifies a verb (list) and a resource (tool domains). It also differentiates itself from its siblings by explaining that each domain is a separate tool, making it the entry point for discovering the available domains.

    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 provides clear guidance on how to interact with the sibling tools: call a domain tool with no action to see its actions in the error message, or read the tool description. While it doesn't explicitly say 'use this when you need to discover domains,' the purpose is implied, and the instructions for using alternatives are directly helpful.

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

  • Behavior5/5

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

    With no annotations provided, the description fully bears the burden of behavioral disclosure. It discloses that responses are returned unvalidated, that destructive operations require a confirm step that sends nothing on the first call, and that this tool bypasses the validation of domain tools. These are critical behavioral traits communicated clearly.

    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 compact, delivering the purpose, path rule, confirm mechanism, and usage preference in just two sentences. It is front-loaded with the core concept ('low-level escape hatch') and packs essential details without fluff. Every sentence adds 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 low-level tool with no output schema and no annotations, the description covers the most critical operational details: path prefix, confirm requirement, and unvalidated responses. It omits guidance on constructing body and query objects and does not mention authentication or error handling, but these are less essential for an escape hatch given its intended use after domain tools are exhausted.

    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 no descriptions (coverage 0%), so the description must compensate. It clarifies the path parameter (must be relative to base URL and start with '/') and explains the confirm parameter's role for specific paths. However, it does not elaborate on the body, query, or method parameters beyond the schema's enum for method and generic object types for body/query, leaving some ambiguity.

    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 purpose as a 'low-level escape hatch for the ~350 v2 operations', specifying the verb (call) and resource (any endpoint). It distinguishes itself from the domain tools by noting that those validate inputs and responses, making the purpose unambiguous and differentiating from siblings.

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

    Usage Guidelines5/5

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

    It explicitly advises to prefer domain tools when possible, establishing when not to use this tool. It also provides concrete usage conditions: the path must start with '/', and certain methods and path keywords require 'confirm: true', with the first call returning the request without sending. This gives clear when-to-use and when-not-to-use guidance.

    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

@t4dhg/mcp-holded MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

@t4dhg/mcp-holded MCP server – quality and maintenance score on Glama

Copy to your README.md: