{"ok":true,"site":{"host":"privta-webmcp-demo.mateolafalce.chatgpt.site","url":"https://privta-webmcp-demo.mateolafalce.chatgpt.site/","type":"live","desc":"Privta","tools":[{"name":"describe_data","kind":"answer","impl":"imperative","description":"Confirms that Privta is ready to run private financial SQL summaries in the browser. It does not return account or transaction data.","title":"Describe data","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_latest_expense","kind":"act","impl":"imperative","description":"Runs a local DuckDB SQL query for the latest expense, renders it in the Privta document, and returns the transaction summary.","title":"Show latest expense","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_smallest_expense","kind":"act","impl":"imperative","description":"Runs fixed local SQL for the historical debit with the smallest absolute amount. Expenses are debits, including transfers; it renders and returns the result.","title":"Show smallest expense","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_largest_expense","kind":"act","impl":"imperative","description":"Runs fixed local SQL for the historical debit with the largest absolute amount. Expenses are debits, including transfers; it renders and returns the result.","title":"Show largest expense","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_transactions","kind":"answer","impl":"imperative","description":"Runs fixed local SQL to find the newest matching transactions by date, category, merchant text, or absolute amount. It returns at most 50 rows and renders the matching summary.","title":"Search transactions","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"categories":{"type":"array","items":{"type":"string"}},"merchant_contains":{"type":"string","maxLength":120},"min_amount":{"type":"number","minimum":0},"max_amount":{"type":"number","minimum":0},"limit":{"type":"integer","minimum":1,"maximum":50}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_spending_by_month","kind":"act","impl":"imperative","description":"Runs fixed local SQL to group debit spending by month, ending on the newest available transaction date.","title":"Show monthly spending","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"months":{"type":"integer","enum":[3,6,12,18],"description":"Number of latest calendar months to include."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_recent_spending","kind":"act","impl":"imperative","description":"Runs fixed local SQL to compare debit spending in the latest available 30 days with the preceding 30 days.","title":"Compare recent spending","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_category_breakdown","kind":"act","impl":"imperative","description":"Runs the fixed local spending summary grouped by category. Expenses are debit transactions, including transfers.","title":"Show category breakdown","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"period":{"type":"string","enum":["last_7_days","last_30_days","all_available"]},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"recurring_only":{"type":"boolean"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_recurring_transactions","kind":"act","impl":"imperative","description":"Runs fixed local SQL to group recurring debit transactions by merchant. It reports observed history and does not infer a future payment date.","title":"Show recurring transactions","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_merchant_summary","kind":"act","impl":"imperative","description":"Runs fixed local SQL to group debit spending by merchant, optionally filtering merchant text or a date range.","title":"Show merchant summary","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"merchant_contains":{"type":"string","maxLength":120},"limit":{"type":"integer","minimum":1,"maximum":25}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_account_balance","kind":"act","impl":"imperative","description":"Returns the current local balance for one or all Privta accounts and renders it in the document. It does not reconstruct a historical balance from transactions.","title":"Show account balance","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"account_id":{"type":"string","enum":["checking"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_unusual_expenses","kind":"act","impl":"imperative","description":"Runs fixed local SQL to flag debit transactions at least two population standard deviations above the historical debit average. This is not a fraud decision.","title":"Show unusual expenses","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":25}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_transaction_by_recency","kind":"act","impl":"imperative","description":"Runs fixed local SQL for an ordinal transaction such as the tenth most recent transaction, renders it in the Privta document, and returns the transaction summary.","title":"Show transaction by recency","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"position":{"type":"integer","minimum":1,"maximum":100,"description":"The requested 1-based position among all transactions, ordered newest first."}},"required":["position"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_financial_summary","kind":"act","impl":"imperative","description":"Runs a local DuckDB SQL summary for spending, income, or cash flow, renders the result in the Privta document, and returns the summary. Use last_7_days for last week and last_30_days for last month.","title":"Show financial summary","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"title":{"type":"string","maxLength":120,"description":"Optional concise user-facing title."},"metric":{"type":"string","enum":["spending","income","net_cash_flow"]},"period":{"type":"string","enum":["last_7_days","last_30_days","all_available"],"description":"Use last_7_days for last week and last_30_days for last month."},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Optional inclusive date in YYYY-MM-DD."},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Optional inclusive date in YYYY-MM-DD."},"categories":{"type":"array","items":{"type":"string"}},"merchant_contains":{"type":"string"},"recurring_only":{"type":"boolean"}},"required":["metric"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"make_transfer","kind":"transact","impl":"imperative","description":"Transfers USD from Privta checking to a saved contact. This changes fictional funds; ChatGPT Desktop must obtain user approval before this tool executes.","title":"Make a transfer","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","properties":{"contact_id":{"type":"string","enum":["emma","noah"]},"amount":{"type":"number","minimum":0.01},"memo":{"type":"string"}},"required":["contact_id","amount","memo"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"pay_service","kind":"transact","impl":"imperative","description":"Pays a pending USD service bill from Privta checking. ChatGPT Desktop must obtain user approval before this tool executes.","title":"Pay a service","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","properties":{"service_id":{"type":"string"},"amount":{"type":"number","minimum":0.01}},"required":["service_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"dispute_charge","kind":"act","impl":"imperative","description":"Starts a dispute for a transaction. ChatGPT Desktop must obtain user approval before this tool executes.","title":"Dispute a charge","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","properties":{"transaction_id":{"type":"string"},"reason":{"type":"string"},"details":{"type":"string"}},"required":["transaction_id","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_budget_rule","kind":"act","impl":"imperative","description":"Creates a monthly USD budget alert. ChatGPT Desktop must obtain user approval before this tool executes.","title":"Create budget rule","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","properties":{"category":{"type":"string"},"monthly_limit":{"type":"number","minimum":0.01},"action":{"type":"string","enum":["notify"]}},"required":["category","monthly_limit","action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Finance & Crypto","favicon":"/favicons/privta-webmcp-demo.mateolafalce.chatgpt.site.png","apiSurface":"spec","toolCount":18}}