Resources and prompts
Besides tools, the Paisa MCP server (paisa-mcp 0.2.0+) exposes resources (read-only reference data an assistant can attach or cache instead of calling a list tool every turn) and prompts (ready-made workflows that tell the assistant which tools to call, in order). How they show up depends on the client: Claude Desktop lists resources under the attach menu and prompts as slash-style commands.
Resources
Section titled “Resources”All resources are JSON (application/json). Each one runs the same code as its tool equivalent, so it
calls the same API endpoint and returns the same data.
| URI | Same as | Contents |
|---|---|---|
paisa://categories | list_entities entity=categories | Category tree: id, slug, name, type, children |
paisa://bank-accounts | list_entities entity=bank_accounts | Bank accounts and cards: id, name, bank, type, last4, owner |
paisa://persons | list_entities entity=persons | People you send money to or receive it from |
paisa://merchants | list_entities entity=merchants | Merchants and their category, capped at 500 (past the cap the result has a truncated note; look others up with list_entities entity=merchants rawId) |
paisa://household | get_settings section=household | Household name, currency, locale, owner labels, members |
paisa://profile | get_settings section=profile | Your name, email and owner slug |
paisa://transactions/{id} (template) | get_transaction | One transaction by UUID |
Private mode: resources decrypt locally with your PIN-derived key, exactly like the tools do. They
never contain ciphertext or key material: a person record that can’t be decrypted with your key comes
back with cipher: null and undecrypted: true.
Prompts
Section titled “Prompts”| Prompt | Arguments | What it does |
|---|---|---|
monthly_review | month (YYYY-MM, optional) | Alerts, monthly report, spending trends and budget vs actual, biggest transactions, upcoming dues, then a summary. Read-only; offers generate_monthly_report if you want it saved. |
import_statement | filePath (optional) | Pick or create the account, preview_import, confirm, import_statement, credit-card settlement check, sync_recurring, then categorize. |
categorize_uncategorized | startDate, endDate (optional) | get_uncategorized_groups, propose a category per group, confirm, categorize_groups (dry run first), backfill_persons. |
budget_check | month (YYYY-MM, optional) | Budgets vs spending for the month, flags categories over 80% / 100%, and only calls set_budget for changes you approve. |
Prompts contain no data of yours; they only name tools. Every prompt that can write tells the assistant to show you what will change and wait for your confirmation first.
Confirmations
Section titled “Confirmations”When your MCP client supports elicitation, paisa asks you before it changes anything irreversibly. Recent Claude clients support it.
| Tool | Asks when | Question |
|---|---|---|
delete_transactions | always | ”Permanently delete 3 transactions?” (for filters: dates, type and amount range; search text is never shown) |
delete_entity | always | ”Permanently delete 1 merchant?” |
merge_merchants | always | ”Merge 2 duplicate merchants into the one you’re keeping?” |
set_encryption_mode | always | ”Switch encryption mode to private?” |
manage_debt | action: settle | ”Settle this debt? It will be closed with a remaining balance of ₹500.” |
Bulk writes ask only when they would change more than 20 transactions: “Update 57 transactions in one go?”
| Tool | Count comes from |
|---|---|
categorize_groups | its own dry run (rows in the matched groups) |
backfill_persons | its own dry run (transactions to link) |
bulk_categorize_transactions, bulk_link_entity | the number of links passed |
auto_categorize_jev doesn’t ask, because its dry run would call Jev a second time. Use its dryRun to preview.
- Nothing is written until you accept. Declining or cancelling changes nothing.
- The answer is tied to the exact request. If the request changes, you’re asked again.
- Questions show counts, dates, amounts and types only. They never show transaction text, merchant or person names, or decrypted private-mode data.
- Clients without elicitation keep the older flags (
confirmDeleteAll,dryRun) and Claude’s own confirmation.
Progress
Section titled “Progress”Long writes report progress to clients that ask for it (MCP progress notifications):
import_statementreports each 200-row batch.backfill_personsreports each 25-link chunk.categorize_groupsreports rows written out of the total.
Clients that don’t ask get nothing extra.