Skip to main content
Glama
Saikumarmohan

actual-budget-mcp

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct entity or action: listing accounts, payees, transactions, categories, category groups, and budgets are clearly separated, while add/update/delete transaction, create_transfer, and set_budget each address a unique mutation. No two tools appear to overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent snake_case verb_noun pattern: list_* for retrieval, add/update/delete for transaction mutations, create_transfer for transfers, and set_budget for budget setting. The convention is uniform and predictable.

    Tool Count5/5

    With 11 tools, the server is well-scoped for interacting with Actual Budget. Each tool serves a clear purpose without redundancy, and the count is within the ideal 3-15 range for a domain-specific MCP server.

    Completeness5/5

    The tool surface covers the core lifecycle for transactions (list, add, update, delete, transfer) and budgets (list, set), plus all necessary reference listings (accounts, payees, categories, category groups). There are no obvious dead ends for typical budget management workflows.

  • Average 4.4/5 across 11 of 11 tools scored.

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

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

  • This repository includes a README.md file.

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

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

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

  • If you are the author, simply .

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

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

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

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

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

How is the quality score calculated?

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

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

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

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

Tool Scores

  • Behavior4/5

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

    No annotations are provided, so the description carries the burden. It discloses month format requirements, default behavior, and return fields, which are essential behavioral facts. However, it does not explicitly state read-only nature or any side effects, but 'list' strongly implies a safe read 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 composed of five short sentences, each serving a purpose: main function, format, default, return fields, and related tool. It is front-loaded and not overly verbose, though the format example is redundant with the schema.

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

    Completeness5/5

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

    Given the simple tool with one optional parameter and full schema coverage, the description covers all essential aspects: purpose, parameter format, default, return fields, and a related tool. It is complete for an agent to use correctly without further context.

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

    Parameters3/5

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

    Schema coverage is 100%, so the schema already documents the month parameter with the same format and default details. The description repeats this information without adding new parameter semantics, such as edge cases or validation rules.

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

    Purpose4/5

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

    The description clearly states the tool lists budget allocations from Actual Budget, using a specific verb and resource. It is distinguishable from sibling tools by naming the resource, but does not explicitly contrast with alternatives.

    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 explains the optional month parameter and default behavior ('If month is not provided, returns budgets for all months'), giving clear context. It also directs to 'Use list_categories to get category names', but does not fully discuss when to use this tool vs. others.

    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?

    The annotation readOnlyHint: false already indicates a write operation. The description adds behavioral context by stating it 'Returns the updated budget details', which tells the agent what to expect. It also clarifies the month format and hints that categories should come from list_categories. There is no contradiction with 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 three sentences and front-loaded with the primary purpose. It is concise, but the second and third sentences largely repeat information already in the schema (month format, list_categories). Despite this redundancy, it remains appropriately sized and scannable.

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

    Completeness4/5

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

    For a simple 3-parameter write operation, the description is complete: it states the action, specifies the month format, points to list_categories for valid categories, and mentions the return value. The presence of an output schema reduces the need to detail return fields. It lacks error handling or side-effect notes, but these are not critical for this straightforward mutation.

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

    Parameters3/5

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

    The input schema has 100% description coverage for all three parameters. The description repeats the month format and list_categories hint verbatim from the schema, adding no new meaning beyond what the schema already provides. Therefore, baseline 3 is appropriate; the description does not enhance parameter understanding.

    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: 'Set the budget amount for a category in a given month in Actual Budget.' The verb 'Set' and resource 'budget' are explicit, and this tool is distinct from sibling list/transaction tools. It also specifies the target (category, month, amount) which fully clarifies the scope.

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

    Usage Guidelines4/5

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

    The description provides clear context (when to use: for a given month and category) and a prerequisite (Use list_categories to get category names). It does not explicitly mention alternatives or when-not-to-use, but given the sibling tools are mostly list operations, this unique write operation is obviously the right choice for setting budgets. The month format requirement is also a useful guideline.

    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?

    Annotations only include readOnlyHint=false, so the description must carry some behavioral weight. It discloses the return value ('Returns the created transaction id and details') and mentions format constraints. It does not discuss permissions or undoability, but for a simple create operation this is adequate.

    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 five short, purposeful sentences. It is front-loaded with the primary purpose, then provides essential format conventions, helper tool references, and return behavior. No extraneous words or repetition.

    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 7 parameters, full schema descriptions, and an output schema, the description covers the key contextual needs: date format, amount sign, how to obtain enum-like values, and return content. It could mention cleared or transfers, but those are optional and not essential for basic use.

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

    Parameters3/5

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

    The input schema has 100% coverage, with all seven parameters described. The description largely repeats schema information (date format, amount sign, use list_* calls) without adding new parameter-level meaning, so the baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description states 'Create a new transaction in Actual Budget' with a clear verb and resource. It distinguishes this from sibling tools like update_transaction, delete_transaction, and create_transfer by focusing on creation of a standard transaction.

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

    Usage Guidelines4/5

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

    The description provides explicit guidance on using list_accounts, list_payees, and list_categories to obtain valid names, and explains the amount sign convention. However, it does not explicitly state when to avoid this tool, such as using create_transfer for transfers, so the alternative guidance is incomplete.

    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?

    Annotations already flag destructiveHint=true, but the description adds that the operation 'cannot be undone' and states the return value (deleted transaction ID). This provides useful context beyond the structured data without contradicting it.

    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?

    Four short sentences, each serving a purpose: the action, the warning, the prerequisite, and the return value. No filler or redundancy.

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

    Completeness5/5

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

    For a single-parameter tool with full schema coverage, annotations, and an output schema, the description fully covers what the tool does, its destructive nature, how to get the ID, and what it returns. No gaps.

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

    Parameters3/5

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

    The schema covers 100% of the parameter with a description that already says to use list_transactions. The description restates this, adding no new meaning beyond what the schema provides.

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

    Purpose5/5

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

    The description uses a specific verb 'Delete' and a clear resource 'transaction from Actual Budget by id.' It distinguishes the tool from siblings like update_transaction and add_transaction by focusing on deletion by ID and noting irreversibility.

    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 explicitly instructs to use list_transactions to get transaction IDs, which is a clear prerequisite. It does not explicitly mention when not to use it (e.g., for updates), but the destructive warning and ID requirement imply the right context.

    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 are provided, so the description carries the behavioral transparency burden. It explicitly discloses the return fields (category id, name, group name, income flag) and the filtering behavior. It does not state whether it is read-only, but the verb 'list' strongly implies a safe read operation, so this is adequate.

    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, with four sentences each earning their place: purpose, filtering, return fields, and a practical usage tip. It is front-loaded and avoids redundancy.

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

    Completeness5/5

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

    For a simple list tool with one optional parameter and an output schema, the description fully covers the purpose, filtering, return fields, and downstream usage. It is contextually complete despite lacking annotations.

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

    Parameters3/5

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

    Schema description coverage is 100% for the single parameter is_income. The description repeats the parameter's meaning (True for income, False for expense) without adding new semantic details beyond the schema, so the baseline of 3 applies.

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

    Purpose5/5

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

    The description clearly states 'List all budget categories from Actual Budget' with a specific verb and resource, and the optional filtering on is_income distinguishes it from sibling tools. It is unambiguous and action-oriented.

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

    Usage Guidelines4/5

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

    The description provides clear context for when to use the filter (income vs expense) and implies usage for transaction category filtering. It does not explicitly name alternatives or exclusions, but the context is sufficiently clear for a list tool.

    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?

    The description adds useful constraints: 'amount must be positive' and that direction is determined by from_account/to_account. It also notes the return of both debit and credit transaction details, which is actual behavior beyond the minimal readOnlyHint:false annotation. It does not mention side effects like the creation of two ledger entries explicitly, but implies it.

    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?

    Three concise sentences, front-loaded with the core purpose, then constraints and prerequisites. Every sentence adds value without redundancy or fluff.

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

    Completeness5/5

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

    With an output schema present and full parameter schema coverage, the description completes the picture by adding domain-specific constraints and cross-referencing the list_accounts tool. Given the tool's moderate complexity, this is highly 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 100%, so each parameter is already documented. The description adds extra meaning by explaining how amount positivity and directionality work, which goes beyond the individual parameter descriptions. It also reinforces the use of list_accounts for account name resolution.

    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 a specific verb and resource: 'Transfer money between two accounts in Actual Budget.' It clearly distinguishes from siblings like add_transaction and update_transaction by focusing on transfers, and it explains the directional semantics of from/to accounts.

    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 explicitly instructs to 'Use list_accounts to get account names,' which is a clear prerequisite. It conveys when to use the tool (for transfers) but does not explicitly exclude it for non-transfer transactions, leaving a small gap in alternative guidance.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the burden of indicating that this is a read-only operation. The verb 'List' implies no side effects, and the description discloses that it returns all accounts including closed and off-budget status. However, it does not explicitly state any authentication requirements or potential errors, so it is adequate but not exhaustive.

    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 three short sentences, front-loaded with the primary action, and each sentence adds value: what it does, what it returns, and when to use it. No wasted words.

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

    Completeness5/5

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

    For a simple read-only list tool with zero parameters and an output schema, the description covers the essential aspects: scope, returned fields, and a practical use case. It is complete enough for an agent to select and invoke correctly.

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

    Parameters4/5

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

    The tool has no parameters, so the description does not need to explain parameter semantics. The schema coverage is trivially 100%, and the baseline for zero-parameter tools is 4.

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

    Purpose5/5

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

    The description clearly states the tool's function with a specific verb ('List') and resource ('accounts'), and distinguishes it from sibling list tools by naming the resource. It also specifies the returned fields ('id, name, off-budget, closed'), making its 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 Guidelines4/5

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

    The description provides a clear use case: 'Use this to get account ids needed for filtering transactions.' It does not explicitly mention when not to use it or name alternative tools, but the guidance is specific and the context from sibling tools makes the intended usage clear.

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

  • Behavior4/5

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

    With no annotations, the description carries the responsibility of disclosing behavior. It explicitly says 'List' (implying read-only) and enumerates the return data, which gives the agent a clear behavioral model. It does not mention side effects, but for a list operation, the non-destructive nature is adequately implied.

    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 three short sentences, each serving a distinct purpose: action, output, and usage context. It is appropriately sized, front-loaded with the main verb, and contains no extraneous information.

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

    Completeness5/5

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

    For a simple zero-parameter list tool with an output schema, the description covers all essential elements: what it lists, what it returns, and why it is useful. No missing context or ambiguity, even with sibling tools present.

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

    Parameters4/5

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

    The tool has zero parameters, so the baseline is 4. The description adds no parameter details because none exist, and the schema already reflects the empty parameter list. No further compensation is needed.

    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 category groups from Actual Budget' with a specific verb and resource, and further distinguishes it from sibling tools like list_categories by focusing on groups rather than categories. It also specifies the return fields (id, name, income group), making the purpose explicit and unambiguous.

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

    Usage Guidelines4/5

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

    The description provides clear usage context with 'Use this to understand how categories are organised,' indicating when this tool is appropriate. It does not explicitly exclude alternatives or name siblings, but the context is sufficient for an agent to infer when to choose this over category-listing tools.

    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 exist, so the description carries the burden. It discloses behavior: lists ALL payees, and returns each payee's id and name. It implies a read-only operation. It does not discuss ordering or edge cases, but for a zero-parameter list tool this is adequate.

    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?

    Three short sentences: first states the action, second states the output fields, third gives practical usage. Every sentence earns its place with zero filler.

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

    Completeness5/5

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

    With zero parameters and an output schema present, the description is complete for a simple enumeration tool. It specifies the source, scope ('all'), return contents, and a concrete use case, leaving no critical 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?

    There are zero parameters and schema coverage is 100%, so the baseline is 4. The description adds no parameter detail, but none is needed.

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

    Purpose5/5

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

    The description uses a specific verb 'List' with an explicit resource 'payees from Actual Budget'. It clearly distinguishes from sibling list_accounts/list_categories by naming the exact entity, and adds scope ('all').

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

    Usage Guidelines4/5

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

    The description provides concrete usage guidance: 'Use payee names when filtering transactions by payee', implying this is the lookup tool for payee IDs/names. It lacks explicit exclusions or named alternatives, but the context is clear.

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

  • Behavior4/5

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

    With no provided annotations, the description carries the full burden of behavioral disclosure. It discloses important behavioral constraints: date format (YYYY-MM-DD), acceptance of names or ids, partial string matching for notes, and return fields with currency (USD). It does not mention pagination or potential high-volume results, but for a list operation the core behaviors are well covered. The description compensates well for the lack of annotations.

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

    Conciseness5/5

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

    The description consists of four focused sentences, each contributing unique value: the primary action with filters, date format, flexible identifier handling, return fields, and references to helper tools. There is no redundant or filler content, and the main purpose is front-loaded. It is concise while remaining informative.

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

    Completeness5/5

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

    Given that all 6 parameters are optional and an output schema is present, the description provides a complete mental model: how to filter, what data comes back, and where to get filter values. The return fields are listed explicitly, and the sibling tools offer additional context. For a read-only list tool, the description adequately covers both usage and expectations without needing to detail every edge case.

    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 already describes all parameters (100% coverage), establishing a baseline of 3. The description adds meaningful semantics beyond the schema by explaining that account, category, and payee accept either names or ids (the schema only explicitly mentions this for payee), and that notes is a partial search. It also cross-references the list_* tools, tying parameter usage to a practical workflow. This extra context justifies a 4.

    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 identifies the action ('List transactions') and the resource ('from Actual Budget'), with optional filters. It distinguishes from sibling tools like list_accounts and add_transaction by specifying the returned entity type (transactions) and the context (Actual Budget). The scope is unambiguous.

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

    Usage Guidelines4/5

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

    The description provides practical guidance by directing users to list_accounts, list_categories, and list_payees to obtain valid names for filters. This implies when to use the tool (when you need transaction data with filtering) and how to prepopulate filters. It doesn't explicitly contrast with mutation tools (add/update/delete), but the 'list' verb makes the read-only intent clear. Overall, strong context but missing an explicit 'use this when' statement.

    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?

    The description adds meaningful behavioral context beyond the annotation readOnlyHint=false: it discloses the partial-update behavior ('Only provided fields will be updated, others remain unchanged') and states the return value. This is valuable for a mutation tool, though it doesn't cover permissions 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.

    Conciseness5/5

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

    Three tightly structured sentences: purpose, update semantics, and prerequisite/return. Every sentence adds essential information with no redundancy or fluff.

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

    Completeness5/5

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

    For a moderately complex tool with 7 parameters and an output schema, the description covers purpose, partial-update behavior, how to obtain IDs, and return value. With output schema present, this is sufficient.

    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 100%, with each parameter already described. The description enhances this by explaining the overarching update rule, which directly affects how all parameters behave (partial update). It also adds a critical hint for transaction_id to use list_transactions. This goes beyond the baseline.

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

    Purpose5/5

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

    The description uses the specific verb 'Update' with the resource 'transaction', clearly stating it targets an existing transaction in Actual Budget. This distinguishes it from siblings like add_transaction and delete_transaction by emphasizing 'existing'.

    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?

    It provides clear context by explaining that only provided fields are updated and directs users to list_transactions for obtaining IDs. However, it does not explicitly exclude alternatives or state when not to use this tool, though the 'existing' wording implies it's for updates rather than creation.

    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

actual-budget-mcp MCP server

Copy to your README.md:

Score Badge

actual-budget-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/Saikumarmohan/actual-budget-mcp'

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