Frequently Asked Questions
Relevant source files
The following files were used as context for generating this wiki page:
This page provides answers to common questions regarding the MBBank Model Context Protocol (MCP) server. It covers security, cost, technical capabilities, and implementation details for developers and users. The project leverages the mbbank-lib to provide a standardized interface for interacting with Military Commercial Joint Stock Bank (MBBank) accounts via the Model Context Protocol.
Sources: README.md:1-5, pyproject.toml:13-21, mbbank_mcp/core.py:16-20
General Information
Is this MCP server free to use?
Yes, this MCP server is open-source and free to use under the MIT License.
Sources: README.md:73-74, pyproject.toml:12
Is this MCP safe to use?
The core logic relies on the mbbank-lib library. Users are cautioned that the server reads sensitive data, including account balances and transaction history. It is recommended to use this server only within trusted environments and with authorized applications.
Sources: README.md:76-77, README.md:83-85
Functional Capabilities
Can this MCP Server transfer or withdraw money?
While the server primary focus is monitoring and analytics (checking balances and transactions), it does include tools for initiating and verifying transfers. However, it does not support direct "unattended" withdrawals; every transfer requires manual verification via the MBBank app.
Sources: README.md:79-81, mbbank_mcp/core.py:44-53
What data can I monitor?
The server provides tools to access various financial data points:
- Balances: Current balances for standard and international accounts.
- Transactions: History for both bank accounts and cards.
- Savings: Lists and detailed information for Online Savings Accounts (OSA) and Branch Savings Accounts (SBA).
- Interest Rates: Current rates for VND, USD, and EUR.
Sources: mbbank_mcp/core.py:141-158, mbbank_mcp/core.py:214-239, mbbank_mcp/core.py:279-286
Technical Implementation
How does the transfer process work?
The transfer process is a two-step flow involving a temporary session and a QR code for out-of-band authentication via the official MBBank mobile app.
The diagram shows the interaction between the MCP server and the bank's security mechanisms.
Sources: mbbank_mcp/core.py:44-124
How is state managed during transfers?
The server maintains an in-memory transfer_manager dictionary. Each transfer session is assigned a unique 8-character hex ID (sid) and expires after 120 seconds to ensure security.
Sources: mbbank_mcp/core.py:22-24, mbbank_mcp/core.py:70-74, mbbank_mcp/core.py:91-100
How do I configure the server?
The server supports multiple runtime modes and configuration methods.
| Option | Environment Variable | Description | Default |
| | | | |
| --username | MBBANK_USERNAME | Your MBBank login ID | None |
| --password | MBBANK_PASSWORD | Your MBBank password | None |
| --host | N/A | Host for SSE mode | localhost |
| --port | N/A | Port for SSE mode | 3000 |
| --sse | N/A | Enables Server-Sent Events mode | stdio (if flag omitted) |
Sources: README.md:58-66, mbbank_mcp/main.py:22-31
Connectivity and Modes
What is the difference between Stdio and SSE mode?
The MCP server can run in two primary communication modes:
- Stdio Mode: Standard input/output communication, typically used when the server is managed as a subprocess by a client like Claude Desktop.
- SSE (Server-Sent Events) Mode: Runs as a web server using Starlette and Uvicorn, allowing remote connections.
This flowchart illustrates the initialization logic within the server entry point.
Sources: mbbank_mcp/main.py:32-68
Data Models
The server uses Pydantic models to translate complex MBBank API responses into clean, developer-friendly structures.
| Model | Key Fields | Source File |
|---|---|---|
AccountModel | accountNumber, balance, currency | mbbank_mcp/modals.py:7-11 |
TransactionModel | transactionDate, amount, description | mbbank_mcp/modals.py:24-30 |
CardModel | cardId, cardStatus, cardType | mbbank_mcp/modals.py:38-44 |
SavingModel | principalAmount, maturityDate, interestRate | mbbank_mcp/modals.py:51-61 |
Sources: mbbank_mcp/modals.py:1-73
The MBBank MCP server serves as a bridge for secure, programmatic access to MBBank services, prioritizing user-in-the-loop security for sensitive operations like transfers while providing comprehensive read access for financial analytics.