Skip to main content
Glama
dannyshaw

Pocketsmith MCP Server

by dannyshaw

Pocketsmith MCP Server

A comprehensive Model Context Protocol (MCP) server for the Pocketsmith personal finance API. Transform your AI assistant into a powerful financial management tool with access to accounts, budgets, transactions, and more.

Python 3.11+ License: MIT

Personal project β€” not published to PyPI. Install from source (see below).

✨ Features

πŸ’° Account Management

  • View all account balances (checking, savings, credit cards, investments)

  • Get detailed account information with transaction history

  • Track net worth across multiple accounts

πŸ“Š Budget & Analysis

  • Get budget summaries for any time period

  • Analyze per-category spending vs. budgets

  • View spending trends across categories

  • Compare actual vs. forecasted amounts

πŸ’³ Transaction Management

  • List, search, and filter transactions

  • Create new transactions (log cash purchases, manual entries)

  • Update transaction details (categorize, add notes, set labels)

  • Delete duplicate or incorrect transactions

  • Filter by account, category, date range, or review status

πŸ“ Category Management

  • List all categories with hierarchical structure

  • Create new categories and subcategories

  • Set up automatic categorization rules

  • Organize spending into custom categories

πŸ”„ Recurring Transactions

  • View upcoming bills and recurring expenses

  • Create recurring events (rent, subscriptions, paychecks)

  • Forecast future cash flow

  • Manage budget scenarios

🏷️ Labels & Organization

  • List and manage transaction labels

  • Tag transactions for easy filtering

  • Track tax-deductible expenses, business spending, etc.

Related MCP server: YNAB Assistant

πŸ“¦ Installation

Install from source

git clone https://github.com/dannyshaw/pocketsmith-mcp.git
cd pocketsmith-mcp
pip install -e .

Or run directly with uv from the source directory (no install needed) β€” configure your MCP client to invoke:

uv --directory /path/to/pocketsmith-mcp run pocketsmith-mcp

πŸ”‘ Configuration

Get Your API Key

  1. Log in to Pocketsmith

  2. Go to Settings β†’ API & Developers

  3. Click Generate New API Key

  4. Copy your API key

⚠️ Security: Treat your API key like a password. It has full access to your financial data.

Set Environment Variable

export POCKETSMITH_API_KEY=your_api_key_here

Or create a .env file:

echo "POCKETSMITH_API_KEY=your_api_key_here" > .env

πŸš€ Usage

With Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "pocketsmith": {
      "command": "uvx",
      "args": ["pocketsmith-mcp"],
      "env": {
        "POCKETSMITH_API_KEY": "your_api_key_here"
      }
    }
  }
}

With Claude Code

Add to ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pocketsmith": {
      "command": "pocketsmith-mcp",
      "env": {
        "POCKETSMITH_API_KEY": "your_api_key_here"
      }
    }
  }
}

Standalone

Run the server directly:

pocketsmith-mcp

πŸ’¬ Example Conversations

Once configured, you can ask your AI assistant:

Account & Budget Queries

  • "What are my account balances?"

  • "Show me my credit card balance"

  • "Am I over budget this month?"

  • "What's my spending trend for groceries over the last 3 months?"

Transaction Management

  • "List transactions from my checking account this week"

  • "Log a $50 cash purchase at the grocery store"

  • "Categorize that Amazon transaction as Household"

  • "Delete transaction #12345"

Bills & Recurring Expenses

  • "What bills are coming up this month?"

  • "Create a recurring monthly rent payment of $2000"

  • "Show me all my subscriptions"

Categories & Organization

  • "Create a new category called 'Pet Expenses'"

  • "Show me all transactions in the Dining Out category"

  • "Set up a rule to auto-categorize Starbucks as Coffee"

πŸ› οΈ Available Tools (23 total)

Account Tools

Tool

Description

pocketsmith_list_accounts

List all accounts with balances

pocketsmith_get_account

Get detailed account information

pocketsmith_list_transaction_accounts

List transaction accounts with details

Budget & Analysis Tools

Tool

Description

pocketsmith_get_budget_summary

Get budget summary for a date range

pocketsmith_list_budget

Per-category budget analysis

pocketsmith_get_trend_analysis

Spending trends across categories

Transaction Tools

Tool

Description

pocketsmith_list_transactions

List transactions with filters

pocketsmith_list_transactions_by_account

Filter transactions by account

pocketsmith_list_transactions_by_category

Filter transactions by category

pocketsmith_get_transaction

Get transaction details

pocketsmith_create_transaction

Create new transaction

pocketsmith_update_transaction

Update transaction details

pocketsmith_delete_transaction

Delete a transaction

pocketsmith_search_transactions

Search by keyword

pocketsmith_categorize_transaction

Quick categorization

Category Tools

Tool

Description

pocketsmith_list_categories

List all categories

pocketsmith_create_category

Create new category

pocketsmith_list_category_rules

List auto-categorization rules

pocketsmith_create_category_rule

Create categorization rule

Event Tools (Recurring Transactions)

Tool

Description

pocketsmith_list_events

List recurring transactions

pocketsmith_create_event

Create recurring transaction

Other Tools

Tool

Description

pocketsmith_list_labels

List all transaction labels

pocketsmith_get_status

Check connection status

πŸ”’ Security

This Server Can

  • βœ… Read all your financial data (transactions, accounts, balances)

  • βœ… Create, update, and delete transactions

  • βœ… Modify categories and create rules

  • βœ… Access budget and forecast data

Security Best Practices

  • βœ… Store API keys in environment variables (never in code)

  • βœ… Use different API keys for development vs. production

  • βœ… Rotate API keys periodically

  • βœ… Only use with trusted AI assistants on secure machines

  • ❌ Never commit API keys to version control

  • ❌ Never share API keys publicly

See SECURITY.md for detailed security information.

πŸ“Š API Coverage

20 out of 44 Pocketsmith API endpoints (45%)

Focused on the most useful endpoints for personal finance management:

  • βœ… User & account management

  • βœ… Transaction CRUD operations

  • βœ… Budget & trend analysis

  • βœ… Category management

  • βœ… Recurring events/bills

  • βœ… Labels & organization

πŸ§ͺ Development

Setup

# Clone repository
git clone https://github.com/dannyshaw/pocketsmith-mcp.git
cd pocketsmith-mcp

# Install dependencies
uv sync

# Run tests
pytest

# Run tests with coverage
pytest --cov=src/pocketsmith_mcp

# Lint and format
ruff check .
ruff format .

# Type check
mypy src

Testing

# Run all tests
pytest -v

# Run specific test file
pytest tests/test_client.py -v

# Run with coverage report
pytest --cov=src/pocketsmith_mcp --cov-report=html

Project Structure

pocketsmith-mcp/
β”œβ”€β”€ src/pocketsmith_mcp/
β”‚   β”œβ”€β”€ __init__.py      # Package initialization
β”‚   β”œβ”€β”€ client.py        # Pocketsmith API client
β”‚   β”œβ”€β”€ config.py        # Configuration settings
β”‚   └── server.py        # MCP server implementation
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ conftest.py      # Test fixtures
β”‚   └── test_client.py   # Client tests
β”œβ”€β”€ pyproject.toml       # Project configuration
β”œβ”€β”€ README.md            # This file
└── SECURITY.md          # Security documentation

🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Write tests for your changes

  4. Ensure all tests pass (pytest)

  5. Commit your changes (git commit -m 'Add amazing feature')

  6. Push to the branch (git push origin feature/amazing-feature)

  7. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.

πŸ“ License

MIT License - see LICENSE for details.

πŸ™ Acknowledgments

πŸ“ž Support

πŸ—ΊοΈ Roadmap

Future enhancements:

  • Attachment management

  • Institution connections management

  • Budget calendar export

  • Spending analytics and insights

  • Multi-currency support enhancements

  • Batch transaction operations


Made with ❀️ for personal finance management

Available Tools

23 tools
pocketsmith_categorize_transactionA

Categorize a transaction by setting its category. This is a convenience wrapper around update_transaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesThe transaction ID to categorize
category_idYesThe category ID to assign
noteNoOptional note explaining the categorization
mark_reviewedNoWhether to mark the transaction as reviewed (default true)

TDQS

A4/5.0
Behavior3/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 states it is a convenience wrapper, implying no unexpected side effects, but it does not detail defaults (e.g., mark_reviewed defaults to true) or clarify if any permissions are needed. Adequate but not thorough.

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 that convey purpose and relationship to sibling. No redundant or extraneous 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 lack of output schema and annotations, the description provides sufficient context for a simple wrapper tool. It explains the purpose and references update_transaction, giving the agent enough to understand its role among many siblings. Missing some behavioral details but overall adequate.

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 descriptions for all parameters. The description adds no additional semantics beyond the schema, which is acceptable per guidelines. 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 clearly states the tool's purpose: 'Categorize a transaction by setting its category.' It distinguishes itself from siblings by explicitly noting it is a convenience wrapper around update_transaction, making its specific use case obvious.

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 indicates when to use this tool (for categorization) by positioning it as a wrapper for update_transaction. However, it does not provide explicit guidance on when not to use it or mention alternatives beyond the implied update_transaction.

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

pocketsmith_create_categoryC

Create a new category

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe category title
colourNoThe category color in hex format (e.g., #FF0000)
parent_idNoParent category ID for creating a subcategory
is_transferNoWhether this category represents a transfer
is_billNoWhether this category represents a bill
roll_upNoWhether to roll up child categories
refund_behaviourNoHow refunds should be handled

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It only states 'Create a new category' without any details on side effects, authentication needs, idempotency, or error behavior. This is a significant gap.

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

Conciseness2/5

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

The description is extremely concise (one sentence), but this brevity sacrifices necessary information. It is under-specified for a tool with multiple parameters and no annotations, making it insufficient rather than appropriately concise.

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

Completeness1/5

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

Given the tool's complexity (7 parameters, no output schema, no annotations), the description is severely lacking. It omits return values, error scenarios, and behavioral constraints, leaving the agent with minimal context for correct usage.

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 of its 7 parameters with descriptions. The description adds no additional meaning beyond the schema, so the baseline score of 3 applies. No extra context is provided for parameter usage.

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 'Create a new category' clearly states the verb (create) and resource (category). It is straightforward and adequately conveys the main action, though it does not differentiate from sibling tools like 'pocketsmith_create_category_rule'.

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 'pocketsmith_list_categories' or 'pocketsmith_create_category_rule'. There is no mention of prerequisites, context, or exclusions.

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

pocketsmith_create_category_ruleB

Create a rule to automatically categorize future transactions matching a payee pattern

ParametersJSON Schema
NameRequiredDescriptionDefault
category_idYesThe category ID to assign when rule matches
payee_matchesYesKeyword pattern to match in payee field
apply_to_uncategorisedNoApply this rule to existing uncategorised transactions
apply_to_allNoApply this rule to ALL existing transactions (re-categorizes)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It states the rule applies to 'future transactions' but the schema includes parameters 'apply_to_uncategorised' and 'apply_to_all' that affect existing transactions, creating a potentially misleading omission. The description fails to disclose the destructive impact of re-categorizing existing 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 a single, front-loaded sentence with no filler. Every word contributes to the core purpose, making it highly scannable for an AI agent.

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 4 parameters (2 required) and no output schema, the description is insufficient. It does not explain what a category rule is, how the matching works, or the implications of the apply_to parameters. With siblings like 'list_category_rules', the description should provide more context about the rule lifecycle.

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 baseline is 3. The description adds minimal value beyond the schema, only clarifying 'future transactions' which is not entirely accurate given the apply_to parameters. No additional parameter details or usage examples are provided.

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 'Create', the resource 'category rule', and the purpose 'automatically categorize future transactions matching a payee pattern'. It effectively distinguishes from sibling tools like 'categorize_transaction' (one-time) and other creation tools.

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

Usage Guidelines3/5

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

The description implies use when setting up recurring categorization but provides no explicit guidance on when to use versus alternatives, nor does it offer exclusion criteria or mention prerequisites. It is adequate but lacks directive clarity.

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

pocketsmith_create_eventB

Create a new event (recurring transaction)

ParametersJSON Schema
NameRequiredDescriptionDefault
scenario_idYesThe scenario ID (get from account details)
category_idYesThe category ID to assign
dateYesThe event date (YYYY-MM-DD)
amountYesThe event amount (negative for expenses, positive for income)
repeat_typeYesHow often the event repeats
repeat_intervalNoThe repeat interval (default: 1)
noteNoNote for the event

TDQS

B3.3/5.0
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 behavioral traits such as whether the event automatically generates transactions, any side effects, permission requirements, or what happens upon creation. The single sentence lacks depth beyond the action itself.

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

Conciseness4/5

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

The description is a single concise sentence with no fluff. However, it sacrifices completeness; a slightly longer description could improve clarity without becoming 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 creates events (recurring transactions) and has no output schema or annotations, the description is incomplete. It does not explain what the tool returns, how events are used, or any prerequisites (e.g., scenario must exist). More context is needed for effective agent usage.

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

Parameters3/5

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

Schema coverage is 100% with inline descriptions for all 7 parameters. The description adds no additional meaning or context beyond what the schema provides. Baseline of 3 is appropriate as the schema handles semantics adequately.

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 'Create a new event (recurring transaction)' uses a specific verb (create) and resource (event), and immediately clarifies that events represent recurring transactions. This distinguishes it from siblings like pocketsmith_create_transaction, making purpose clear.

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 that this tool is for creating recurring transactions, but it provides no explicit guidance on when to use this versus alternatives (e.g., when to use create_transaction for one-off transactions or list_events for viewing). The context is inferential but not directly stated.

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

pocketsmith_create_transactionC

Create a new transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_account_idYesThe transaction account ID
payeeYesThe payee name
amountYesThe transaction amount (negative for debit, positive for credit)
dateYesThe transaction date (YYYY-MM-DD)
is_transferNoWhether this is a transfer between accounts
labelsNoLabels to assign to the transaction
category_idNoCategory ID to assign
noteNoNote for the transaction
memoNoMemo for the transaction
needs_reviewNoWhether the transaction needs review

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, and the description fails to disclose behavioral traits like mutation effects, idempotency, or confirmation steps, leaving the agent without crucial safety information.

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, clear sentence, but could benefit from a brief structure like listing key intended use cases without becoming 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 has 10 parameters and no output schema, the description is too sparse, failing to explain return behavior, constraints, or post-creation effects, which are necessary for an agent to use it correctly.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, so the description adds no additional meaning. Baseline score of 3 is appropriate as the schema already provides detailed parameter semantics.

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

Purpose4/5

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

The description 'Create a new transaction' clearly states the verb (create) and resource (transaction), but lacks differentiation from sibling tools like 'pocketsmith_update_transaction' or 'pocketsmith_categorize_transaction'.

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 when a transaction should be created vs updated or categorized.

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

pocketsmith_delete_transactionB

Delete a transaction by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesThe transaction ID to delete

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description is the sole source of behavioral information. It states the action is deletion, implying mutation and destruction, but does not disclose potential consequences (e.g., irreversibility, cascading effects) or required authentication/authorization 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 a single, concise sentence with no extraneous information, making it highly efficient for an agent to process.

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 mutation tool with no output schema and no annotations, the description is insufficient. It does not mention return values (e.g., success indicator, deleted object), error conditions (e.g., transaction not found), or any post-deletion state, leaving the agent with incomplete 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%, with the parameter description already explaining its role. The description adds 'by ID' which reinforces the parameter's function but does not provide additional 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 'Delete a transaction by ID' clearly states the verb (delete), resource (transaction), and identification method (by ID). It effectively distinguishes from sibling tools like create, update, or categorize.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not specify prerequisites, such as transaction existence or user permissions, nor does it mention any context 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.

pocketsmith_get_accountB

Get details of a specific account by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesThe account ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description does not disclose behavior such as read-only nature, error handling, or any 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?

Single sentence, efficiently conveys core purpose 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?

With no output schema, description could detail expected return data or behavior, but for a simple retrieval tool it is minimally adequate.

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% and schema already documents the parameter; description adds no additional meaning beyond confirming it's used for identification.

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 details of a specific account by ID, distinguishing it from listing tools like pocketsmith_list_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?

No guidance on when to use this tool versus alternatives, nor any preconditions or exclusions mentioned.

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

pocketsmith_get_budget_summaryC

Get budget summary for a period and date range

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoThe period for the budget summary (default: months)
intervalNoThe interval for the period (default: 1)
start_dateYesStart date for the budget summary (YYYY-MM-DD)
end_dateYesEnd date for the budget summary (YYYY-MM-DD)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral transparency. It does not disclose whether the operation is read-only, any authentication requirements, error conditions, or the nature of the response.

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

Conciseness4/5

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

The description is a single concise sentence that is front-loaded with the key action and resource. Every word serves a purpose, though it could benefit from more structure (e.g., bullet points).

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

Completeness2/5

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

The tool lacks an output schema and annotations, and the description does not explain what the summary contains, how it is aggregated, or any pagination. Given sibling tools, the description is insufficient for an agent to understand the full context.

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

Parameters3/5

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

The input schema has 100% description coverage for all four parameters, including enums and date format hints. The description adds no additional semantic value beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states the tool retrieves a budget summary for a period and date range, using a specific verb and resource. However, it does not differentiate from sibling tools like pocketsmith_list_budget, which may serve a similar function.

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 pocketsmith_list_budget or pocketsmith_get_trend_analysis. There is no mention of prerequisites or exclusions.

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

pocketsmith_get_statusB

Get connection status and authenticated user info

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description should disclose behavioral traits. It only states what the tool gets, but does not mention that it is read-only, requires authentication, or any side effects. The description fails to add value beyond the purpose.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words. It is appropriately sized for the tool's simplicity.

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

Completeness2/5

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

The tool has no output schema, yet the description does not describe the return format or fields. It only mentions 'connection status and authenticated user info' without elaboration. Given the low complexity, the description is incomplete.

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 no parameters, so the schema coverage is 100% trivial. The description does not need to explain parameters. Baseline for 0 params 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 action ('get') and the resource ('connection status and authenticated user info'). It is specific and distinct from sibling tools, which are all about specific operations like categorize, create, list, etc.

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 others, or any preconditions. For a simple status check, the usage might be obvious, but the description lacks any contextual hints.

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

pocketsmith_get_transactionB

Get details of a specific transaction by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesThe transaction ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must carry the full burden. It only states 'Get details' (a read operation) but omits any behavioral traits such as rate limits, authentication requirements, error handling (e.g., behavior for invalid/missing ID), or what 'details' precisely includes.

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 short sentence with no extraneous words. It is concise but could slightly expand on the output format without becoming 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?

With no output schema, the description should indicate what 'details' are returned (e.g., full transaction object, specific fields). It lacks this information, making the tool incomplete for an agent to understand the return structure.

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% and the parameter description is minimal ('The transaction ID'). The tool description adds no additional meaning beyond the schema, meeting the baseline of 3.

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 details') and the target resource ('a specific transaction by ID'). It effectively distinguishes this tool from siblings like 'pocketsmith_list_transactions' and 'pocketsmith_search_transactions' by specifying retrieval by individual 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 listing or searching. It implicitly assumes the agent already has a transaction ID but does not explain the prerequisite or contrast with bulk operations.

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

pocketsmith_get_trend_analysisB

Get trend analysis across categories and scenarios

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoThe period for trend analysis (default: months)
intervalNoThe interval for the period (default: 1)
start_dateYesStart date for trend analysis (YYYY-MM-DD)
end_dateYesEnd date for trend analysis (YYYY-MM-DD)
categoriesNoCategory IDs to filter by
scenariosNoScenario IDs to filter by

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description does not disclose behavioral traits (e.g., read-only, data aggregation method, or limits), leaving agents uninformed about side effects or constraints.

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?

Single sentence is concise and front-loaded, but could be expanded with minimal context without sacrificing brevity.

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?

No output schema and no annotations; description fails to explain return format, aggregation logic, or usage context, leaving significant gaps for effective tool 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 covers all 6 parameters with descriptions; the tool description adds no extra meaning beyond the schema, meeting the baseline for high 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 tool retrieves trend analysis across categories and scenarios, distinguishing it from sibling tools focused on transactions, accounts, and budgets.

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 list_transactions or budget_summary; lacks context for preferred use cases.

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

pocketsmith_list_accountsA

List all accounts with balances and details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, and the description does not disclose any behavioral traits such as read-only nature, authentication requirements, rate limits, or response structure. The lack of transparency leaves the agent uncertain about side effects or limitations.

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

Conciseness5/5

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

The description is a single sentence that conveys the essential purpose with no extra words. It is appropriately 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 that there is no output schema and no annotations, the description could provide more context such as the scope of 'all accounts' (organization-wide?), whether it includes closed accounts, or any limitations. However, for a simple list with no parameters, the description 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 input schema has zero parameters, so schema coverage is 100%. The description does not need to add parameter information since there are none. This is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'List' and clearly states the resource 'accounts', specifying it includes 'balances and details'. Among sibling tools, there is no other tool dedicated to listing all accounts, so this tool is clearly distinguished.

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

Usage Guidelines2/5

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

No usage guidelines are provided. There is no indication of when to use this tool versus alternatives like get_account or list_transaction_accounts. The description does not mention any prerequisites or context.

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

pocketsmith_list_budgetC

List per-category budget analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
roll_upNoWhether to roll up child categories into parent categories

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behaviors. It does not state whether the tool returns only categories with budgets, the format of the analysis (e.g., spent vs budgeted), or any limitations. The description is too minimal.

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

Conciseness4/5

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

The description is a single concise sentence with no extraneous words. It is appropriately sized for a simple tool.

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 no output schema and no annotations, the description should provide more context about what the tool returns. It lacks details on the structure of the analysis, which is critical for an AI agent to interpret results.

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%, and the single parameter 'roll_up' is already described in the schema. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description 'List per-category budget analysis' clearly states the action and resource. It distinguishes from sibling 'pocketsmith_get_budget_summary' which implies a summary view. However, 'budget analysis' is somewhat vague and could be more specific.

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 'pocketsmith_get_budget_summary' or others. The description does not mention prerequisites or context, leaving the agent to infer usage.

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

pocketsmith_list_categoriesA

List all categories. Returns a flat list with full category paths for easy lookup.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
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 mentions the return format (flat list with paths) but does not disclose whether the operation is read-only, requires authentication, or has any side effects. Minimal 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?

The description consists of two concise sentences. The first sentence states the action ('List all categories') and the second adds return value detail. No extraneous words, front-loaded with the core purpose.

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-all tool with no parameters and no output schema, the description is complete: it states what it does and what it returns. It may not mention edge cases or permissions, but given the simplicity, it provides sufficient context for an agent to use it 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 zero parameters, and the input schema is empty with 100% coverage. The description does not need to explain parameters. According to guidelines, baseline for 0 params is 4, and the description adds no param info, so a 4 is appropriate.

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

Purpose5/5

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

The description uses specific verb 'List' and resource 'categories', and clarifies it returns 'all categories' with 'full category paths'. This clearly distinguishes from sibling tools like pocketsmith_create_category or pocketsmith_list_category_rules.

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

Usage Guidelines3/5

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

The description implies usage for retrieving all categories but provides no explicit guidance on when to use this tool vs alternatives, such as when to use pocketsmith_list_category_rules or pocketsmith_get_category. 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.

pocketsmith_list_category_rulesA

List all category rules (automatic categorization rules)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, description provides only the basic behavior (lists all rules) and adds context about automatic categorization. Lacks disclosure on read-only nature, permissions, or rate limits, but sufficient for a simple list 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?

Single sentence front-loads the purpose with no extraneous text. 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?

For a zero-parameter list tool with no output schema, description adequately explains the resource. Could mention that no filtering is available, but overall complete enough for the tool's simplicity.

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?

No parameters exist; schema coverage is trivially 100%. Description adds meaning by defining what 'category rules' are (automatic categorization rules), satisfying the baseline of 4 for zero-parameter tools.

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 uses specific verb 'List' and resource 'category rules' with parenthetical clarification 'automatic categorization rules', clearly distinguishing it from siblings like list_categories which list categories themselves.

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 list_categories, list_events, etc. Agent must infer based solely on the name, which may be ambiguous.

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

pocketsmith_list_eventsB

List events (recurring transactions) for a date range

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYesStart date for events (YYYY-MM-DD)
end_dateYesEnd date for events (YYYY-MM-DD)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description gives only the read action (list) without additional behavioral details such as pagination, ordering, permissions, or side effects.

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

Conciseness5/5

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

Single concise sentence that includes both verb and resource with clarification. No unnecessary 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?

No output schema and no annotations; description does not explain return format, pagination, or expected response, leaving the agent without sufficient context for a read operation.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. Description adds no extra meaning beyond schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states verb 'list' and resource 'events' with parenthetical clarification 'recurring transactions', distinct from sibling tools like pocketsmith_list_transactions.

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 siblings like pocketsmith_list_transactions or pocketsmith_list_accounts. The description simply states functionality without context.

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

pocketsmith_list_labelsA

List all labels used in transactions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided; description lacks behavioral traits such as read-only safety, pagination, or permissions. Minimal disclosure for a simple list 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?

Single sentence, no redundancy, front-loaded verb and resource. 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?

Adequate for a 0-param, no-output-schema tool. Could mention scope (e.g., 'all labels from all transactions') but current wording 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?

No parameters, so schema coverage is 100%. Baseline 4 per rule; description adds no param info, but not required.

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?

Specifies verb 'List' and resource 'labels used in transactions'. Clearly distinguishes from siblings like list_accounts and list_categories by focusing on labels.

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., list_categories). Does not mention prerequisites or context for invocation.

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

pocketsmith_list_transaction_accountsA

List all transaction accounts with balances and details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It states 'list' suggesting non-destructive, but lacks details on pagination, rate limits, or behavior when no accounts 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?

Single sentence, front-loaded, no filler. Every word adds 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?

No output schema or annotations. Description is minimal for a list tool; 'details' is vague. Adequate but leaves agent wondering what fields are returned.

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?

No parameters exist; schema coverage is 100%. Baseline for zero parameters is 4, and description adds no parameter info because none 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?

Description clearly states specific verb 'List' and resource 'transaction accounts' with scope 'all' and expected content 'balances and details'. It effectively distinguishes from sibling tools like pocketsmith_list_accounts which likely lists all account types.

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 vs. alternatives. The description implies a read operation but does not state when not to use or provide comparisons to similar list tools.

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

pocketsmith_list_transactionsB

List transactions from Pocketsmith with optional filters. Transfers excluded by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNoFilter transactions on or after this date (YYYY-MM-DD)
end_dateNoFilter transactions on or before this date (YYYY-MM-DD)
needs_reviewNoFilter to transactions that need review
uncategorisedNoFilter to uncategorised transactions
searchNoSearch string to match against payee, category, notes, etc.
transaction_typeNoFilter by transaction type
limitNoMaximum number of transactions to return (default 100)
exclude_transfersNoExclude transfer transactions (default true)
exclude_zeroNoExclude zero-amount transactions (default true)
exclude_category_idsNoCategory IDs to exclude from results

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic function and a default behavior (excluding transfers) but does not disclose any other behavioral traits such as rate limits, idempotency, or output format expectations.

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

Conciseness5/5

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

The description is two sentences, concise and front-loaded with the main purpose. Every sentence adds value; there is no unnecessary text.

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 parameter count (10, all optional), the lack of an output schema, and the simplicity of the tool, the description provides adequate context for an agent to understand the basic functionality. However, more details about default behaviors or how the filters interact could be beneficial.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter described in the schema. The description adds no additional semantics beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it lists transactions with optional filters and notes the default exclusion of transfers, providing a clear purpose. However, it does not explicitly differentiate from sibling tools like 'pocketsmith_list_transactions_by_account' or 'pocketsmith_search_transactions'.

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

Usage Guidelines3/5

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

The description implies usage for fetching transaction data with filters, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., by account, by category, or search). No exclusions or contexts are mentioned.

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

pocketsmith_list_transactions_by_accountA

List transactions for a specific account with optional filters. Transfers excluded by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesThe account ID to filter by
start_dateNoFilter transactions on or after this date (YYYY-MM-DD)
end_dateNoFilter transactions on or before this date (YYYY-MM-DD)
needs_reviewNoFilter to transactions that need review
uncategorisedNoFilter to uncategorised transactions
searchNoSearch string to match against transaction fields
transaction_typeNoFilter by transaction type
exclude_transfersNoExclude transfer transactions (default true)
exclude_zeroNoExclude zero-amount transactions (default true)
exclude_category_idsNoCategory IDs to exclude from results

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description reveals that transfers are excluded by default and filters are available, but lacks details on pagination, result ordering, or read-only nature.

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

Conciseness5/5

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

The description is two concise sentences with no unnecessary words, front-loading the core action and key behavioral note.

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 10 parameters, no output schema, and no annotations, the description covers the basic filter options and default behavior but omits important context like pagination, error handling, or result format.

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?

All 10 parameters have schema descriptions (100% coverage), so the description adds little beyond highlighting the default exclusion of transfers; no additional syntactic or semantic detail is provided.

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 'List' and the resource 'transactions for a specific account', and distinguishes from siblings by specifying account-level filtering and default transfer exclusion.

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 indicates the tool is for listing transactions for a specific account, but it does not provide explicit guidance on when to use this tool over alternatives like pocketsmith_list_transactions_by_category or pocketsmith_search_transactions.

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

pocketsmith_list_transactions_by_categoryB

List transactions for one or more categories. Transfers excluded by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
category_idsYesCategory IDs to filter by
start_dateNoFilter transactions on or after this date (YYYY-MM-DD)
end_dateNoFilter transactions on or before this date (YYYY-MM-DD)
needs_reviewNoFilter to transactions that need review
uncategorisedNoFilter to uncategorised transactions
searchNoSearch string to match against transaction fields
transaction_typeNoFilter by transaction type
exclude_transfersNoExclude transfer transactions (default true)
exclude_zeroNoExclude zero-amount transactions (default true)
exclude_category_idsNoCategory IDs to exclude from results

TDQS

B3.3/5.0
Behavior2/5

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

Discloses that transfers are excluded by default, but lacks details on pagination, rate limits, authorization, or what happens with no results. No annotations exist to compensate, so description carries the 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?

Two sentences efficiently convey the core purpose and a key default. No wasted words, though a bit more context could be added without harming conciseness.

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 10 parameters and many sibling tools, the description is too sparse. It does not explain the response format, the interplay of filters, or how it differs from other list/search tools. Lacks completeness for effective selection.

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% with all parameters described. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states 'List transactions for one or more categories' with a specific verb and resource, and notes a default behavior (transfers excluded). Distinguished from sibling tools like pocketsmith_list_transactions and pocketsmith_list_transactions_by_account.

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 for category-based filtering but provides no explicit guidance on when to use this tool versus alternatives like pocketsmith_search_transactions or pocketsmith_list_transactions_by_account. No exclusions or mentions of 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.

pocketsmith_search_transactionsA

Search transactions by keyword (payee, category, notes). Transfers excluded by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to match against transaction fields
limitNoMaximum number of transactions to return (default 50)
exclude_transfersNoExclude transfer transactions (default true)
exclude_zeroNoExclude zero-amount transactions (default true)
exclude_category_idsNoCategory IDs to exclude from results

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions default exclusions but lacks details on pagination, read-only nature, search semantics (case sensitivity, fuzzy matching), or rate limits.

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 concise sentences, front-loaded with purpose. Every word 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?

With 5 parameters, no output schema, and no annotations, the description covers search scope and defaults but omits return format, pagination details, and search behavior nuances (e.g., case sensitivity). 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 coverage is 100% with good parameter descriptions. The tool description adds context by specifying which fields are searched (payee, category, notes) and default behavior for exclusions, enhancing understanding 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 tool searches transactions by keyword across specific fields (payee, category, notes) and notes default exclusion of transfers, distinguishing it from list-only or mutation tools.

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

Usage Guidelines3/5

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

The description implies usage (searching) but does not explicitly state when to use vs. alternatives like pocketsmith_list_transactions, nor does it mention when transfers are excluded or how to include them.

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

pocketsmith_update_transactionB

Update a transaction's category, payee, note, labels, or review status

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesThe transaction ID to update
category_idNoNew category ID to assign
payeeNoNew payee name
noteNoNew note/memo for the transaction
labelsNoNew labels to assign
needs_reviewNoSet whether transaction needs review

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for disclosing behavior. It states 'Update' but does not specify whether this is a partial update or full replacement, whether it returns the updated transaction, if it requires special permissions, or if the operation is reversible.

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 sentence that lists the key fields. It is concise and front-loaded, though it could be slightly more structured (e.g., bullet points) but remains 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 6 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the update behavior (partial vs full), return format, or potential side effects. The agent is left guessing about important operational details.

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, so the baseline is 3. The description enumerates the parameters but adds no extra meaning beyond the schema descriptions; it does not clarify format constraints or relationships between parameters.

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' and resource 'transaction', and lists the exact fields that can be modified (category, payee, note, labels, review status). This clearly differentiates it from siblings like 'pocketsmith_categorize_transaction' which likely only changes the category.

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 'pocketsmith_categorize_transaction' or 'pocketsmith_delete_transaction'. There is no mention of prerequisites, side effects, or scenarios where updating is appropriate.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedpocketsmith_list_transactions3 fields changed
      • addedInput schema / properties / exclude_category_ids
        Added value: +{
        +  "description": "Category IDs to exclude from results",
        +  "items": {
        +    "type": "integer"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / exclude_transfers
        Added value: +{
        +  "description": "Exclude transfer transactions (default true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / exclude_zero
        Added value: +{
        +  "description": "Exclude zero-amount transactions (default true)",
        +  "type": "boolean"
        +}
    • Changedpocketsmith_list_transactions_by_account3 fields changed
      • addedInput schema / properties / exclude_category_ids
        Added value: +{
        +  "description": "Category IDs to exclude from results",
        +  "items": {
        +    "type": "integer"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / exclude_transfers
        Added value: +{
        +  "description": "Exclude transfer transactions (default true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / exclude_zero
        Added value: +{
        +  "description": "Exclude zero-amount transactions (default true)",
        +  "type": "boolean"
        +}
    • Changedpocketsmith_list_transactions_by_category3 fields changed
      • addedInput schema / properties / exclude_category_ids
        Added value: +{
        +  "description": "Category IDs to exclude from results",
        +  "items": {
        +    "type": "integer"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / exclude_transfers
        Added value: +{
        +  "description": "Exclude transfer transactions (default true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / exclude_zero
        Added value: +{
        +  "description": "Exclude zero-amount transactions (default true)",
        +  "type": "boolean"
        +}
    • Changedpocketsmith_search_transactions3 fields changed
      • addedInput schema / properties / exclude_category_ids
        Added value: +{
        +  "description": "Category IDs to exclude from results",
        +  "items": {
        +    "type": "integer"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / exclude_transfers
        Added value: +{
        +  "description": "Exclude transfer transactions (default true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / exclude_zero
        Added value: +{
        +  "description": "Exclude zero-amount transactions (default true)",
        +  "type": "boolean"
        +}
  2. 23 tool updatesv0.1.0
    • First observedpocketsmith_categorize_transaction
    • First observedpocketsmith_create_category
    • First observedpocketsmith_create_category_rule
    • First observedpocketsmith_create_event
    • First observedpocketsmith_create_transaction
    • First observedpocketsmith_delete_transaction
    • First observedpocketsmith_get_account
    • First observedpocketsmith_get_budget_summary
    • First observedpocketsmith_get_status
    • First observedpocketsmith_get_transaction
    • First observedpocketsmith_get_trend_analysis
    • First observedpocketsmith_list_accounts
    • First observedpocketsmith_list_budget
    • First observedpocketsmith_list_categories
    • First observedpocketsmith_list_category_rules
    • First observedpocketsmith_list_events
    • First observedpocketsmith_list_labels
    • First observedpocketsmith_list_transaction_accounts
    • First observedpocketsmith_list_transactions
    • First observedpocketsmith_list_transactions_by_account
    • First observedpocketsmith_list_transactions_by_category
    • First observedpocketsmith_search_transactions
    • First observedpocketsmith_update_transaction

TDQS

A3.5/5.0

Scored across 23 tools

Disambiguation5/5

Each tool targets a specific resource and action (e.g., get, list, create, update, search) with no overlapping purposes. Even similar tools like list_transactions and list_transactions_by_account are clearly distinguished by scope.

Naming Consistency5/5

All tools follow a consistent 'pocketsmith_verb_noun' pattern in snake_case, with verbs like get, list, create, update, delete, search, categorize. No mixing of styles.

Tool Count5/5

23 tools is well-scoped for a personal finance management server covering accounts, transactions, categories, budgets, events, labels, trends, and status. Each tool serves a distinct purpose without redundancy.

Completeness4/5

The tool set covers core CRUD operations for transactions and basic operations for categories, events, and accounts. However, missing update/delete for categories and events are minor gaps that agents can work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to help manage your You Need A Budget (YNAB) finances through comprehensive budget operations. Supports account management, transaction handling, category budgeting, split transactions, scheduled payments, and spending analytics with robust error handling and automatic retry logic.
    21
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with YNAB budgets through natural language. Supports managing accounts, categories, transactions, and budget months with 21 tools for comprehensive budget operations.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables interaction with You Need A Budget (YNAB) through their API, allowing users to manage budgets, accounts, categories, transactions, payees, and scheduled transactions through natural language.
    12
    15 npm
    1
    GPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with Actual Budget for personal finance management through natural language, supporting transactions, account balances, budget tracking, spending analysis, and payment searches.
    100 npm
    1
    MIT