Skip to main content
Glama

Pennylane: Categorise a bank transaction

pennylane_categorise_transaction

Pennylane: Set the categories of a bank transaction, with a weight for each. Replaces the categories of one bank transaction and returns the new list. Each category has a weight from 0 to 1; weights inside one category group must sum to 1, while categories from different groups combine freely. The call fails when the weights do not balance. It reaches nobody and changes only the analysis of one transaction, so it does not ask for your OK, and you undo it by calling it again with the earlier categories, which list_transactions shows. Needs the user's Cotlet API key with access to this app.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoriesYesList of category_id with weight as a string from 0 to 1.
transaction_idYesTransaction ID from list_transactions.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, and the description stays consistent with that while adding real context: categories are replaced (not appended), weights must sum to 1 within a group, the call fails on unbalanced weights, no confirmation prompt, and the exact undo path. It also discloses the required Cotlet API key scope.

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?

Front-loaded with the core action and return value, and each subsequent sentence adds information (weight rules, failure mode, undo, auth). Some phrasing is indirect ('It reaches nobody and changes only the analysis of one transaction'), costing a bit of tightness.

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 2-parameter mutation with no output schema, the description covers everything the agent needs: replacement semantics, weight validation rules, failure behavior, undo procedure, and authentication requirements. No output schema exists, so return-value coverage ('returns the new list') 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% and documents both parameters, so baseline is 3. The description adds genuine meaning beyond the schema by explaining the weight semantics (0–1 range, per-group sum of 1, cross-group freedom) and pointing transaction_id at list_transactions as its source.

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?

States a specific verb (set/replace the categories), resource (one bank transaction), and scope (with per-category weights), plus what it returns (the new list). An agent can distinguish it from pennylane_match_transaction and pennylane_list_categories without opening schemas.

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?

Gives clear operational context: the call fails when weights don't balance, changes only one transaction's analysis, requires no confirmation, and is undone by re-calling with earlier categories from list_transactions. It does not explicitly name a sibling alternative or exclusion (e.g., match_transaction), so it falls short of full when/when-not guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources