MCP App Store
by KeenEthics

Overview

ZeniFlow is a personal finance app for tracking money across wallets. Through ChatGPT a user can log income and expenses in plain language, add a whole list of them at once, correct or delete an entry they got wrong, and move money between their own wallets as a proper double-entry transfer. It also answers questions about where the money went: totals by category, spending trends, monthly and yearly reports, how each budget is tracking, upcoming subscriptions, progress toward saving goals, and who owes what in the user's debt book. Wallets are created in the ZeniFlow app rather than here, so the user always sets the opening balance themselves.

Tools

add_goal_contribution

ChatGPT
Put money into one of the user's saving goals. Use it when the user says they are setting money aside for a goal they already have.

add_transaction

ChatGPT
Add a new financial transaction (income or expense) for the user. Use this when the user says things like 'I spent...', 'I earned...', 'I paid...', 'Add expense...', etc. accountId is optional — uses the default account if not provided. For 5 or more transactions use add_transactions instead (a loop of this tool is slow, burns rate limit and gives the user no chance to review); this tool does not create accounts or categories. The result includes viewUrl — after summarising what was written, show it to the user as a link labelled "View in ZeniFlow" (in the user's language).

add_transactions

ChatGPT
Create multiple transactions in one call, on accounts and categories the user already has — required when adding 5 or more. It never creates accounts or categories: an unknown category rejects the whole batch, so call create_category first and try again. You must send declaredCount and declaredTotal (income positive, expense negative); if they do not match the rows you sent, nothing is written — that check protects the user from a truncated or invented list. The result includes viewUrl — after summarising what was written, show it to the user as a link labelled "View in ZeniFlow" (in the user's language).

create_category

ChatGPT
Create a spending or income category, but only after checking whether one already exists. If a category with the same name already exists it is returned instead of creating a duplicate. Call this when add_transactions rejects a batch because a category is missing. To create a sub-category, pass parentId: the id of a top-level category from get_categories (one whose parentId is null). A sub-category always takes its parent's categoryType, and only two levels exist — a sub-category cannot have children.

create_transfer

ChatGPT
Move money between two of the user's own accounts as a proper double-entry transfer. Never do this with two separate add_transaction calls — that produces two unlinked records and wrong reports. The result includes viewUrl — after summarising what was written, show it to the user as a link labelled "View in ZeniFlow" (in the user's language).

delete_transaction

ChatGPT
Delete a transaction by its ID. This is destructive — only call it after the user has explicitly confirmed they want that specific transaction removed, and pass confirm=true.

get_account_summary

ChatGPT
Get the total balance summary across all accounts (assets, liabilities, net worth). Use when the user asks 'How much money do I have?', 'What's my total balance?', 'Net worth?', etc.

get_accounts

ChatGPT
Get all accounts of the user. Use when the user asks 'What accounts do I have?', 'Show my accounts', 'List my accounts', etc.

get_budgets

ChatGPT
Read the user's budgets with how much has been spent against each one. Call this whenever the user asks what they have left to spend, whether they are over budget, or how a category is tracking this month. Pass budgetId for one budget's detail; omit it for a summary of all active budgets.

get_categories

ChatGPT
Get all available transaction categories (income, expense, debt, loan, etc.). Use this to find the correct categoryId before adding a transaction. Always call this first when adding a transaction and the user hasn't specified a category ID.

get_category_breakdown

ChatGPT
Totals grouped by category for a period. Use this instead of fetching all transactions and adding them up yourself — it is faster, cheaper, and matches what the app shows the user.

get_current_user

ChatGPT
Who the assistant is connected as: the ZeniFlow account (email, name) and which assistant app holds this connection. Call it when the user asks which account they are connected with, and before a large write if they seem unsure which book you are writing into. It never returns balances or transactions.

get_debts

ChatGPT
Money the user owes and money owed to them, grouped by person. This returns names of other people — treat it as sensitive and only surface what the user asked for. Pass contactId for one person's full history.

get_financial_summary

ChatGPT
Get a comprehensive financial summary including total income, expenses, balance, breakdown by account/currency/category. Use when the user asks for an overview of their finances.

get_monthly_report

ChatGPT
Get a detailed monthly financial report with daily breakdown. Use when user asks about a specific month's finances, e.g. 'How was my spending in January?'

get_saving_goals

ChatGPT
The user's saving goals with progress toward each target. Pass goalId for one goal's contribution history.

get_spending_trend

ChatGPT
Spending and income over time, aggregated by the server. Use this for 'how has my spending changed', 'am I spending more than last month', or any question about direction over a period.

get_subscriptions

ChatGPT
The user's recurring subscriptions and what they cost. Pass upcomingDays to get only the ones charging within that many days — use it for 'what is coming out of my account soon'.

get_transaction_stats

ChatGPT
Get financial statistics summary: total income, total expense, balance. Use when the user asks 'How much have I spent?', 'What's my balance?', 'Summary of this month', etc.

get_transactions

ChatGPT
Get a list of transactions for the user. Supports filtering by account, date range, category, etc. Use when the user asks about their spending history, recent transactions, etc.

get_yearly_report

ChatGPT
A full year of income, expense, and net by month. Use it for year-in-review questions or comparing months across a year.

update_transaction

ChatGPT
Change an existing transaction's amount, category, date, or note. Use this to fix a mistake instead of deleting and re-adding — deleting loses the transaction's ID and any debt-tracking link attached to it. The result includes viewUrl — after summarising what was written, show it to the user as a link labelled "View in ZeniFlow" (in the user's language).

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

22

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily