Skip to content

About

Budget Bench - human+agent household budget workbench built on WebMCP. Every agent mutation is a proposal the human approves. Hackathon entry: webmcp.devpost.com

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Budget Bench 🧾🤝

A household budget you plan with your browser agent — it proposes, you approve.

Built for the WebMCP Challenge. Open source under the MIT license.

Why this is a WebMCP-native app

Budgeting a household is a shared decision. Handing an AI agent full write access to your money is wrong; making it click through a UI like a human is worse. Budget Bench gives the agent structured tools instead — and keeps the human in the loop at the only moment that matters: approving the change.

  • Agent tools, not agent autonomy. The agent reads the budget with get_budget_summary, reasons about it, and uses find_savings, set_category_budget, add_category, record_spend or propose_plan to act.
  • Every mutation is a proposal. Tools never write to the budget directly. Each call lands in the human-visible Proposal tray with a plain-English summary and the agent’s reason.
  • One shared context. The page state is the app. There is no backend, no account, no database — the agent and the human work on the same live page state in the same tab, which is exactly the collaboration model WebMCP enables and backend integrations cannot.

The demo flow (2 minutes)

  1. Open the site in ChatGPT’s in-app browser (or Chrome with WebMCP enabled).
  2. Ask: “Our energy bill is going up — add £35 to utilities and find the money from discretionary categories.”
  3. Watch the agent call get_budget_summary, then propose: utilities +£35, entertainment −£20, eating out −£15 — all pending in the tray, budget untouched.
  4. Ask: “What can we save if we tighten the belt by £150 a month?” → propose_plan scales discretionary categories and sets savings, still pending.
  5. The human reviews the tray, approves the good parts, rejects the rest. The activity log shows every proposal and every decision.

Run it

Live demo: https://budget-bench.surge.sh

Pure static site — no build step, no dependencies.

# any static server works
python3 -m http.server 8080
# open http://localhost:8080

To use the agent tools you need a WebMCP-capable client (ChatGPT in-app browser, or Chrome with WebMCP enabled). Without one, the bench still works fully by hand.

Tools registered

Tool Type What it does
get_budget_summary read Full budget state, category statuses, pending proposals
find_savings propose Scans over/tight discretionary categories and proposes trims → savings
set_category_budget propose Propose a new monthly amount for a category
add_category propose Propose a new category
record_spend propose Propose recording a spend against a category
propose_plan propose Propose a full rebalance to hit a savings target

All mutating tools return {status: "proposed"} — the budget only changes when a human approves in the tray.

Implementation notes

  • WebMCP registration follows the webmachinelearning/webmcp draft: document.modelContext.registerTool({ name, description, inputSchema, execute }).
  • State is a single object rendered by one render(); proposals carry apply closures so approval is atomic and the tray is a natural transaction log.
  • Sample household figures are fictional demo data.
  • No external requests: fonts, styles and logic are inline; nothing leaves the browser.

License

MIT — see LICENSE.

About

Budget Bench - human+agent household budget workbench built on WebMCP. Every agent mutation is a proposal the human approves. Hackathon entry: webmcp.devpost.com

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages