Banking Assistant (Metabind demo)
공식Metabind 기반으로 구축된 인터랙티브 MCP 앱 데모: 개인 금융 답변이 UI 카드(순자산, 지출, 구독)로 렌더링되어 Claude와 ChatGPT, 그리고 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에서 응답하는 에이전트를 구축합니다: 고객이 원하는 곳으로 바로 안내하는 인터랙티브 인터페이스, 이미 알고 있는 브랜드로 제공됩니다. 앱이 이미 보유한 UI, 디자인 시스템, API로 구축됩니다. 재작성 없이. 승인된 컴포넌트만 렌더링하며, 모든 렌더링에서 이를 강제합니다. 그리고 호스팅 방식입니다: 도구를 정의하면 서버는 저희가 실행합니다. 동일한 에이전트가 자체 iOS, Android, 웹 앱과 Claude, ChatGPT, 모든 MCP 호스트에서 오픈 MCP 표준으로 실행됩니다.
이 데모는 자체 앱 내부에서 실행되는 부분을 보여주며, Assistant SDK를 통해 실제 네이티브 SwiftUI와 Jetpack Compose로 렌더링됩니다.
이 데모의 내용
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에서 가입하세요.
-
metabindCLI, 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/)에서 실행하세요.
-
아직 가입하지 않았다면 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은(는) 활성 범위를 보여줍니다. -
무엇이든 생성하기 전에 트리가 선언하는 내용을 확인하세요:
metabind inspect --dir mcpFinance는 비밀과 외부 호출을 선언하지 않습니다 —
inspect은(는) 트리 자체에서 이를 확인하는 방법입니다. -
설치:
metabind install --dir mcp --name "Banking Assistant" --yesinstall은(는) 생성하는 모든 항목에 새 ID를 부여하고, 트리가 어디서 왔는지 기록하며, 초안만 생성합니다 — 게시할 때까지 트래픽을 제공하지 않습니다. 출력된 프로젝트 ID를 복사하세요. -
CLI를 새 프로젝트로 범위를 지정하고 에이전트의 LLM 키를 설정하세요:
metabind use --project <project-id> echo $ANTHROPIC_API_KEY | metabind agent set --provider anthropic --api-key-stdin -
게시:
metabind publish -
앱이 로그인하는 데 사용하는 API 키를 생성:
metabind api-key create --name "Banking Assistant"지금 값을 복사하세요 — 생성 시 한 번만 표시됩니다. 하나의 Metabind API 키가 Agent 프록시와 MCP 서버 모두를 인증합니다.
-
선택적으로 프로젝트 설정과 썸네일을 적용하세요.
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 publishpush은(는) 도구 초안을 다시 작성하므로, 이를 릴리스하려면 한 번 더 게시하세요.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 앱 실행
-
템플릿에서 gitignored 로컬 구성을 생성하세요:
cd apple cp Config/Local.xcconfig.example Config/Local.xcconfig -
1부의 ID를 입력하세요:
FINANCE_DEMO_ORG_ID = your_stable_internal_org_id FINANCE_DEMO_PROJECT_ID = your_project_idFINANCE_DEMO_API_KEY은(는) 비워 두세요 — 첫 실행 시 키를 입력합니다.FINANCE_DEMO_BUNDLE_ID과(와)DEVELOPMENT_TEAM은(는) 서명된 기기 빌드에만 중요합니다. -
프로젝트를 열고 iOS 17+ 시뮬레이터에서 실행하세요 (⌘R):
open MetabindFinanceDemo.xcodeproj -
실행 화면에서 Metabind API 키를 입력하고 시작을 탭하세요. 홈 화면은 "이번 달 내 돈은 어디로 갔을까?" 질문으로 로드됩니다. 제안된 후속 질문이나 무엇이든 물어보기를 탭하여 시트에서 다음 답변을 엽니다.
서명, Xcode Cloud, TestFlight 및 통합 작동 방식에 대해서는 iOS 앱의 README를 참조하세요.
3부 — Android 앱 실행
-
GitHub Packages에 대한 Gradle 자격 증명을 환경 변수(
GITHUB_ACTOR/GITHUB_TOKEN) 또는~/.gradle/gradle.properties에 제공하세요:gpr.user=your-github-username gpr.key=your-github-token -
템플릿에서 gitignored 로컬 구성을 생성하고 1부의 동일한 ID를 입력하세요:
cd android cp local.properties.example local.properties -
기기 또는 에뮬레이터(API 26+, WebView JavaScript Sandbox 사용 가능 — BindJS는
androidx.javascriptengine에서 컴포넌트 코드를 실행)에서 빌드, 설치, 실행하세요:./gradlew :app:installDebug adb shell am start -n ai.metabind.finance.demo/.MainActivity -
Metabind API 키를 입력하고 시작을 탭하세요 — iOS와 동일한 첫 실행 흐름입니다.
Compose 아키텍처와 iOS 앱과의 의도적인 차이점에 대해서는 Android 앱의 README를 참조하세요.
다음 단계
- MCP 프로젝트 편집 — 컴포넌트 변경, 검증, 푸시, 게시, 각 카드의 수치가 일치하도록 유지하는 조정 스크립트 포함.
- Retail 데모 — 반대 형태의 동일한 SDK: 대화 기록이 제품입니다.
- Metabind for Apple 및 Metabind for Android — SDK 설치 및 API 참조.
- docs.metabind.ai — 전체 가이드.
라이선스
Apache 2.0. 저장소 루트의 LICENSE 및 NOTICE을(를) 참조하세요; apple/, android/, mcp/은(는) 스타터로 복사되도록 의도되었으므로 자체 사본을 보유합니다.