Skip to main content
Glama
PatricioRios

mmex-mcp

by PatricioRios

Server Quality Checklist

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

  • Disambiguation5/5

    All tools are clearly grouped by resource (accounts, assets, etc.) with distinct verbs. Even specialized tools like mmex_transactions_link_tag vs mmex_tags_link serve different scopes, and update vs update_partial are explicitly differentiated.

    Naming Consistency5/5

    Every tool follows the exact pattern mmex_{resource_plural}_{verb}_{optional_specifier} in snake_case, with no deviations. The naming is perfectly consistent across all 68 tools.

    Tool Count2/5

    68 tools far exceeds the 25+ threshold for 'too many'. While well-organized, the sheer number makes it difficult for an agent to efficiently select the right tool without extensive scanning.

    Completeness5/5

    Each resource has full CRUDL coverage plus partial updates. Transactions additionally support splits, tag linking, and specialized queries. No obvious missing operations for the domain of personal finance management.

  • Average 3.4/5 across 68 of 68 tools scored. Lowest: 2.6/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 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.

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

  • If you are the author, simply .

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

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

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

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

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

How is the quality score calculated?

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

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

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

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

Tool Scores

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not mention whether the update is atomic, what side effects occur, or any authorization requirements. The only behavioral hint is about 'db_path' and 'db_key' being optional if environment variables are set. This is insufficient for full transparency.

    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 structured as a clear paragraph with an 'Args' list, making it easy to scan. It is efficiently written without redundant information. Though somewhat lengthy due to the number of parameters, every line serves to document a parameter.

    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 an output schema (not shown) but the description does not explain return values, behavior on failure, or provide examples. The tool requires only 'id', but there is no validation guidance. Sibling differentiation is absent. This leaves the agent underinformed for proper invocation.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It provides a one-line explanation for each parameter (e.g., 'id: The account ID'), adding basic meaning beyond the schema's type information. However, it lacks details on constraints, default behaviors, or expected value formats, limiting its usefulness.

    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 'Update an existing account,' which clearly indicates the action and resource. However, it does not differentiate from the sibling tool 'mmex_accounts_update_partial', which likely performs a partial update. This omission may confuse an agent about which tool to use for a full vs partial update.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'mmex_accounts_update_partial'. It also lacks any when-to-use or when-not-to-use context, leaving the agent without decision support.

    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. It only lists parameters without explaining update semantics (full replace vs merge), idempotency, or error handling. The mention of db_path and db_key is helpful but insufficient.

    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 starts with a clear purpose sentence but then dumps a parameter list, which is redundant with the schema. It is adequately structured but not concise; every parameter line could be removed without losing unique information.

    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 (13 params) and that an output schema exists, the description still misses key context: update behavior (full vs partial), error conditions, and whether all fields are overwritten. It covers env var fallback for db_path/db_key, but overall is incomplete.

    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 repeats parameter names with minimal elaboration. It adds format for start_date (YYYY-MM-DD), but most parameters are just restated from the schema. With 0% schema description coverage, the description should compensate more.

    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 states 'Update an existing asset,' which is a clear verb+resource pair. It distinguishes from sibling tools like create, delete, get, list, and update_partial by name, but does not explicitly explain the difference from update_partial.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., mmex_assets_update_partial). There is no mention of prerequisites, such as whether the asset must exist or how to handle failures.

    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 fully disclose behavioral traits. It only lists parameters without mentioning side effects, permissions, validation, or error behavior. For a mutation tool, 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.

    Conciseness3/5

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

    The description is a straightforward docstring with parameter list. It is adequately concise but somewhat lengthy due to obvious parameter names. The first sentence is clear and front-loaded.

    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 (14 parameters, mutation), the description lacks necessary context such as idempotency, error states, or concurrency. An output schema exists but is not shown; return behavior is not mentioned.

    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 0%, so the description compensates by explaining each parameter's purpose (e.g., 'Path to the .mmb database file.'). However, it adds no constraints, allowed values, or format details, leaving room for improvement.

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

    Purpose4/5

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

    The description clearly states the action: 'Update an existing currency in the MMEX database.' It distinguishes from create/delete/get/list but not from the sibling tool mmex_currencies_update_partial, which targets partial updates.

    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 on when to use this tool versus alternatives like mmex_currencies_update_partial, nor any prerequisites (e.g., currency must exist) or when not to use it.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It only lists parameters with minimal explanations (valid values for trans_code and status, env var fallback for db_path/db_key). It does not describe side effects, data validation, permissions, or what happens to existing scheduled transactions.

    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 front-loads the main action in the first sentence but then includes a verbose parameter list. It is adequately concise but could be more structured (e.g., grouping related parameters).

    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 17 parameters, no annotations, and the presence of an output schema, the description lacks completeness. It does not explain the return value, what fields are updatable, or the behavior of updates (e.g., whether it replaces all fields or only provided ones). This leaves significant gaps for agents.

    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 0%; the description does add meaning for some parameters (trans_code valid values, status valid values, db_path/db_key optionality). However, most parameter descriptions merely restate the parameter name (e.g., 'account_id: Account ID.'), which adds little value beyond the schema.

    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 'Update an existing scheduled transaction,' specifying the verb and resource. However, it does not distinguish from the sibling tool 'mmex_scheduled_update_partial' or clarify whether this is a full or partial update, which might cause confusion.

    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 on when to use this tool vs alternatives (e.g., partial update) or prerequisites (e.g., obtaining the ID from list/get). The description only lists parameters without 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?

    No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states only the action 'link' but does not mention whether existing links are overwritten, if multiple tags can be linked, or any side effects (e.g., database write). This is insufficient for a mutation tool.

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

    Conciseness3/5

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

    The description is very concise (one line plus parameter list), which is good for readability. However, it is under-specified given the lack of annotations and sibling differentiation. Every sentence is earned, but more content would improve completeness.

    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?

    Despite having an output schema (per context), the description does not explain return values or behavior. It is incomplete given the presence of many sibling tools that perform similar or opposite actions, and no guidance on typical usage or constraints.

    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 0%, so the description must add meaning. It defines transaction_id as 'Transaction ID', tag_id as 'Tag ID to link', and explains db_path and db_key with environment variable fallback. This adds some value beyond the schema titles, but does not fully compensate for the lack of schema descriptions.

    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 'Link a tag to a transaction' which is a specific verb+resource. It is easily distinguishable from siblings like mmex_tags_link (which links tags to other entities) and mmex_transactions_unlink_tag (opposite action). However, it does not explicitly differentiate from these siblings.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like mmex_tags_link or mmex_transactions_unlink_tag. No context about prerequisites or typical use cases is given.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. Discloses it lists categories but lacks details like read-only nature, error handling, or performance implications. Minimal behavioral disclosure.

    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?

    Efficient docstring with clear Args section. Each sentence serves a purpose; no fluff. Could be slightly more structured but overall good.

    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?

    Simple list operation with output schema present, so return values need not be explained. However, description lacks mention of any filtering or ordering capabilities, which would be helpful for a list tool.

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

    Parameters3/5

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

    Schema coverage 0%, but description adds value by explaining db_path and db_key with env var fallback. Provides context beyond schema types, though not exhaustive.

    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?

    Description clearly states 'List all categories in the MMEX database' with a specific verb and resource. It distinguishes from sibling tools like create/delete/get but could be more explicit about scope (e.g., no filtering).

    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 on when to use this tool vs alternatives (e.g., mmex_categories_subcategories for subcategories). Lacks any 'when not to use' or context for selection.

    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 full behavioral burden. It only states 'Update an existing currency' without disclosing mutation details, idempotency, validation rules, error handling, or what happens if the ID doesn't exist. It also does not mention that unspecified fields remain unchanged.

    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 front-loaded with a clear one-sentence purpose, followed by a structured parameter list. It is concise but the 14-line parameter list could be more succinct, though it remains well-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 tool's complexity (14 parameters, no schema descriptions, sibling differentiation needed), the description omits critical context: what the output looks like (output schema exists but unmentioned), required database state, behavior on invalid ID, and that only provided fields are updated. The 'partial' behavior is only implied.

    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 0%, so the description must compensate. However, parameter descriptions are tautological (e.g., 'name: Currency name', 'symbol: Currency symbol') and add no meaning beyond the parameter names. The only meaningful additions are the optionality notes for db_path and db_key.

    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 'Update an existing currency in the MMEX database partially', indicating the specific verb (update), resource (currency), and scope (partial). This distinguishes it from the full update sibling tool by the word 'partially'.

    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 does not provide any guidance on when to use this tool versus mmex_currencies_update (full update) or other currency tools. It lacks usage context, prerequisites, or exclusions, leaving the agent to infer from 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.

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It fails to mention side effects, idempotency, error handling, or whether partial updates merge or replace fields. The behavior of 'partial' is implied but not explicitly defined (e.g., PATCH semantics).

    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 long (over 20 lines) and front-loaded with a clear purpose, but the parameter list dominates. It follows a docstring format with an 'Args' block. Given the 0% schema coverage, the length is somewhat justified, but it could be more concise by moving detailed param info to the schema.

    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 covers all parameters and mentions optional db_path/db_key environment variables. However, it lacks information about return values (though output schema exists), error conditions, or prerequisites (e.g., needing a valid database connection). It does not explain the 'partial' update semantics thoroughly.

    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 0%, so the description must compensate. It provides one-line descriptions for each parameter, including valid values for 'status' and 'trans_code', and notes optional env vars for db_path/db_key. However, many descriptions are vague (e.g., 'repeats: Repeat frequency') and lack details like format, range, or constraints.

    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 'Update an existing scheduled transaction partially,' using a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'mmex_scheduled_update' (full update), which could cause confusion about when to use each.

    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 vs alternatives like 'mmex_scheduled_update' or 'mmex_scheduled_create'. It merely lists parameters, leaving the agent to infer usage context from the word 'partially'.

    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?

    Without annotations, the description should disclose behavioral traits. It does not mention what happens if the transaction doesn't exist, whether it modifies the transaction total, or any side effects. The environment variable fallback is mentioned but not explained.

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

    Conciseness3/5

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

    The description is concise but follows a docstring format that repeats parameter names. It could be more streamlined, but it is not overly verbose.

    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 and existence of an output schema, the description does not explain return values or prerequisites. It lacks context about when splits can be added and what the response looks like.

    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 0%, so the description must compensate. It provides one-word descriptions for each parameter (e.g., 'Transaction ID.'), which adds minimal value beyond the parameter names. No constraints or formats are explained.

    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 'Add a split to a transaction', specifying the verb (add) and resource (split to a transaction). This distinguishes it from sibling tools like mmex_transactions_delete_split and mmex_transactions_update_split.

    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 on when to use this tool versus alternatives like mmex_transactions_update_split or mmex_transactions_splits. No conditions or prerequisites 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, the description must disclose behavioral traits. It only states that the tool updates a stock and lists parameters, but does not explain what happens to omitted fields (whether they are left unchanged or set to null), any side effects like balance updates, or return value details. This leaves significant behavioral ambiguity.

    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 docstring with a clear one-line summary followed by a list of parameter descriptions. It is adequately structured but somewhat verbose with 13 parameter lines. The first sentence effectively states the purpose, but the bulk is a flat list without details like validation constraints or formatting hints.

    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 13 parameters and 0% schema description coverage, the description is too minimal. It lacks business context such as how updating a stock affects related accounts, validation rules, or the relationship to the sibling partial update tool. The existence of an output schema is mentioned but not detailed, leaving the return value behavior unknown.

    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 0%, so the description carries the full burden. It provides brief explanations for each parameter (e.g., 'Account ID where the stock is held'), which adds some meaning beyond the schema types. However, many descriptions are merely restatements of the parameter name (e.g., 'Number of shares'), offering limited added value. Overall, it minimally compensates for the lack of schema descriptions.

    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 explicitly states 'Update an existing stock,' which clearly identifies the action and resource. This distinguishes it from sibling tools like create, delete, get, list, and update_partial.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like mmex_stocks_update_partial, nor does it mention prerequisites or conditions for updating. The agent is left to infer usage from 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?

    No annotations provided; description only says 'List all transactions'. Does not mention read-only nature, output format, pagination, or any side effects. For a read operation, more transparency about what is returned would help.

    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?

    Concise and front-loaded with the purpose. The Args section is clearly separated. Every sentence adds information. Could be slightly more streamlined, but no wasted 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 the richness of sibling tools (create, delete, get, etc.), the description lacks context on how this list tool fits in. No mention of scope, ordering, or relationship to other transaction tools. An agent might need more context to decide when to use this over others.

    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 description explains the meaning of db_path and db_key, including optionality via environment variables. This adds value beyond the schema, which only has types and defaults. Schema coverage is 0% (no param descriptions in schema), so description compensates well.

    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?

    Clearly states 'List all transactions' with a specific verb and resource. However, it doesn't differentiate from sibling transaction tools like mmex_transactions_get or mmex_transactions_list (though this is the list tool). It could mention that it lists all transactions without filtering.

    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 on when to use this tool versus alternatives. Sibling tools exist for specific operations, but the description doesn't indicate that this is the comprehensive list tool without filters or prerequisites.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It mentions mutation ('Update') and lists parameters, but does not explain what happens if the id does not exist, whether the update is full or partial, or any side effects. The mention of environment variables for db_path and db_key is helpful but insufficient.

    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 front-loaded with a clear purpose statement but then verbosely lists all parameters in a docstring-style format. While organized, it is not particularly concise; the parameter list could be shortened or made more readable.

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

    Completeness3/5

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

    Given 14 parameters and no nested objects, the description covers all parameters with some type info and valid values. However, it omits the return value (output schema exists but is not described) and lacks examples or error handling details, leaving the agent partially uninformed.

    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?

    Schema coverage is 0%, so the description carries the full burden of parameter semantics. It provides type hints and valid values for trans_code ('Withdrawal', 'Deposit', 'Transfer') and status ('', 'Reconciled', 'Void', 'Follow up', 'Duplicate'), and explains optional fallback for db_path and db_key via environment variables. This adds meaningful context beyond the schema's titles and types.

    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 states 'Update an existing transaction,' using a specific verb and resource. While it clearly indicates modification, it does not differentiate from the sibling tool mmex_transactions_update_partial, which likely performs a partial update. The distinction is implied by the tool name but not explicitly stated.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like mmex_transactions_create, mmex_transactions_delete, or mmex_transactions_update_partial. There are no prerequisites mentioned, such as the requirement that the transaction with the given id must exist.

    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. It states only that it updates partially, but does not explain that unspecified fields remain unchanged, any required permissions, write behavior, or side effects. The output schema exists but is not described.

    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 begins with a clear one-sentence summary followed by a structured parameter list. It is efficient but could be slightly more concise by omitting parameter names that are self-explanatory from the schema.

    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 13 parameters and an output schema, the description is incomplete. It does not explain the partial update semantics (only provided fields updated), the optionality of db_path/db_key with environment variable fallback, or what the output contains. An output schema exists but is unmentioned.

    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 meaning to the 13 parameters that have 0% schema coverage by listing each with a brief explanation (e.g., 'Start date (YYYY-MM-DD)'). However, it lacks details like allowed values for status, currency_id, or value_change_mode, and does not validate formats beyond the date.

    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: 'Update an existing asset partially.' The verb 'update' and resource 'asset' are explicit, and 'partially' distinguishes it from the full update sibling tool. The parameter list further specifies what can be updated.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus the sibling 'mmex_assets_update' or other asset tools. There is no mention of when partial updates are appropriate or when a full update is needed.

    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 bears full responsibility for behavioral disclosure. It does not mention return values, side effects (e.g., if the category has subcategories), idempotency, or error conditions. The output schema exists but its content is not described.

    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 with a clear docstring structure. It front-loads the purpose and lists parameters efficiently. Minor redundancy (e.g., repeating 'id: The category ID') could be trimmed, but overall it earns its sentences.

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

    Completeness3/5

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

    Given the presence of an output schema and multiple optional parameters, the description adequately covers parameter semantics but lacks behavioral context (return value, validation, side effects) and usage guidance. It is minimally viable but not rich enough for an agent to use confidently without additional knowledge.

    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?

    Schema description coverage is 0%, but the description adds value by explaining each parameter, especially 'parent_id' (null for root) and 'db_path'/'db_key' (environment variable fallback). While some descriptions are redundant (e.g., 'name: The category name'), overall it compensates for the missing schema descriptions.

    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 'Update an existing category' which specifies the action and resource. However, it does not differentiate from the sibling 'mmex_categories_update_partial' tool, missing an opportunity to clarify full vs partial update semantics.

    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 on when to use this tool versus alternatives like 'mmex_categories_update_partial' or other update tools. The description lacks context about prerequisites or when not to use it.

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

  • Behavior2/5

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

    No annotations are present, so the description must fully convey behavioral traits. It only states the basic delete action without disclosing side effects (e.g., impact on existing transactions using the currency), error conditions, or permission requirements. This leaves significant gaps for safe invocation.

    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 action sentence followed by a bulleted parameter list. It avoids redundancy and is well-structured for quick parsing. However, it could be slightly more structured with headings or context separation.

    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 covers the basic purpose and parameter semantics adequately, and the presence of an output schema (not shown) likely handles return value documentation. However, it lacks behavioral transparency and usage guidelines, making it incomplete for a safe and informed invocation, especially given the risk of deleting a referenced currency.

    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?

    With 0% schema description coverage, the description compensates by clearly explaining each parameter's role: 'id' is the currency ID, 'db_path' is the optional database path, and 'db_key' is the optional encryption key. It also notes fallback to environment variables, adding practical meaning beyond the schema's type-only information.

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

    Purpose4/5

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

    The description clearly states the action 'Delete a currency from the MMEX database' with a specific verb and resource. It lists the required parameters, establishing the tool's core function. However, it does not differentiate this delete operation from sibling delete tools for other entities (e.g., accounts, payees), resulting in a slight lack of 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/5

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

    No guidance is provided on when to use this tool versus alternatives like mmex_accounts_delete or mmex_categories_delete. There is no mention of prerequisites, such as checking whether the currency is referenced by other records, nor any context about when deletion is appropriate.

    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 must disclose behavioral traits. It only states the action without detailing irreversibility, cascading effects, permissions, or return behavior. The output schema exists but is not described.

    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 with a clear sentence followed by an Args list. It avoids fluff but could integrate environment variable information more succinctly.

    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 delete operation, the description fails to mention success/failure behavior, potential dependencies (e.g., if payee is in use), or return value. The output schema is present but unaddressed, leaving gaps in completeness.

    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 explains all three parameters: id (payee ID), optional db_path, and optional db_key with environment variable fallback. However, it lacks details on id validation or format. Given 0% schema coverage, it provides basic but incomplete parameter meaning.

    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 'Delete a payee from the MMEX database' with a specific verb and resource, distinguishing it from sibling tools like create, get, list, and update.

    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 given on when to use this tool versus alternatives such as update or list. There is no mention of prerequisites, constraints, or scenarios where deletion is appropriate.

    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. The description does not disclose side effects (e.g., database mutation), idempotency, error handling (e.g., what if payee not found?), or required permissions. It only lists parameters, leaving the agent to infer behavior from the 'update' verb. 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.

    Conciseness4/5

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

    The description is concise with a clear one-line purpose followed by a parameter list. It avoids fluff but repeats 'Optional if MMEX_DB_PATH/KEY env var is set' for two parameters. Structurally it is effective and easy to parse.

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

    Completeness3/5

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

    With 10 parameters (1 required) and no schema descriptions, the description provides minimal context. It lacks examples, error scenarios, or relationships between parameters. The tool has an output schema, which might help, but overall completeness is adequate but not thorough.

    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?

    Schema description coverage is 0%, so the description carries full burden. It provides brief but helpful explanations for each of the 10 parameters (id, name, category_id, etc.), adding meaning beyond the schema types. However, it lacks constraints or relationships (e.g., format of website, meaning of pattern). Still, it adds significant value.

    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 'Update an existing payee.' The verb 'update' and resource 'payee' are specific. Among siblings, this tool is distinct from create, delete, get, list, and update_partial, though the description does not clarify whether this is a full or partial update; however, the presence of update_partial suggests this may replace all fields. Overall purpose is clear.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like mmex_payees_update_partial. It does not mention prerequisites (e.g., payee must exist), contexts where this is appropriate, or contraindications. Lack of usage instructions reduces helpfulness.

    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 full burden. It only mentions the action and lists parameters, but fails to disclose behavioral traits such as side effects, error handling (what if id not found), or safety considerations.

    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 structured as a docstring with a list, but it is verbose with 13 parameter lines. The first sentence is concise, but the bulk could be trimmed without losing clarity.

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

    Completeness3/5

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

    Given the output schema exists, return values are covered. The description covers all parameters, but lacks behavioral context and usage guidelines. It does not explicitly state that only provided fields are updated, which is important for a partial update tool.

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

    Parameters3/5

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

    The description lists all 13 parameters with brief descriptions, adding value over the schema (0% coverage). However, many descriptions are tautological (e.g., 'num_shares: Number of shares') and do not provide deeper semantics like allowed formats or constraints.

    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 'Update an existing stock partially,' specifying the verb (update), resource (stock), and the partial nature. This distinguishes it from the full update sibling tool (mmex_stocks_update) and other stock tools.

    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 partial update vs full update or when not to use. The note about db_path and db_key being optional if env vars are set is useful but does not cover usage context 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?

    No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits like whether it modifies the tag in place, requires existing ID, or returns the updated object. The output schema exists but its content is not described.

    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, front-loads the action, and lists parameters efficiently. No unnecessary words, though a more structured list would improve readability.

    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?

    Covers the basic purpose and parameter explanations, but lacks behavioral context (e.g., error handling, return value, side effects). With no annotations, more detail would be beneficial for safe usage.

    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?

    Schema description coverage is 0%, so the description adds value by explaining each parameter's role (id, name, db_path, db_key). It notes optional parameters and their env var fallbacks, which is helpful beyond the schema names alone.

    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?

    Description clearly states it updates a tag's name, using a specific verb and resource. It differentiates from sibling tools like mmex_tags_create or mmex_tags_delete, but does not mention that it only updates the name, not other fields.

    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 on when to use this tool versus alternatives (e.g., mmex_tags_update_partial). No prerequisites or conditions are mentioned, such as the tag must exist.

    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 provided, and the description does not disclose behavioral traits such as destructive nature, idempotency, or what happens with null name. The description is minimal beyond parameter explanations.

    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 with a clear one-sentence purpose followed by a structured parameter list. It is well-organized and front-loaded.

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

    Completeness3/5

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

    Given the complexity (4 parameters, 1 required) and existence of output schema, the description covers the essentials but lacks usage guidelines and explanation of the 'partial' concept. It is adequate but has gaps.

    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?

    With 0% schema description coverage, the description provides meaningful explanations for each parameter, including optionality and environment variable fallbacks for db_path and db_key. This adds significant value over the bare schema.

    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 it updates a tag's name partially, with specific verb and resource. However, it does not differentiate from the sibling tool mmex_tags_update, which might be the full update.

    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 on when to use this tool versus alternatives. The description lacks context on whether this is for partial updates only and how it differs from mmex_tags_update or when to use partial vs full.

    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 does not disclose behavioral traits beyond stating the update action. It omits details about side effects, permissions required, error handling, or whether the operation is idempotent.

    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 with one sentence plus parameter list. It avoids verbosity, though the parameter list is somewhat lengthy. The structure is straightforward and easy to parse.

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

    Completeness2/5

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

    Given the tool has 7 parameters and is a mutation with no annotations, the description lacks completeness. It does not explain return values (despite an output schema), error conditions, or behavior for missing resources. The environment variable hints for db_path and db_key are helpful but insufficient.

    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?

    With 0% schema description coverage, the description's parameter list adds minimal meaning beyond the schema names. The notes for db_path and db_key provide useful context about environment variables, but other parameters (amount, category_id, notes) are described tautologically.

    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 explicitly states 'Update an existing split', which is a clear verb+resource pair. This distinguishes it from sibling tools like mmex_transactions_add_split (add) and mmex_transactions_delete_split (delete).

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, such as mmex_transactions_update or update_partial. It does not mention prerequisites, constraints, or when not to use the tool.

    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 bears full responsibility for behavioral disclosure. It only states the action and parameter options. It does not mention read-only nature, authentication, database connection requirements, or error handling (e.g., missing db_path).

    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 very brief: one line for purpose, then a list of Args. It is front-loaded with the action and avoids unnecessary detail. Every sentence contributes value.

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

    Completeness3/5

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

    Given the presence of an output schema (not shown), return value documentation is not required. However, the description lacks context about error conditions, database access requirements, and potential performance implications. It is minimally adequate.

    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 schema coverage is 0%, but the description adds meaning to both parameters: db_path is the file path (optional with env var), db_key is for encryption (optional with env var). This clarifies their purpose and alternatives, exceeding what the schema 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 states 'List all assets in the MMEX database,' specifying the action and resource. It distinguishes from sibling tools like mmex_assets_get (single asset) and mmex_assets_create. However, it does not elaborate on the returned data or scope beyond 'all assets.'

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., mmex_assets_get for filtering). There is no mention of prerequisites, compatibility, or cases where listing is not recommended.

    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 full burden. It only states that the tool deletes a category, but does not disclose behavioral traits like irreversibility, permissions required, or impact on related records (e.g., transactions).

    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 extremely concise, with a clear one-line purpose followed by an Args section. Every sentence is necessary, no fluff, and the most critical information is front-loaded.

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

    Completeness3/5

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

    While the description covers the action and parameters, it omits what the tool returns (though an output schema exists) and does not address error conditions or edge cases. Given the presence of an output schema, this is acceptable but not fully complete.

    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?

    Schema coverage is 0%, but the description adds significant meaning to all three parameters: id is the category ID to delete, db_path is the database file path with an environment variable fallback, db_key is for encryption. This compensates for the missing schema descriptions, though it could specify constraints on id existence.

    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 that the tool deletes a category from the MMEX database, using a specific verb and resource. It distinguishes itself from sibling tools like mmex_categories_get or mmex_categories_list. However, it lacks details on the nature of deletion (e.g., permanent, cascading).

    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 explicit guidance on when to use this tool vs. alternatives, such as whether the category must not have associated transactions or subcategories. No prerequisites or conditions 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, and the description lacks behavioral details such as what happens if the ID is not found, whether it returns the category object or just confirmation, or any side effects. The description is minimal.

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

    Conciseness5/5

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

    The description is extremely concise: two sentences for the main action and a bullet-like list of parameters. Every sentence is necessary and front-loaded with the core purpose.

    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?

    While an output schema exists (not shown), the description could mention error handling or typical expected output. For a simple getter, it is adequate but could be improved with more context.

    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?

    Schema description coverage is 0%, but the description explains each parameter: id is 'The category ID', db_path and db_key include optionality and environment variable fallbacks. This adds significant value beyond the schema titles.

    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 'Get a category by its ID' which is a specific verb-resource pair. However, it does not explicitly differentiate from sibling tools like mmex_categories_list or mmex_categories_create, though the name provides some 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/5

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

    No guidance on when to use this tool versus alternatives (e.g., mmex_categories_list for listing all categories). The description only states what it does, not the context or when not to use it.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavior. It only states 'Update an existing payee partially' with a parameter list, omitting important traits like database modification, idempotency, error handling, or required permissions.

    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 with a single sentence followed by a clear parameter list. It front-loads the action. Some parameter descriptions could be more succinct, but overall efficient and well-structured.

    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?

    With 10 parameters and no annotations, the description covers the mechanics but lacks higher-level context. It does not explain how partial update differs from full update, prerequisites, or typical use cases. The output schema exists but its presence is not leveraged.

    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 0%, so the description must compensate. It provides brief descriptions for each parameter (e.g., 'name: The payee name'), but many are near-tautological and lack constraints or detailed semantics. Adds some value but not fully compensates for the lack of schema descriptions.

    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 'Update an existing payee partially,' specifying a verb and resource. The 'partially' distinguishes it from a full update tool like mmex_payees_update, and the parameter list supports the partial update functionality.

    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 on when to use this tool versus the sibling mmex_payees_update or other payee tools. The description says 'partially' but provides no explicit criteria, alternatives, or exclusions.

    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 does not disclose behavioral traits such as read-only nature, permission requirements, or any side effects. It only states the action without safety context.

    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 relatively concise with a clear first sentence, but the docstring-style parameter list is verbose and could be shortened to focus on essential usage details.

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

    Completeness3/5

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

    Given the presence of an output schema, completeness is adequate but missing context about expected outputs (e.g., list of tag objects) and assumptions (e.g., reference must exist).

    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 basic meaning to each parameter (e.g., 'ref_type: Reference type'), but with 0% schema coverage, it only provides minimal semantics without examples, constraints, or format details.

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

    Purpose5/5

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

    The description clearly states the verb 'Get' and resource 'tags linked to a reference (e.g., a transaction)', distinguishing it from sibling tools like 'mmex_tags_get' (single tag) and 'mmex_tags_list' (all tags).

    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 on when to use this tool versus alternatives like mmex_tags_list for all tags or mmex_tags_link for linking. The description lacks context on prerequisites or when not to use.

    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. It only states the delete action without disclosing behavioral traits like irreversibility, cascading effects on transaction totals, required permissions, or error conditions.

    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?

    Extremely concise: a single sentence followed by a clear parameter list. Every sentence is meaningful, with no filler. The main action is front-loaded.

    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 covers the core operation and parameters, but given the presence of an output schema (which could explain the return value), it lacks context on how deletion affects the parent transaction or what the response contains. Adequate for a simple tool but could be more thorough.

    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?

    Despite 0% schema description coverage, the description provides meaningful explanations for each parameter: split_id is 'Split ID to delete', db_path and db_key include environment variable fallback info. This adds value beyond the schema types.

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

    Purpose4/5

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

    The description clearly states the action: 'Delete a split from a transaction.' It is specific and distinguishes from sibling tools like mmex_transactions_delete (whole transaction) and mmex_transactions_update_split (modify split), though it could explicitly mention it does not affect the transaction itself.

    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 on when to use this tool versus alternatives (e.g., mmex_transactions_update_split or mmex_transactions_delete). There is no mention of prerequisites, context, or when not to use it.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden disclosure. It does not state that the operation is read-only, whether splits are returned in any order, what happens when a transaction has no splits, or any error conditions. This is insufficient for an unannotated tool.

    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 with a clear opening line. The Args section is repetitive but structured. It is not overly verbose, though it could be shortened by omitting the explicit parameter list that mostly mirrors the schema.

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

    Completeness3/5

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

    Given the existence of an output schema (not shown), the description does not need to explain return values. However, it lacks details on how splits are ordered, potential errors, or prerequisites beyond the required transaction_id. This is adequate but not comprehensive.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It adds marginal value: for db_path and db_key, it mentions environment variable fallbacks (MMEX_DB_PATH, MMEX_DB_KEY). However, for transaction_id, it merely restates 'The transaction ID.' which adds no new insight beyond the schema.

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

    Purpose5/5

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

    The description clearly states 'Get all splits for a transaction.' This is a specific verb+resource combination ('get splits') that is distinct from sibling tools like add_split, delete_split, update_split, which involve modification rather than retrieval.

    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 (e.g., add_split, delete_split). There is no mention of prerequisites or scenarios where splits retrieval is appropriate, leaving the agent to infer usage from 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?

    No annotations are provided, so the description must fully disclose behavioral traits. While it correctly implies a read-only operation by saying 'Get', it fails to mention potential errors, authentication requirements, or the fact that it queries a database file. The env var fallback is noted, but overall transparency is minimal.

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

    Conciseness5/5

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

    The description is extremely concise: one sentence for purpose followed by a bullet-like Args list. Every sentence adds value. No extraneous information. The structure is clear and easy to parse.

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

    Completeness3/5

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

    The tool has an output schema (indicated by context), so the description does not need to detail return values. However, it does not mention that the result is a numeric balance or any edge cases (e.g., account not found, zero balance). For a simple tool, this is adequate but leaves some ambiguity.

    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 0%, so the description must compensate. It does so by listing each parameter with a brief explanation: account_id is 'The account ID', db_path and db_key have optionality and env var fallbacks. This adds meaning beyond the bare schema titles, but could be more detailed (e.g., data type constraints, valid ranges).

    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: 'Get the balance of an account.' It uses a specific verb ('Get') and resource ('balance of an account'), distinguishing it from sibling tools like mmex_accounts_get (which retrieves full account details) and mmex_accounts_list (which lists accounts).

    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 does not provide any guidance on when to use this tool versus alternatives. It lacks statements about prerequisites, context, or when not to use it. The agent receives no assistance in deciding between this and other account-related 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 full burden for behavioral disclosure. It does not state whether the operation is idempotent, destructive, or what happens to unspecified fields (e.g., merge vs replace). The term 'partially' implies only given fields are updated, but this is not explicit.

    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 well-structured as a Python docstring with an Args section. It is concise, covering all parameters without verbose repetition. Minor redundancy with 'The' prefixes but overall efficient.

    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 of siblings and lack of annotations, the description is incomplete. It does not differentiate how partial update behaves compared to full update, nor does it provide usage context (e.g., when to use partial vs full). The existence of an output schema mitigates the need to describe returns, but other gaps remain.

    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 description adds meaning beyond the input schema by providing brief explanations for each parameter (e.g., 'The category ID.', 'Parent category ID (null for root).', and context for db_path/db_key with environment variable fallback). This compensates for the 0% schema description coverage.

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

    Purpose5/5

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

    The description clearly states the verb 'Update' and resource 'category', with 'partially' distinguishing it from the full update sibling. The purpose is immediately understandable.

    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 given on when to use this tool vs alternatives like 'mmex_categories_update' or other category tools. The description does not mention prerequisites, when not to use it, or provide context for selecting among siblings.

    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 full responsibility for behavioral disclosure. It only states that the tool 'gets' a tag, implying a read operation, but does not disclose whether the operation is safe, what happens if the ID does not exist, or any authentication requirements. The description lacks behavioral context beyond the bare minimum.

    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 extremely concise, consisting of a single sentence followed by parameter documentation. Every element is necessary and there is no redundancy. The structure is easy to parse with the Args block clearly delineating parameters.

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

    Completeness3/5

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

    Given that there is an output schema, the description does not need to detail return values. However, it lacks completeness in terms of usage context and error handling. For a simple get-by-ID tool, it covers the basics but misses the opportunity to explain when to use it versus other tag tools, or what typical errors may occur.

    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 0%, so the description must add meaning. It lists the three parameters (id, db_path, db_key) and explains that db_path and db_key are optional and can fall back to environment variables. This provides some value beyond the schema, but it does not elaborate on the format or constraints of the id parameter, nor does it specify any validation rules.

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

    Purpose5/5

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

    The description clearly states the action ('Get') and the resource ('a tag by its ID'). It distinguishes this tool from siblings like mmex_tags_list (list all tags) and mmex_tags_create (create tags), making it unambiguous that this tool retrieves a single tag by its unique identifier.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool instead of alternatives. For example, it does not suggest using this tool when you have a specific tag ID versus using mmex_tags_list for browsing. The description is purely functional without contextual recommendations.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It does not disclose side effects (e.g., impact on account balances), authorization requirements, or constraints beyond parameter types. This is insufficient for safe invocation.

    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 bulleted list that is readable but verbose (13 parameters). While every line adds information, the structure could be tighter by grouping related parameters or omitting trivial notes. The main purpose is front-loaded, which helps.

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

    Completeness3/5

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

    Given 13 parameters (4 required) and an output schema, the description covers all parameters but lacks details on value formats (e.g., amount as decimal, date as YYYY-MM-DD) and business rules (e.g., transfer requires both accounts). It does not explain response behavior or error conditions.

    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?

    With 0% schema description coverage, the description is the sole source of parameter semantics. It adds valid values for trans_code and status, explains transfer-specific parameters (to_account_id, to_amount), and distinguishes optional fields. However, it lacks details on amount format, date format, and validation rules.

    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 starts with 'Create a new transaction in the MMEX database', which is a clear verb+resource combination. The tool's purpose is distinct from its siblings (e.g., update, delete, list), so an agent can easily differentiate it.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like mmex_transactions_update or mmex_scheduled_create. It does not mention prerequisites, context, or exclusions, leaving the agent to infer usage from the name 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?

    No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, behavior on missing ID, or potential side effects. It only describes the input parameters.

    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 adequately sized but includes a verbose Args section that could be streamlined. It front-loads the purpose but the parameter details could be more concise.

    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?

    With an output schema present, the description does not need to explain return values. However, it lacks information on error handling or edge cases, such as what happens if the transaction ID does not exist.

    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 0% description coverage, so the description adds value by explaining db_path and db_key optionality and environment variable fallback. However, the id parameter is only described as 'The transaction ID', adding minimal meaning beyond the schema.

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

    Purpose5/5

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

    The description clearly states it gets a transaction by its ID, which is a specific verb and resource. It distinguishes from sibling tools like mmex_transactions_list and mmex_transactions_create.

    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 when you have a transaction ID, but does not explicitly state when to use this tool versus alternatives, nor does it provide any prerequisites or 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.

  • Behavior2/5

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

    The description provides no behavioral traits beyond the operation itself. No annotations exist to compensate. It does not state that the operation is read-only, whether errors occur for invalid transaction IDs, or the expected response shape. The only behavioral hint is the optional db_path/db_key fallback to env vars, which is useful but 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/5

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

    The description is extremely concise: a single-line purpose followed by a clear Args block. Every sentence is necessary, no redundancy. Front-loaded with the core action.

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

    Completeness3/5

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

    Given the tool's simplicity and presence of an output schema, the description is minimally complete. It covers the operation and parameter semantics adequately. However, it omits contextual cues like typical use cases or relationship to sibling tools (e.g., 'Use to retrieve already-linked tags') and error conditions, which would enhance completeness for an agent.

    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 0%, so the description must compensate. It adds clarification for db_path and db_key (optional with env var fallback) and notes transaction_id as 'The transaction ID.' While this adds some value, it does not provide constraints, formats, or examples, and the transaction_id description is minimal. Baseline score adjusted upward due to low schema coverage but still lacking depth.

    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 'Get all tags for a transaction.' This is a specific verb-resource pair that uniquely identifies the tool's function among siblings like mmex_transactions_link_tag, mmex_tags_list, etc. No ambiguity.

    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 on when to use this tool versus alternatives (e.g., mmex_tags_for_reference, mmex_tags_list, mmex_transactions_link_tag). The description does not mention prerequisites or exclusions, leaving the agent to infer context from 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.

  • Behavior2/5

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

    Without annotations, the description should clearly state behavioral traits. It only states 'Delete' but does not disclose whether the deletion is permanent, if there are prerequisites (e.g., account must have zero balance), or what happens if the account is referenced by transactions. Lacks important behavioral context.

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

    Conciseness4/5

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

    The description is concise, starting with the main action, then listing arguments. No unnecessary words. However, it could be more structured with bullet points for better readability.

    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?

    With an output schema available, the description need not explain return values. However, it omits behavioral details like permanence and prerequisites. The argument descriptions are adequate but not exhaustive.

    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 description explains each parameter beyond the schema: id as account ID, db_path as path to .mmb file with env var fallback, db_key as encryption key with env var fallback. Since schema description coverage is 0%, this adds necessary context. However, it doesn't specify constraints like the format of db_path or db_key.

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

    Purpose5/5

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

    The description clearly states the action ('Delete') and the resource ('account from the MMEX database'). It distinguishes from sibling tools by the resource type. No ambiguity.

    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 does not provide any guidance on when to use this tool versus alternatives like mmex_accounts_update or mmex_accounts_get. It lacks usage context, such as recommendations to ensure the account has no dependencies before deleting.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states the creation action but does not disclose side effects, validation rules, default values, error behavior, or idempotency. The mention of optional db_path and db_key is helpful, but overall behavioral context is sparse.

    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 bullet-like docstring listing all parameters. While it front-loads the action sentence, it is somewhat verbose (13 lines) and could be more concise by grouping related parameters or omitting obvious ones. Adequate 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?

    With 12 parameters, 3 required, and no annotations, the description should cover more contextual details like return value, error handling, and validation rules. The existence of an output schema is noted but its contents are unknown. The description does not address prerequisites or side effects, leaving gaps for a complex create operation.

    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?

    Schema description coverage is 0%, yet the description explains each parameter's meaning (e.g., 'value_change_mode: Value change mode: Percentage or Linear') and provides examples (e.g., 'asset_type: Asset type (e.g., Property, Automobile)'). This adds significant value beyond the schema titles. However, some parameters lack constraints or enumeration details despite default values.

    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 starts with 'Create a new asset in the MMEX database,' clearly stating the action and resource. It distinguishes from sibling tools like mmex_assets_list, mmex_assets_update, etc., which have different verbs.

    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 vs alternatives. The description only lists parameters, leaving the agent to infer that creation is appropriate when a new asset should be added. No context on limitations or prerequisites.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It indicates a read operation ('Get') but fails to mention side effects (none expected), error handling (e.g., if ID not found), or authentication requirements (other than env var hints).

    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, with a single sentence and a parameter list. It is front-loaded with the action. No wasted words, though structure could be improved with bullet points for readability.

    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 adequately covers parameter semantics but lacks usage guidance and behavioral details. Since output schema exists, return values are not needed, but missing context like error behavior or authentication makes it somewhat incomplete for a retrieval tool.

    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?

    All three parameters are described with their purpose and optionality (env var fallback for db_path and db_key). Schema coverage is 0%, so the description compensates well, though it doesn't specify allowed values or format for id (integer implied).

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

    Purpose5/5

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

    The description clearly states the action 'Get an asset by its ID', specifying the verb and resource. It distinguishes from sibling tools like mmex_assets_list (which retrieves all assets) and mmex_assets_create (which creates).

    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 does not provide guidance on when to use this tool versus alternatives (e.g., mmex_assets_list for multiple assets). It only explains parameter optionality, missing explicit context for selection.

    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 disclose behavioral traits. It only lists parameters and does not describe side effects (e.g., database modification), idempotency, or required permissions. The mention of optional db_path and db_key is helpful but insufficient for a create operation.

    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 front-loaded with the purpose and uses a clear parameter list format. It is somewhat lengthy but each line adds value. Could be slightly more concise, but overall well-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?

    With 16 parameters and no explanation of return values (despite an output schema existing), the description is incomplete. It does not mention what the tool returns upon success or failure, leaving the agent uncertain about the outcome.

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

    Parameters5/5

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

    The description adds significant meaning beyond the schema by explaining each parameter, such as 'repeats: Repeat frequency (0=None, 1=Weekly, 2=Bi-Weekly, 3=Monthly, etc.)'. This is especially valuable given the high parameter count (16) and the schema having only titles.

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

    Purpose5/5

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

    The description clearly states 'Create a new scheduled transaction in the MMEX database', providing a specific verb and resource. It distinguishes this tool from sibling tools like mmex_scheduled_update and mmex_transactions_create.

    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 does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or context such as requiring an existing account or payee. There is no mention of when not to use it.

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

  • Behavior2/5

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

    The description merely states the action (delete) without disclosing behavioral traits beyond that. It does not mention side effects (e.g., cascading deletions), permission requirements, whether the deletion is reversible, or error handling (e.g., behavior if the ID does not exist). With no annotations provided, the description carries full burden and falls short.

    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 and front-loaded with the tool's purpose, followed by parameter details. It is appropriately sized and contains no superfluous information, though the docstring format is slightly verbose for a tool description.

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

    Completeness3/5

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

    Given the tool is a simple delete with required id and optional authentication parameters, the description covers the basics. However, it lacks context about what happens on success vs failure, whether the output schema provides status, and if there are any constraints (e.g., cannot delete if linked to other records). An output schema exists but is not referenced.

    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 parameter descriptions add meaning beyond schema titles: 'id' is clarified as 'the scheduled transaction ID to delete', 'db_path' as path to .mmb file (optional if env var set), and 'db_key' similarly. This compensates for the 0% schema description coverage and provides useful context for each parameter.

    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 'Delete a scheduled transaction from the MMEX database.' This is a specific verb (delete) and resource (scheduled transaction), and it distinguishes this tool from sibling CRUD tools like create, get, list, update, and update_partial.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., verifying the transaction exists), conditions under which deletion is safe, or when to use other scheduled transaction tools instead.

    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 provided; description only implies read-only ('list all') but lacks details on behavior like active schedules only, ordering, or mutation side effects.

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

    Conciseness4/5

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

    Two sentences plus Args block are efficient, though the Args formatting could be more concise. No unnecessary words.

    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?

    Output schema exists, so return values are covered. But lacks context on what a scheduled transaction includes or if filtering is possible, given many sibling tools.

    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?

    With 0% schema coverage, the description adds value by explaining db_path and db_key as optional with env var fallbacks, beyond the schema's types and defaults.

    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 'List all scheduled transactions in the MMEX database' with a specific verb and resource, distinguishing it from siblings like mmex_scheduled_get (single) and CRUD tools.

    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 on when to use this tool vs alternatives like mmex_scheduled_get for filtering, nor prerequisites like database access. Only parameter optionality 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 provided; the description only lists parameters. It fails to disclose side effects (e.g., database modifications), authentication requirements, or any return value details. The verb 'create' implies mutation, but no further behavioral context.

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

    Conciseness4/5

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

    The description is a single declarative sentence followed by a parameter list. It is reasonably concise and the list is easy to scan. Minor improvement could be grouping optional parameters or highlighting required ones.

    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?

    With 12 parameters and an output schema present, the description does not explain the output (e.g., created stock object ID). It also lacks information about database connection handling beyond optional parameters. Overall, it covers the input but not the full context.

    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?

    Schema description coverage is 0%, so the description must compensate. It provides brief but meaningful descriptions for each parameter (e.g., 'number of shares as decimal string', 'Stock symbol (e.g., AAPL)') which adds value beyond the schema titles. However, some descriptions are terse (e.g., 'Notes about the stock').

    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 starts with 'Create a new stock in the MMEX database', clearly specifying the verb (create) and resource (stock). This distinguishes it from sibling tools like mmex_stocks_delete, get, list, update, update_partial.

    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 vs alternatives. The description mentions optional parameters db_path and db_key but does not provide context for when to use this tool over others or prerequisites needed.

    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 not mention side effects, error conditions (e.g., duplicate names), required permissions, or what happens on success. The minimal description leaves 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.

    Conciseness4/5

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

    The description is concise, with the purpose front-loaded in the first sentence and parameter details listed in a clean docstring format. It avoids unnecessary text, though the Args section could be trimmed if schema descriptions were present.

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

    Completeness3/5

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

    Given the tool's simplicity and presence of an output schema, the description covers core aspects (purpose, parameter roles) but omits expected behavior on duplicate names, error responses, and return value description. It is adequate but not fully complete.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It adds useful context for db_path and db_key by noting optionality and environment variable fallback, but the name parameter receives only a basic label. Overall, it adds moderate value beyond the raw schema.

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

    Purpose5/5

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

    The first sentence clearly states the action ('Create'), the resource ('a new tag'), and the context ('MMEX database'), leaving no ambiguity about the tool's function. It is distinct from sibling tools like mmex_tags_update or mmex_tags_list.

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

    Usage Guidelines3/5

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

    The description implies the tool is used when a new tag is needed, but it does not explicitly discuss when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. The guidance is 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.

  • Behavior2/5

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

    No annotations provided, so the description must disclose behavior. It states 'Link' (a write operation) but does not explain side effects, idempotency, error cases, or success response. The parameter descriptions provide some context but the main description is too vague.

    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 main description is a single sentence. The parameter documentation is structured but somewhat verbose. Overall efficient, but could be slightly more concise.

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

    Completeness3/5

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

    The tool is simple, but the description does not mention what the output schema contains or whether links are checked for duplicates. With a known output schema, the lack of return value details is a minor gap. Sibling tools like mmex_tags_unlink complement but not mentioned.

    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?

    Schema has 0% description coverage, but the docstring explains each parameter: ref_type ('e.g., 'Transaction'), ref_id, tag_id, db_path, db_key. It clarifies that db_path and db_key are optional and can be set via env vars, adding significant value beyond the raw schema.

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

    Purpose5/5

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

    The description clearly states the action ('Link a tag') and the target ('to a reference (e.g., a transaction)'). This distinguishes it from sibling tools like mmex_tags_create, mmex_tags_delete, and mmex_tags_unlink.

    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 over alternatives (e.g., mmex_transactions_link_tag is a sibling). No mention of prerequisites (e.g., tag and reference must exist) or when not to use it.

    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 full responsibility. It states 'list all tags', implying a read-only operation, but does not disclose any further behavioral traits such as performance impact, result size, or error conditions. The description is minimally transparent for a simple list action.

    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 short (one sentence plus a code block for parameters) and front-loaded with the tool's purpose. It avoids unnecessary text, though the Args section could be more compactly integrated. Overall, it is efficient and easy to scan.

    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 listing tool with an existing output schema, the description adequately covers the input parameters. It does not describe return values, which is acceptable as the output schema handles that. However, it omits potential pitfalls (e.g., empty database, encryption key errors). Given the presence of an output schema, it is sufficiently complete for typical use.

    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 input schema has 0% description coverage, leaving the parameters' meaning entirely to the description. The description clarifies db_path as the path to the .mmb database file and db_key as the encryption key, both optional with fallback to environment variables. This adds significant semantic value beyond the schema's bare type declarations.

    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 'List all tags in the MMEX database', which clearly defines the action and resource. Although the sibling mmex_tags_get implies a single-tag retrieval, the description does not explicitly differentiate this list tool from its sibling. Hence it's clear but lacks 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 Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like mmex_tags_get for a specific tag. The Args section describes optional parameters but does not offer context on typical usage scenarios or prerequisites.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It does not disclose important behavioral traits such as error handling (e.g., if ID not found), read-only nature (implied but not explicit), or dependency on database file existence. The description is minimal, missing key context for safe invocation.

    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 highly concise: a one-line summary followed by clear parameter details. It is front-loaded with the core action, and every sentence adds value without redundancy.

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

    Completeness3/5

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

    For a simple get tool with an output schema (not shown), the description is adequate but lacks completeness: no mention of error scenarios, required permissions, or performance characteristics. It covers the essentials but could provide more context for robust usage.

    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?

    With 0% schema description coverage, the description adds significant meaning by explaining each parameter: 'id' as account ID, 'db_path' with env var fallback, 'db_key' for encryption. This clarifies optional parameters and environmental defaults, which the schema lacks.

    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 retrieves an account by ID, using specific verb 'Get' and resource 'account'. It distinguishes from sibling tools like mmex_accounts_list which lists all accounts, making the purpose unambiguous.

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

    Usage Guidelines2/5

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

    The description does not provide any guidance on when to use this tool versus alternatives (e.g., mmex_accounts_list for listing). It lacks context on prerequisites or scenarios where this tool is preferred, leaving the agent to infer from the name 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, the description carries full burden but only states a read operation. It does not disclose permissions, error handling, or pagination behavior, leaving critical behavioral traits undocumented.

    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 extremely concise: one sentence for purpose and two parameter lines. No wasted words, and the key information is front-loaded.

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

    Completeness3/5

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

    Given the presence of an output schema (not detailed), the description need not explain return values. However, it omits details like ordering, filtering, or error conditions. For a simple list tool, it is minimally adequate but could be improved.

    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?

    Schema coverage is 0% with only titles. The description adds meaning by explaining db_path as path to .mmb file (optional if env var set) and db_key as encryption key (optional if env var set), significantly 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/5

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

    The description clearly states 'List all accounts in the MMEX database', specifying the verb 'list' and the resource 'accounts'. This distinguishes it from sibling tools like create, delete, or get.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives (e.g., mmex_accounts_get for a single account). It only mentions optional parameters from env vars but no context for usage decisions.

    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 fully disclose behavior. It mentions 'delete' implying destruction, but lacks details on irreversibility, cascading effects, authentication requirements, or success/error conditions.

    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 very concise: a single sentence plus a parameter list. It is front-loaded with the action and every sentence is informative without unnecessary elaboration.

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

    Completeness3/5

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

    Given the complexity of a delete operation and lack of annotations, the description adequately covers input parameters but omits information about return value, errors, and side effects. The existence of an output schema partially mitigates the return value gap, but behavioral context is missing.

    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 description compensates for 0% schema coverage by explaining the meaning of each parameter (id, db_path, db_key) and noting optionality and environment variable fallbacks. This adds significant value beyond the bare schema.

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

    Purpose5/5

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

    The description clearly states the verb 'delete' and the resource 'stock', specifying the action and target. It distinguishes from sibling tools like create, get, update, and list.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context for appropriate usage. It merely states the action without any conditional or comparative information.

    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 present, so the description must cover behavioral traits. It mentions listing stocks but does not disclose that it is read-only, whether permissions are required, or the return format. The db_path/key hints are setup details, not behavioral transparency.

    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 very concise: one sentence for the main purpose and a parameter list. It is front-loaded with the core action and contains no extraneous text.

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

    Completeness3/5

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

    Given the output schema exists, the description is adequate for a list operation, but it lacks context about what stocks are (e.g., names, symbols) or any prerequisites. It does not mention that mmex_stocks_get exists for single stocks, which would improve completeness.

    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?

    Schema coverage is 0%; the description adds meaning for both parameters, explaining that db_path is a file path and db_key is for encryption, and that both are optional if corresponding env vars are set. This compensates for the bare schema, though it could be clearer about precedence.

    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 states 'List all stocks in the MMEX database' with a specific verb and resource, clearly differentiating it from sibling tools like mmex_stocks_get (single stock) or mmex_stocks_create.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., mmex_stocks_get for a specific stock). The only usage hints are about optional env vars for db_path and db_key, which do not address tool selection.

    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 bears full responsibility for behavioral disclosure. It mentions 'Update an existing account partially' but lacks details on side effects, restrictions (e.g., updating initial_balance after transactions), or any destructive behavior. The description is insufficient for a mutation 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.

    Conciseness4/5

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

    The description is structured as a docstring with an Args section, making it easy to scan. It is concise with no redundant information, though it could be slightly more compact. It earns its length given the number of parameters.

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

    Completeness3/5

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

    Given the complexity of 11 parameters and the existence of an output schema (which relieves the description from explaining return values), the description adequately names each parameter but does not explain the partial update behavior (e.g., that only provided fields are updated). It is minimally viable but lacks some operational context.

    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 schema has 0% description coverage, but the description lists all 11 parameters with brief explanations (e.g., 'id: The account ID'). It adds value by clarifying the optional nature of db_path and db_key via environment variables. However, some descriptions are trivial (e.g., 'name: The account name'), yet the overall coverage is good.

    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 'Update an existing account partially,' specifying the verb (update), resource (account), and the nature of the operation (partial update). This distinguishes it from the sibling tool mmex_accounts_update, which presumably performs a full update.

    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 the word 'partially' but does not explicitly state when to use this tool over mmex_accounts_update or other siblings like mmex_accounts_create. No when-not or alternative scenarios are provided.

    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?

    Without annotations, the description carries the full burden for behavioral disclosure. It does not state that the operation is read-only, or describe any side effects, authentication requirements, or output characteristics beyond listing currencies. The description is minimal.

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

    Conciseness5/5

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

    The description is concise (fewer than 5 lines) and well-structured: first the action, then the parameters in a bulleted list. Every sentence contributes necessary information.

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

    Completeness4/5

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

    Given the existence of an output schema, the description does not need to explain return values. It sufficiently covers the purpose and parameters for a list tool with only two optional inputs. However, missing any context about database prerequisites or the nature of the list (e.g., sorting, completeness) prevents a perfect score.

    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 schema coverage is 0%, so the description compensates by explaining each parameter (db_path, db_key) and their optionality with environment variable fallback. This adds meaning beyond the schema's type and default.

    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 explicitly states 'List all currencies in the MMEX database,' providing a clear verb (list) and resource (currencies). This distinguishes it from sibling tools like mmex_currencies_by_symbol or mmex_currencies_get, which have more specific purposes.

    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 given on when to use this tool versus alternatives. It does not mention that listing is the starting point for currency operations or provide any context for choosing between list and other currency 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?

    No annotations are provided, placing full burden on the description. The description only states it lists all payees, with no disclosure of behavioral traits such as read-only nature, performance implications, or required permissions. It does not describe what happens if the database is empty or if the query fails.

    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 extremely concise: a single sentence for the purpose followed by parameter explanations in docstring format. No redundant information. Every word earns its place.

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

    Completeness4/5

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

    Given that there is an output schema (not shown) and the tool is a simple list, the description adequately covers the core functionality and parameters. It does not detail output structure, but the presence of an output schema compensates. It is sufficient for a straightforward read operation.

    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?

    Schema description coverage is 0%, so the description must compensate. It explains both parameters meaningfully: db_path is the path to the .mmb file (optional if env var set), and db_key is the encryption key (optional if env var set). This adds significant context beyond the schema's type and default.

    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 'List all payees in the MMEX database.' It uses a specific verb ('list') and resource ('payees'), and the purpose is unambiguous. It differentiates from sibling tools like mmex_payees_get (single payee) and mmex_payees_create (creation).

    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 does not provide any explicit guidance on when to use this tool vs alternatives. It only states what it does, leaving the agent to infer usage context. No exclusions or prerequisites 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 disclose behavioral traits. It only states the basic action, omitting whether the operation is read-only, what happens if the ID is not found, 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.

    Conciseness5/5

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

    The description is extremely concise at 6 lines, front-loading the core action and listing arguments efficiently without any filler or redundancy.

    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?

    While the description covers the basic purpose and parameters, it lacks details about error states, prerequisites (e.g., stock must exist), and the return structure. However, since an output schema exists, the agent can infer return values. The missing usage and behavioral context lower the score.

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

    Parameters5/5

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

    The input schema has 0% description coverage, but the tool description provides clear explanations for all three parameters: id (the stock ID), db_path (database path with fallback to env var), and db_key (encryption key). This compensates for the lack of schema descriptions.

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

    Purpose5/5

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

    The description clearly states the action ('Get'), resource ('a stock'), and scope ('by its ID'). It distinguishes from siblings like mmex_stocks_list (which lists all stocks) because it targets a specific stock 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/5

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

    No guidance is provided on when to use this tool versus alternatives such as mmex_stocks_list. An agent would benefit from knowing that this tool retrieves a single stock by ID, while list retrieves all stocks.

    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 fully disclose behavioral traits. However, it only says 'Delete a transaction' without mentioning if the deletion is permanent, reversible, or cascades to linked data (e.g., splits or tags). This is insufficient for a destructive 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/5

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

    The description is concise and front-loaded with the main action. It uses a structured Args block that is clear and easy to scan. Every sentence provides necessary information without redundancy.

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

    Completeness3/5

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

    Given the tool is a simple delete operation with only one required parameter, the description covers the basics. However, it lacks usage guidance and behavioral transparency, which are important for a destructive tool. An output schema exists but its content is not considered here.

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

    Parameters5/5

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

    Schema description coverage is 0%, so the description must add meaning. It clearly explains each parameter: id is the transaction ID to delete, db_path is optional with env var fallback, db_key is optional encryption key. This adds valuable context beyond the schema's type and default values.

    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 'Delete a transaction from the MMEX database,' providing a specific verb and resource. This distinguishes it from sibling tools like mmex_transactions_create or mmex_transactions_update.

    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 offers no guidance on when to use this tool versus alternatives, such as when to use update instead of delete, or any prerequisites or conditions. There are no exclusions or when-not-to-use hints.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states 'Get a currency' which implies read-only, but does not explicitly confirm no side effects, error behavior (e.g., if ID not found), or permission requirements. This is insufficient for a tool with no annotation safety guarantees.

    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 highly concise: one sentence for purpose followed by a clear 'Args:' block with parameter details. No filler—every sentence adds value. Front-loaded with the core action.

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

    Completeness4/5

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

    Given that an output schema exists and the tool has few parameters (3, 1 required), the description adequately covers purpose and parameter semantics. However, it lacks mention of error behavior or read-only nature, which would improve completeness for a tool with no annotations.

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

    Parameters5/5

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

    The description adds significant value beyond the input schema. It explains each parameter's purpose: 'id: The currency ID', 'db_path: Path to the .mmb database file. Optional if MMEX_DB_PATH env var is set', 'db_key: Encryption key for SQLCipher databases. Optional if MMEX_DB_KEY env var is set.' This compensates for the 0% schema coverage.

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

    Purpose5/5

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

    The description clearly states 'Get a currency by its ID.' This is a specific verb ('Get') and resource ('currency') with a clear method. It distinguishes from sibling tools like mmex_currencies_by_symbol and mmex_currencies_list.

    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 vs alternatives. It does not mention when not to use it or suggest other tools for different scenarios. The only implied usage is 'if you have the currency ID,' but no explicit exclusions or 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?

    No annotations are provided, so the description must disclose behavioral traits. It only says 'delete a tag' without describing effects such as whether linked data is also removed, permission requirements, or reversibility. This is minimal behavioral disclosure.

    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 concise: one sentence stating purpose followed by parameter definitions in a block. No unnecessary words, front-loaded with the primary action.

    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 covers the tool's purpose and parameters adequately, and a return schema exists to handle output. However, it lacks details on the impact of deletion (e.g., does it cascade?), which is relevant for a deletion tool. Overall, minimally complete but with gaps.

    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 description adds meaning beyond the schema for all three parameters: it explains 'id' as the tag ID, and for 'db_path' and 'db_key' it describes their optionality and fallback to environment variables. Since the schema has 0% description coverage, this is valuable 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 clearly states 'Delete a tag from the MMEX database' using a specific verb ('Delete') and resource ('tag'). This distinguishes it from sibling tools like mmex_tags_create or mmex_tags_update.

    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 does not explicitly state when to use this tool or provide alternatives or exclusions. It merely states the operation, leaving the agent to infer from context that it is for deleting tags. No guidance on prerequisites or when not to use.

    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 full burden but only states the basic mutation. It does not disclose side effects, required permissions, reversibility, or error behavior (e.g., if transaction or tag does not exist).

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

    Conciseness5/5

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

    The description is a single sentence for purpose followed by a structured Args block. Every sentence adds value, no redundancy. Front-loaded with the action.

    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?

    The tool is simple, and output schema likely covers return values. Parameter documentation is thorough. However, it omits handling of invalid inputs (e.g., tag already unlinked) and does not mention that the transaction must exist. Minor gap given simplicity.

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

    Parameters5/5

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

    Schema description coverage is 0% (no descriptions in schema), but the description compensates fully by explaining each parameter's meaning, optionality, and fallback to environment variables (db_path, db_key). This adds significant value beyond the schema's type and title.

    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 opening line 'Unlink a tag from a transaction.' clearly states the action and resource. It distinguishes from sibling tools like mmex_tags_unlink (which likely unlinks from a different context) and mmex_transactions_link_tag (the inverse operation).

    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 on when to use this tool versus alternatives such as mmex_tags_unlink or mmex_transactions_link_tag. The description is purely declarative with no preconditions 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?

    No annotations are provided, so the description carries the full burden. It lists all parameters but does not disclose side effects, authentication requirements, or what happens to omitted fields (likely unchanged). The description is adequate but lacks behavioral depth.

    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 structured as a bullet-like list, front-loading the key action. It is not overly verbose, though some parameter explanations could be slightly more concise. Overall, it is efficient and easy to scan.

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

    Completeness3/5

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

    Given the complexity (14 parameters, 1 required) and the existence of an output schema, the description adequately covers all parameter meanings. However, it lacks context on error conditions, expected behavior of partial updates, and relationship to sibling transaction tools. Slightly incomplete for an agent to use confidently.

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

    Parameters5/5

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

    Schema description coverage is 0%, but the description adds significant meaning by detailing each parameter with valid values (e.g., trans_code: 'Withdrawal', 'Deposit', 'Transfer') and explanation of optional database path and key. This fully compensates for the lack of schema descriptions.

    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 states 'Update an existing transaction partially.' which clearly identifies the action (update) and resource (transaction), and the word 'partially' distinguishes this tool from the full update sibling (mmex_transactions_update).

    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 does not provide guidance on when to use this tool vs alternatives like mmex_transactions_update. There is no explanation of prerequisites, when a partial update is appropriate, or what fields can be left null. The implied usage is 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 bears full responsibility. It lacks details on side effects, such as immediate database changes, validation behavior, error states, or idempotency. The description only covers what the tool does, not how it behaves.

    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 front-loaded with a clear purpose sentence, followed by a structured parameter list. It is not overly verbose, though the 'Args:' section could be more concise. Overall, it is well-organized.

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

    Completeness4/5

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

    Given the tool's complexity (10 parameters, many optional), the description covers all parameters. It lacks examples or typical use cases, but the output schema likely explains return values. The description is fairly complete but could include more context on prerequisites (e.g., existing account types).

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

    Parameters5/5

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

    The input schema has 0% description coverage, but the tool description provides detailed explanations for all 10 parameters, including default values and allowed values (e.g., account types). This adds significant meaning beyond the schema.

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

    Purpose5/5

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

    The description clearly states the verb and resource: 'Create a new account in the MMEX database.' This distinguishes it from sibling tools like mmex_accounts_delete or update, which have different actions.

    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 use for creating accounts but does not explicitly state when to use it versus alternatives. There is no mention of when not to use, nor references to other tools for updates or deletions.

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

  • Behavior3/5

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

    The description indicates a destructive action ('Delete'), but without annotations, it omits details like irreversibility or cascading effects. The parameter details for db_path/db_key add operational context, but safety warnings are missing.

    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 with a clear purpose sentence followed by a structured list of args. It is front-loaded and waste-free, though could improve readability with bullet points.

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

    Completeness3/5

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

    For a simple deletion tool, the description covers essential connection parameters and the action. However, it lacks context on outcome (e.g., return value) and does not address edge cases or prerequisites, leaving the agent with some ambiguity.

    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 description adds meaning beyond the schema by explaining each parameter's role (e.g., 'id: The asset ID to delete') and noting optionality with environment variable fallbacks. This compensates for the schema lacking descriptions.

    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 'Delete an asset from the MMEX database.' It uses a specific verb and resource, distinguishing it from sibling delete tools (e.g., mmex_accounts_delete).

    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 provides no explicit guidance on when to use this tool versus other delete tools. Usage is implied only by the tool name and resource type.

    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 disclose behavioral traits. It fails to mention side effects of creation (e.g., whether duplicates are allowed, permissions needed, or if the operation is reversible). The description only states that it creates a category, which is insufficient for a mutation tool without annotations.

    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 with a short sentence followed by a bullet-like list of parameters. It is front-loaded and every sentence adds value. Minor verbosity due to the Args block, but still efficient.

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

    Completeness3/5

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

    Given the tool has 4 parameters and no annotations, the description covers the basic usage. However, it omits what the tool returns (e.g., the created category object or an ID). The output schema exists but is not described, leaving the agent uncertain about the output format.

    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 schema has 0% description coverage for parameters, but the description compensates by explaining each parameter's purpose: 'name' is the category name, 'parent_id' is optional for root categories, 'db_path' and 'db_key' have fallbacks to environment variables. This adds meaningful context beyond the schema.

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

    Purpose5/5

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

    The description clearly states 'Create a new category in the MMEX database.' The verb 'Create' and resource 'category' are specific and differentiate it from sibling tools like mmex_categories_list, mmex_categories_update, and mmex_categories_delete.

    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?

    While there is no explicit when-to-use or when-not-to-use guidance, the name and description make it obvious that this tool is for creating categories, contrasting with sibling tools that handle other operations. The context is clear enough for an agent to decide.

    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 does not disclose any behavioral traits such as idempotency, read-only nature, authentication requirements, or potential side effects. The description merely states the operation without additional context.

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

    Conciseness5/5

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

    The description is concise: a single-sentence purpose followed by a well-structured Args list. Every sentence is necessary and no waste.

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

    Completeness4/5

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

    Given the tool's low complexity and presence of an output schema, the description adequately covers core functionality. However, it omits potential error conditions (e.g., invalid parent_id) or prerequisites, which would be helpful for an agent.

    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?

    Schema description coverage is 0%, but the description provides meaningful explanations for all three parameters (parent_id, db_path, db_key), including environment variable fallbacks. This adds significant value beyond the bare schema.

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

    Purpose5/5

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

    The description 'Get all subcategories of a parent category' uses a specific verb ('get') and resource ('subcategories'), clearly distinguishing it from sibling tools like mmex_categories_list (top-level categories) or mmex_categories_get (single category).

    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 states what the tool does but does not provide explicit guidance on when to use it versus alternatives (e.g., mmex_categories_list for top-level categories, mmex_categories_get for a specific category). Usage is implied but not clarified.

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

  • Behavior3/5

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

    With no annotations, the description must disclose behaviors. It describes the creation action and lists parameters but does not mention error conditions (e.g., duplicate payee names), side effects, or permissions. It is adequate but could be more explicit about what happens upon success/failure.

    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, with a single summary line followed by a structured Args block. It is well-organized and easy to scan. Minor improvement could be to inline default values (e.g., active defaults to true) but overall efficient.

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

    Completeness3/5

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

    Given the tool has 9 parameters and an output schema, the description covers the creation action and parameter semantics adequately. However, it lacks context about return values (even though output schema exists, a brief mention would help), error handling, and database prerequisites. It is sufficient but not thorough.

    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?

    Schema description coverage is 0%, so the description must add meaning. The Args block provides descriptions for all 9 parameters, including conditional notes for db_path and db_key. While some descriptions restate parameter names, they add clarity (e.g., 'Default category ID,' 'Payee number/reference'). This effectively compensates for the schema gap.

    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 explicitly states 'Create a new payee in the MMEX database,' clearly identifying the action and resource. This distinguishes it from sibling tools like mmex_payees_delete, get, list, update, etc.

    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 by being a create tool, but it does not provide explicit guidance on when to use it vs alternatives, nor does it mention prerequisites or conditions (e.g., required database connection). Usage is straightforward but lacks proactive direction.

    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 provided, so the description carries the burden. It mentions optional db_path and db_key, implying authentication needs, but does not disclose side effects, read-only nature, error handling (e.g., if symbol not found), or return format beyond what output schema provides.

    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 short and front-loaded with the main purpose. The Args section is structured but slightly redundant with schema. No wasted words, though could be more concise by omitting redundant 'Args' labeling.

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

    Completeness4/5

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

    Given the output schema exists and the tool is a simple getter, the description covers parameters and purpose. Lacks details on not-found behavior or pagination, but these are unlikely needed for a single currency lookup.

    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?

    Schema description coverage is 0%, so the description adds value by explaining symbol as 'currency symbol (e.g., USD, EUR)' and clarifying db_path/db_key defaults and env var fallbacks. Could be more precise about symbol format restrictions.

    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 explicitly states 'Get a currency by its symbol', uses specific examples (USD, EUR), and distinguishes from siblings like mmex_currencies_list (list all) and mmex_currencies_get (likely 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 Guidelines3/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 vs alternatives like mmex_currencies_list or mmex_currencies_get. Usage is implied by the function name and symbol input, but no when-not-to-use 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.

  • Behavior3/5

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

    No annotations provided. Description discloses optional env vars for db_path and db_key, but lacks details on side effects, authorization, or what happens if tag is not linked. Partially covers behavioral context.

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

    Conciseness5/5

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

    Description is front-loaded with the action, uses a clear docstring format with a bullet list. Every sentence adds value, no redundancy.

    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?

    Covers all parameters and core action. Output schema exists but is not described; however, per rules that's acceptable. Lacks mention of return value, but overall sufficient for a simple unlinking tool.

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

    Parameters5/5

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

    Schema provides no parameter descriptions (0% coverage). The description explains all five parameters with examples and optionality, adding significant meaning beyond type/name.

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

    Purpose5/5

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

    The description clearly states the action ('Unlink a tag from a reference.') with specific verb and resource, and distinguishes it from sibling tools like mmex_tags_link.

    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 on when to use this tool versus alternatives (e.g., mmex_tags_link, mmex_tags_for_reference). No prerequisites or caveats mentioned.

    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 present, so the description carries full burden. It explains creation and lists parameters, but does not disclose side effects, uniqueness constraints, or error cases.

    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 appropriately sized with a clear purpose sentence followed by a parameter list. It is front-loaded and each line adds value, though the parameter list is lengthy.

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

    Completeness4/5

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

    Given the high number of parameters and presence of output schema, the description covers the purpose and all parameters. It mentions optional env vars for db_path/db_key, but lacks details on constraints or errors.

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

    Parameters5/5

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

    Schema coverage is 0%, but the description adds meaningful descriptions for all 13 parameters (e.g., 'name: Currency name (e.g., US Dollar).'), fully compensating for the missing schema descriptions.

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

    Purpose5/5

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

    The description clearly states 'Create a new currency in the MMEX database' with a specific verb and resource, distinguishing it from sibling tools like mmex_currencies_get or mmex_currencies_update.

    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?

    No explicit when-to-use or when-not-to-use guidance is provided, but the purpose is clear from the name and description. 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 carries full burden. It only states that the tool gets a scheduled transaction, but does not disclose behavioral traits such as error handling (e.g., when ID not found), authentication requirements, or whether it is read-only. The description adds minimal value beyond the action.

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

    Conciseness5/5

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

    The description is concise and front-loaded with the main purpose. It uses a clear docstring format with separate Args section. Every sentence is necessary and no fluff.

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

    Completeness4/5

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

    Given the tool's simplicity (get by ID) and the presence of an output schema, the description covers the essentials: what it does, required parameter, and optional parameters with env var fallback. It does not discuss return type or error cases, but the output schema likely covers that. Minor gap: no mention of what happens if the ID does not exist.

    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 description adds value beyond the input schema by explaining that 'db_path' and 'db_key' are optional if corresponding environment variables (MMEX_DB_PATH, MMEX_DB_KEY) are set. This is crucial context not present in the schema. The schema itself has no descriptions for parameters, so the description compensates.

    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 'Get a scheduled transaction by its ID', using a specific verb and resource. This distinguishes it from sibling tools like mmex_scheduled_list (list all) and mmex_scheduled_create (create).

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

    Usage Guidelines4/5

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

    The description implies that to retrieve a specific scheduled transaction by ID, this tool should be used. While it doesn't explicitly state when not to use it, the context is clear given the named resource and ID parameter. No explicit alternatives are mentioned.

    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?

    No annotations provided, so description handles transparency. Reveals that db_path and db_key are optional with environment variable fallbacks, indicating a read operation. However, does not explicitly state it is idempotent or non-destructive, but context suggests read-only.

    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?

    Description is concise and well-structured: purpose sentence followed by bullet-pointed parameter explanations. Every sentence adds value with no redundancy.

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

    Completeness4/5

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

    Given an output schema exists, return values need not be explained. The description covers all parameters and their optionality. It lacks mention of the payee being returned, but this is implicit in 'get'. For a simple retrieval tool, it is mostly complete.

    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?

    Schema has 0% description coverage, but description adds meaning: id is payee ID, db_path is database file path (optional via env var), db_key is encryption key (optional via env var). This is valuable beyond the plain schema but could include more details like allowed formats.

    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?

    Clearly states 'Get a payee by its ID' – specific verb and resource with a retrieval criterion. Distinguishes from sibling tools like mmex_payees_list (list all) and mmex_payees_create (write).

    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?

    Implies usage when payee ID is known, but provides no explicit guidance on when to use this versus alternatives or prerequisites. No mention of when not to use or references to sibling tools.

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

  • Behavior3/5

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

    Description discloses optional env var fallbacks, but lacks details on side effects (likely none) and return format. With no annotations, more transparency would improve.

    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?

    Two sentences with a clear list of arguments, front-loaded action, no unnecessary words.

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

    Completeness4/5

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

    Given the simple tool with output schema, the description adequately covers parameters and env vars. Could mention return type but output schema handles that.

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

    Parameters5/5

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

    Schema coverage is 0%, but the description fully explains both parameters, their defaults via env vars, and their roles, adding significant value.

    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?

    Description clearly states 'Get the database schema version', specifying the verb and resource. It is distinct from sibling CRUD tools.

    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 tool's purpose is self-explanatory and unique among siblings, but no explicit when-to-use or when-not-to-use guidance is provided.

    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

mmex_mcp MCP server

Copy to your README.md:

Score Badge

mmex_mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/PatricioRios/mmex_mcp'

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