Banking Assistant (Metabind demo)

ai.metabind由 metabind.ai 发布官方发布者v0.0.17更新于 Oct 24, 2026

Demo personal-finance MCP App: spending, subscriptions, and net worth as interactive UI.

已验证Streamable HTTP可网页运行金融数据与分析

概览

AI 生成的概览

一个演示用个人理财 MCP 应用,以交互式 UI 卡片返回基于合成数据的支出、订阅和净资产信息。

可以做什么
获取净资产历史与账户余额,并渲染净资产趋势卡片,可按年或按月以图表或柱状图对比。获取分类支出及上期对比,或渲染构成条与分类排名列表。识别周期性扣款,并渲染订阅卡片,含每月总额、周期、下次扣款日期和涨价标记。按类别或商户获取约十二个月的原始交易,或渲染某类别或商户的交易列表。为没有专属卡片的任意时间序列指标渲染通用趋势卡片。
适用场景
适合试用或演示 Metabind 以 UI 为先的 MCP 应用模式,或用于原型验证以渲染卡片而非聊天文本作答的理财助手。由于数据为合成数据,不适用于真实财务数据。
运行要求
位于 mcp.metabind.ai 的远程 streamable HTTP 端点;未声明认证、环境变量或请求头。README 中的自托管流程需要 Metabind 账户与组织、metabind CLI、由服务端保管的 LLM 提供商 API 密钥,移动端演示还需 Xcode 或 Android Studio 及 GitHub Packages 凭据。
安装前请注意
所有财务数据均为合成数据,不连接真实银行,结果不应视为真实财务状况。README 的安装流程会创建草稿、发布项目并生成仅显示一次的 Metabind API 密钥;LLM 提供商密钥由 Metabind 代理保存在服务端。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Banking Assistant (Metabind demo),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/ai.metabind%2Fbanking-assistant/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "banking-assistant-metabind-demo": {
      "type": "http",
      "url": "https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFl"
    }
  }
}

README

Metabind 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

DirectoryContents
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 metabind CLI, 0.9.0 or newer:

    sh
    brew install metabindai/tap/metabindmetabind --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/).

  1. 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:

    sh
    metabind auth loginmetabind org listmetabind use --clearmetabind use --org <org-id>

    use --clear matters if you have used the CLI before. install in 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 status shows the active scope.

  2. See what the tree declares before creating anything:

    sh
    metabind inspect --dir mcp

    Finance declares no secrets and no outbound calls — inspect is how you confirm that from the tree itself.

  3. Install:

    sh
    metabind install --dir mcp --name "Banking Assistant" --yes

    install mints 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.

  4. Scope the CLI to the new project and set the agent's LLM key:

    sh
    metabind use --project <project-id>echo $ANTHROPIC_API_KEY | metabind agent set --provider anthropic --api-key-stdin
  5. Publish:

    sh
    metabind publish
  6. Mint the API key the apps sign in with:

    sh
    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.

  7. Optionally, apply the project settings and thumbnail. install creates the components and tools; the settings in mcp/metabind.jsonc — the MCP instructions and the agent system prompt — are applied by push:

    sh
    metabind asset upload mcp/assets/files/project-thumbnail.pngmetabind sync repair --out mcp --org <org-id> --project <project-id>metabind push --out mcpmetabind project get <project-id>metabind project update <project-id> \  --data '{"settings":{"thumbnailUrl":"<url from asset upload>"}}'metabind publish

    push rewrites the tool drafts, so publish once more to release them.

    The project get is not decoration. project update refuses 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 thumbnailUrl after pushing, not before: project update replaces nested settings objects rather than merging them, so writing settings.mcp here would drop the instructions push just applied.

[!NOTE] Configure the clients with the org and project ids that install printed — the stable internal ids, not the organization slug.

Part 2 — run the iOS app

  1. Create the gitignored local configuration from its template:

    sh
    cd applecp Config/Local.xcconfig.example Config/Local.xcconfig
  2. Fill in the ids from Part 1:

    xcconfig
    FINANCE_DEMO_ORG_ID = your_stable_internal_org_idFINANCE_DEMO_PROJECT_ID = your_project_id

    Leave FINANCE_DEMO_API_KEY empty — you'll enter the key on first launch. FINANCE_DEMO_BUNDLE_ID and DEVELOPMENT_TEAM matter only for signed device builds.

  3. Open the project and run it (⌘R) on an iOS 17+ simulator:

    sh
    open MetabindFinanceDemo.xcodeproj
  4. 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

  1. Give Gradle credentials for GitHub Packages, either as environment variables (GITHUB_ACTOR / GITHUB_TOKEN) or in ~/.gradle/gradle.properties:

    properties
    gpr.user=your-github-usernamegpr.key=your-github-token
  2. Create the gitignored local configuration from its template, and fill in the same ids from Part 1:

    sh
    cd androidcp local.properties.example local.properties
  3. Build, install, and launch on a device or emulator (API 26+, with the WebView JavaScript Sandbox available — BindJS runs component code in androidx.javascriptengine):

    sh
    ./gradlew :app:installDebugadb shell am start -n ai.metabind.finance.demo/.MainActivity
  4. 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

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.

来源:finance/README.md,提交 f6d91f6

工具

9

get_net_worth

Net worth history + account balances. Numbers to reason with — to display, use net_worth_trend.

输入参数periodendDategroupBysummarystartDate

get_spending_breakdown

Categorized spending + prior-period comparison. Numbers to reason with — to display, use spending_breakdown.

输入参数periodsummary

get_subscriptions

Recurring-charge detection. Numbers to reason with — to display, use the subscriptions card.

输入参数status

get_transactions

Raw transactions by category or merchant, ~12 months of history. Numbers to reason with — to display, use transaction_list.

输入参数sortlimitperiodendDatecategorymerchantstartDate

net_worth_trend

Net Worth Trend

Render net_worth_trend: Net worth: current total, change over the period, a trend chart, and the account balances behind it. It loads its own data. To compare periods against each other pass chartStyle:'bar' plus groupBy ('year' for this-year-vs-last-year, 'month' for month-by-month) — each bar is that period's closing balance.

输入参数noteperiodendDategroupBynextStepsstartDatechartStyle

spending_breakdown

Spending Breakdown

Render spending_breakdown: Spending split by category for a period: a composition bar plus a ranked category list. It loads its own data — pass the period alone for the whole picture, which is what a broad 'where did my money go' question wants. Use highlight only on a follow-up about particular categories; it dims everything else, so on an opening question it hides most of the answer.

输入参数noteperiodhighlightnextStepsdrillPrompt

subscriptions

Subscriptions

Render subscriptions: Recurring charges: total monthly cost and a row per subscription with its cadence, next charge date, and New / price-increase flags. It loads its own data.

输入参数noteviewviewsstatusnextSteps

transaction_list

Transaction List

Render transaction_list: Individual purchases for a category or a merchant: the window total plus the matching transactions. It loads its own data. Plain terms like 'restaurants', 'groceries' or 'gas' resolve to categories; omit both filters for all spending. Do NOT use this when the user asks how much they spent over the last 3, 6 or 12 months — that is a period comparison, so use trend_card with chartStyle:'bar' instead.

输入参数noteviewlimitviewsperiodendDatecategorymerchantnextStepsstartDate

trend_card

Trend Card

Render trend_card: Any metric over time that has no dedicated card — one category's spend by month, a series you computed. Points are {label, value} in display order. Set upIsGood=false for cost-like metrics. Use chartStyle:'bar' whenever the user compares periods — month by month, or over the last 3/6/12 months; give each point a `series` name (repeating the label once per series) to stack them with a legend. Pass `items` to list the composition behind the number.

输入参数noteitemsstarttitlechangepointscurrentupIsGoodnextStepschange_pctchartStyleperiodLabel另有 2 个

版本历史

1
  1. v0.0.17最新Sep 27, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Metabind 集成