Banking Assistant (Metabind demo)

官方

基于Metabind构建的交互式MCP应用演示:个人财务答案在Claude和ChatGPT中渲染为UI卡片(净资产、支出、订阅),并在iOS/Android应用中原生呈现。

你可以用 Banking Assistant (Metabind Demo) MCP 做什么?

  • 询问月度支出 — 让助手回答“这个月我的钱花到哪里去了?”,并将结果渲染为你的主屏幕。
  • 探索交易详情 — 请求交易列表、支出明细或订阅视图,每个答案都在专用面板中打开。
  • 追踪净资产趋势 — 要求将净资产趋势可视化,以交互式 BindJS 组件形式渲染在合成财务数据之上。
  • 在任何设备上运行 — 通过一份共享定义,在 iOS(apple/)、Android(android/)和 MCP 主机(mcp/)上使用同一个助手。

托管 MCP 服务器

npx add-mcp 'https://mcp.metabind.ai/IgJH0BzIn4LlfnCbcDc7/projects/GLbHk5i3GLlIYcF63XFl'

可安装到 Claude Code、Codex、Cursor 等客户端

文档

Metabind Finance 演示

一个没有聊天记录的个人财务助手。应用在启动时询问一个问题,并将渲染后的答案作为主屏幕;每个后续问题都在专门构建的界面上打开。同一个助手通过一个 MCP App 定义原生运行在 iOS 和 Android 上。

https://github.com/user-attachments/assets/9a840b88-dc88-4ab4-927e-0a8dc651dbe3

在 iOS 应用中运行的 Finance 演示。

什么是 Metabind

Metabind 构建的智能体在您自己的产品界面中作答,而不是在聊天窗口中:交互式界面让客户直接到达他们想要的内容,并使用他们已经熟悉的品牌。它基于应用已有的 UI、设计系统和 API 构建。无需重写。它受到管控,仅渲染您已批准的组件,并在每次渲染时强制执行。而且它是托管的:您定义工具,我们运行服务器。同一个智能体运行在您自己的 iOS、Android 和 Web 应用中,以及 Claude、ChatGPT 和每个 MCP 主机上,基于开放的 MCP 标准。

此演示展示了“在您自己的应用内”这一部分,通过 Assistant SDK 渲染为真实的原生 SwiftUI 和 Jetpack Compose。

在 metabind.ai 免费开始 · 阅读文档

此演示的内容

Finance 是一个刻意不包含记录文本的助手。启动时只问一个问题——“我这个月的钱花到哪里去了?”——其渲染的 MCP 结果就是主屏幕。后续问题来自底部的胶囊导航栏,并在表单中打开。每个回合都被路由到专门构建的界面,而不是在消息列表中滚动。

这与 Retail 演示 的形态相反,后者中对话本身就是产品。相同的 SDK,两种形态——在决定您的产品属于哪一种之前,请先阅读两者。

从头到尾阅读本 README,您将获得:

  • Finance MCP 项目——支出明细、交易列表、订阅和净资产趋势,作为基于合成数据的 BindJS 组件——作为项目安装在您自己的 Metabind 组织中。
  • 针对该项目运行的 iOS 应用。
  • 针对同一项目运行的 Android 应用。

所有财务数据均为合成数据。这里没有任何内容连接到真实银行、读取机密或调用外部主机。

此文件夹中的内容

目录内容
apple/基于 MetabindAI (MetabindAssistant) 的 iOS 应用,SDK 按发布标签固定
android/基于 metabindai-android (MetabindAssistant) 的 Android 应用,SDK 固定在版本目录中
mcp/Finance MCP 项目:BindJS 组件、工具和合成数据源

开始之前

  • 一个 Metabind 账户和组织——在 metabind.ai/signup 注册。

  • metabind CLI,版本 0.9.0 或更高:

    brew install metabindai/tap/metabind
    metabind --version
    
  • 一个 LLM 提供商 API 密钥(Anthropic、OpenAI 或 Google)。Metabind Agent 代理在服务端持有它并运行对话——应用永远不会携带提供商密钥。

  • 对于 iOS:Xcode 26+(应用面向 iOS 17+)。

  • 对于 Android:Android Studio、JDK 17+ 和 GitHub Packages 凭据——GitHub 即使读取公共包也需要身份验证。

第 1 部分 — 安装 MCP 项目

从此目录运行这些命令(finance/)。

  1. 如果您还没有注册,请在 metabind.ai 注册——这将创建您的账户和组织。然后登录 CLI 并选择要安装到的组织:

    metabind auth login
    metabind org list
    metabind use --clear
    metabind use --org <org-id>
    

    use --clear 如果您之前使用过 CLI,这一点很重要。第 3 步中的 install 仅在未绑定项目时创建项目,否则安装到已绑定的项目中——例如在 Retail 演示之后。仅设置组织不会释放之前绑定的项目;metabind status 显示活动范围。

  2. 在创建任何内容之前,先查看树声明了什么:

    metabind inspect --dir mcp
    

    Finance 不声明任何机密和出站调用——inspect 是您从树本身确认这一点的方式。

  3. 安装:

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

    install 为其创建的所有内容生成新的 ID,记录树的来源,并且只创建草稿——在您发布之前,不会有任何内容提供服务。复制它打印的项目 ID。

  4. 将 CLI 范围限定到新项目并设置智能体的 LLM 密钥:

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

    metabind publish
    
  6. 生成应用登录所用的 API 密钥:

    metabind api-key create --name "Banking Assistant"
    

    立即复制该值——它只在创建时显示一次。一个 Metabind API 密钥即可同时验证 Agent 代理和 MCP 服务器。

  7. 可选地,应用项目设置和缩略图。install 创建组件和工具;mcp/metabind.jsonc 中的设置——MCP 指令和智能体系统提示词——由 push 应用:

    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 publish
    

    push 会重写工具草稿,因此请再次发布以发布它们。

    project get 不是装饰。project update 拒绝写入 CLI 最近未读取的实体,以便它能判断项目是否在您不知情的情况下发生了变化:

    CONFLICT: Refusing project update <project-id>: no recent read recorded.
    

    您刚安装的项目从未被读取过,因此如果没有它,第一次更新就会触发此问题。

    在推送之后设置 thumbnailUrl,而不是之前:project update 会替换嵌套的设置对象而不是合并它们,因此在此处写入 settings.mcp 会丢弃 push 刚刚应用的指令。

[!NOTE] 使用 install 打印的组织和项目 ID 配置客户端——是稳定的内部 ID,而不是组织别名。

第 2 部分 — 运行 iOS 应用

  1. 从其模板创建已加入 gitignore 的本地配置:

    cd apple
    cp Config/Local.xcconfig.example Config/Local.xcconfig
    
  2. 填写第 1 部分中的 ID:

    FINANCE_DEMO_ORG_ID = your_stable_internal_org_id
    FINANCE_DEMO_PROJECT_ID = your_project_id
    

    将 FINANCE_DEMO_API_KEY 留空——您将在首次启动时输入密钥。FINANCE_DEMO_BUNDLE_ID 和 DEVELOPMENT_TEAM 仅对签名的设备构建有意义。

  3. 打开项目并在 iOS 17+ 模拟器上运行(⌘R):

    open MetabindFinanceDemo.xcodeproj
    
  4. 在启动屏幕上输入您的 Metabind API 密钥并点击 Start。主屏幕通过询问 “我这个月的钱花到哪里去了?” 来加载。点击建议的后续问题或 Ask anything 在表单中打开下一个答案。

有关签名、Xcode Cloud、TestFlight 以及集成方式,请参阅 iOS 应用的 README。

第 3 部分 — 运行 Android 应用

  1. 为 Gradle 提供 GitHub Packages 凭据,可以是环境变量(GITHUB_ACTOR / GITHUB_TOKEN)或 ~/.gradle/gradle.properties:

    gpr.user=your-github-username
    gpr.key=your-github-token
    
  2. 从其模板创建已加入 gitignore 的本地配置,并填写第 1 部分中的相同 ID:

    cd android
    cp local.properties.example local.properties
    
  3. 在设备或模拟器上构建、安装并启动(API 26+,且 WebView JavaScript 沙箱可用——BindJS 在 androidx.javascriptengine 中运行组件代码):

    ./gradlew :app:installDebug
    adb shell am start -n ai.metabind.finance.demo/.MainActivity
    
  4. 输入您的 Metabind API 密钥并点击 Start——与 iOS 相同的首次启动流程。

有关 Compose 架构以及与 iOS 应用的有意差异,请参阅 Android 应用的 README。

下一步

许可证

Apache 2.0。请参阅仓库根目录下的 LICENSE 和 NOTICE;apple/、android/ 和 mcp/ 带有自己的副本,因为它们旨在被复制出来作为起始模板。