Banking Assistant (Metabind demo)
VerifiedFeaturedRemoteAbout Banking Assistant (Metabind demo)
Banking Assistant is a Metabind demo that presents personal-finance answers as purpose-built app screens rather than a chat transcript. It runs on iOS and Android using synthetic financial data.
Key features
- 01Transcript-free finance interface
- 02Spending and transaction views
- 03Subscription and net-worth views
- 04Native iOS and Android apps
- 05Synthetic financial data
Use cases
- 01Reviewing monthly spending breakdowns
- 02Viewing transactions and subscriptions
- 03Checking net-worth trends
MCP support
The demo includes a Finance MCP project with tools and BindJS components that render answers as UI cards. The same MCP project serves the iOS and Android apps.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFlclaude mcp add --transport http banking-assistant-metabind-demo https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFl{"mcpServers":{"banking-assistant-metabind-demo":{"type":"http","url":"https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFl"}}}Open in Cursor{"servers":{"banking-assistant-metabind-demo":{"type":"http","url":"https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFl"}}}Open in VS Code{"mcpServers":{"banking-assistant-metabind-demo":{"type":"http","url":"https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFl"}}}{"mcpServers":{"banking-assistant-metabind-demo":{"serverUrl":"https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFl"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
9| Parameter | Type | Required | Description |
|---|---|---|---|
| period | enum | No | How far back the trend goes. Ignored when startDate/endDate are given.7d | 30d | mtd | lastMonth | 3mo | 6mo | ytd | 1y | all |
| endDate | string | No | Range end, YYYY-MM-DD. Defaults to today. |
| groupBy | enum | No | Granularity of the returned series. Each point carries that period's CLOSING balance. 'auto' picks a readable granularity for the span; set it explicitly to compare periods against each other — 'year' over a two-year range gives one point per year, 'month' gives one per month.auto | day | week | month | quarter | year |
| summary | boolean | No | Omit the `points` series and return only the headline figures and accounts. Use this when you want the numbers to comment on rather than to chart — it is a fraction of the size of a full result. |
| startDate | string | No | Range start, YYYY-MM-DD. Defaults to a year before endDate. |
Details
From the project READMEMetabind Finance demo
A personal-finance assistant with no chat transcript. The app asks one question on launch and uses the rendered answer as its home screen; every follow-up opens on a purpose-built surface. The same assistant runs natively on iOS and Android from one MCP App definition.
https://github.com/user-attachments/assets/9a840b88-dc88-4ab4-927e-0a8dc651dbe3
The Finance demo, running in the iOS app.
What is Metabind
Metabind builds agents that answer in your product's own UI, not in a chat window: interactive interfaces that take customers straight to what they came for, in the brand they already know. It's built from the UI, design system, and APIs the app already has. No rewrite. It's governed, rendering only components you've approved, enforced on every render. And it's hosted: you define the tools, we run the server. The same agent runs inside your own iOS, Android, and web apps, and across Claude, ChatGPT, and every MCP host, on the open MCP standard.
This demo shows the inside-your-own-app half, rendered as real native SwiftUI and Jetpack Compose through the Assistant SDK.
Start free at metabind.ai · Read the docs
What this demo is
Finance is a deliberately transcript-free assistant. One question is asked on launch — "Where did my money go this month?" — and its rendered MCP result is the home screen. Later questions come from a pill rail at the bottom and open in sheets. Each turn is routed to a purpose-built surface instead of scrolling by in a message list.
It's the opposite shape to the Retail demo, where the conversation itself is the product. Same SDKs, two shapes — read both before deciding which one your product is.
Working through this README end to end, you get:
- The Finance MCP project — spending breakdowns, transaction lists, subscriptions, and net-worth trends as BindJS components over synthetic data — installed as a project in your own Metabind organization.
- The iOS app running against that project.
- The Android app running against the same project.
All financial data is synthetic. Nothing here connects to a real bank, reads a secret, or calls an external host.
What's in this folder
| Directory | Contents |
|---|---|
apple/ | iOS app on MetabindAI (MetabindAssistant), SDK pinned by release tag |
android/ | Android app on metabindai-android (MetabindAssistant), SDK pinned in the version catalog |
mcp/ | The Finance MCP project: BindJS components, tools, and the synthetic feed |
Before you start
-
A Metabind account and organization — sign up at metabind.ai/signup.
-
The
metabindCLI, 0.9.0 or newer:brew install metabindai/tap/metabind metabind --version -
An LLM provider API key (Anthropic, OpenAI, or Google). The Metabind Agent proxy holds it server-side and runs the conversation with it — the apps never ship a provider key.
-
For iOS: Xcode 26+ (the app targets iOS 17+).
-
For Android: Android Studio, JDK 17+, and GitHub Packages credentials — GitHub requires authentication even to read a public package.
Part 1 — install the MCP project
Run these from this directory (finance/).
-
Sign up at metabind.ai if you haven't already — that creates your account and organization. Then sign in to the CLI and pick the organization to install into:
metabind auth login metabind org list metabind use --clear metabind use --org <org-id>use --clearmatters if you have used the CLI before.installin step 3 creates a project only when none is bound, and installs into the bound one otherwise — after the Retail demo, for instance. Setting the org alone does not release a project bound earlier;metabind statusshows the active scope. -
See what the tree declares before creating anything:
metabind inspect --dir mcpFinance declares no secrets and no outbound calls —
inspectis how you confirm that from the tree itself. -
Install:
metabind install --dir mcp --name "Banking Assistant" --yesinstallmints fresh ids for everything it creates, records where the tree came from, and creates drafts only — nothing serves traffic until you publish. Copy the project id it prints. -
Scope the CLI to the new project and set the agent's LLM key:
metabind use --project <project-id> echo $ANTHROPIC_API_KEY | metabind agent set --provider anthropic --api-key-stdin -
Publish:
metabind publish -
Mint the API key the apps sign in with:
metabind api-key create --name "Banking Assistant"Copy the value now — it is shown once, at creation. One Metabind API key authenticates both the Agent proxy and the MCP server.
-
Optionally, apply the project settings and thumbnail.
installcreates the components and tools; the settings inmcp/metabind.jsonc— the MCP instructions and the agent system prompt — are applied bypush:metabind asset upload mcp/assets/files/project-thumbnail.png metabind sync repair --out mcp --org <org-id> --project <project-id> metabind push --out mcp metabind project get <project-id> metabind project update <project-id> \ --data '{"settings":{"thumbnailUrl":"<url from asset upload>"}}' metabind publishpushrewrites the tool drafts, so publish once more to release them.The
project getis not decoration.project updaterefuses to write an entity the CLI has not read recently, so that it can tell the project hasn't moved underneath you:CONFLICT: Refusing project update <project-id>: no recent read recorded.A project you just installed has never been read, so the first update trips this without it.
Set
thumbnailUrlafter pushing, not before:project updatereplaces nested settings objects rather than merging them, so writingsettings.mcphere would drop the instructionspushjust applied.
Note
Configure the clients with the org and project ids that
installprinted — the stable internal ids, not the organization slug.
Part 2 — run the iOS app
-
Create the gitignored local configuration from its template:
cd apple cp Config/Local.xcconfig.example Config/Local.xcconfig -
Fill in the ids from Part 1:
FINANCE_DEMO_ORG_ID = your_stable_internal_org_id FINANCE_DEMO_PROJECT_ID = your_project_idLeave
FINANCE_DEMO_API_KEYempty — you'll enter the key on first launch.FINANCE_DEMO_BUNDLE_IDandDEVELOPMENT_TEAMmatter only for signed device builds. -
Open the project and run it (⌘R) on an iOS 17+ simulator:
open MetabindFinanceDemo.xcodeproj -
Enter your Metabind API key on the launch screen and tap Start. The home screen loads by asking "Where did my money go this month?". Tap a suggested follow-up or Ask anything to open the next answer in a sheet.
For signing, Xcode Cloud, TestFlight, and how the integration works, see the iOS app's README.
Part 3 — run the Android app
-
Give Gradle credentials for GitHub Packages, either as environment variables (
GITHUB_ACTOR/GITHUB_TOKEN) or in~/.gradle/gradle.properties:gpr.user=your-github-username gpr.key=your-github-token -
Create the gitignored local configuration from its template, and fill in the same ids from Part 1:
cd android cp local.properties.example local.properties -
Build, install, and launch on a device or emulator (API 26+, with the WebView JavaScript Sandbox available — BindJS runs component code in
androidx.javascriptengine):./gradlew :app:installDebug adb shell am start -n ai.metabind.finance.demo/.MainActivity -
Enter your Metabind API key and tap Start — the same first-launch flow as iOS.
For the Compose architecture and the deliberate divergences from the iOS app, see the Android app's README.
Where to next
- Edit the MCP project — change a component, validate, push, and publish, with the reconcile scripts that keep every card's figures agreeing.
- The Retail demo — the same SDKs with the opposite shape: the transcript is the product.
- Metabind for Apple and Metabind for Android — SDK installation and API reference.
- docs.metabind.ai — the full guides.
License
Apache 2.0. See LICENSE and NOTICE at the
repository root; apple/, android/, and mcp/ carry their own copies
because they are meant to be copied out as starters.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.