teller MCP server
The teller MCP server gives agents read-only access to the user’s bank data through Teller. One server, but it routes across multiple enrollments — the user can connect N banks; the agent dispatches per-call by enrollment_id.
Injected only when the user has at least one Teller integration granted to the running profile.
teller_list_enrollments
Section titled “teller_list_enrollments”{}Returns one line per connected bank: enrollment_id, institution name, linked: <date>. Call this first to discover what’s available.
teller_list_accounts
Section titled “teller_list_accounts”{ "enrollment_id": "enr_…" }Returns accounts for one enrollment: account_id, name, type, subtype, currency, last_four, institution. Use the account_id with the per-account tools below.
teller_get_balance
Section titled “teller_get_balance”{ "enrollment_id": "enr_…", "account_id": "acc_…" }Returns available and ledger balances for one account.
teller_list_transactions
Section titled “teller_list_transactions”{ "enrollment_id": "enr_…", "account_id": "acc_…", "count": 50, "from_id": "txn_… (optional, paginate older)"}Recent transactions newest-first. Default count=50, max ~250 (Teller’s limit).
Preferred for budgeting / spend categorization — it’s a flat $0.30/enrollment/month subscription on Production, not per-call.
teller_get_account_details
Section titled “teller_get_account_details”{ "enrollment_id": "enr_…", "account_id": "acc_…" }Account number + routing numbers. Sensitive — call only when explicitly relevant (bill payment, ACH setup). Most expensive endpoint on Production: $1.75/call (Identity tier). Never speculate on this one.
Authentication
Section titled “Authentication”Authorization: Bearer teller_<token>. The bearer carries { userId, profileId }. The server uses profileId to filter enrollments — only ones granted to this profile are visible. A leaked token can’t reach an enrollment that wasn’t scoped to its profile.
Teller requires mutual TLS on every API call. Vonzio handles the cert exchange server-side — you don’t need to provision anything to use the integration.
Environment
Section titled “Environment”Three modes:
TELLER_ENVIRONMENT | What |
|---|---|
sandbox (default) | Fake test banks. The PNC sandbox accounts work for development. No real money. |
development | Real banks, real accounts. Free tier, capped at 100 connections. Recommended for personal use. |
production | Paid tier. Per-call billing as described above. Required for shipping a multi-user product. |
The dashboard widget honors whichever the server announces via /v1/integrations/teller/config.
Caching
Section titled “Caching”The MCP keeps a per-token TTL cache of “this user’s enrollments” (30s) so chatty agents don’t re-decrypt the integration rows on every tool call. Cache invalidates with the token’s task lifetime; you don’t manage it.
Token-cost guidance in the tool descriptions
Section titled “Token-cost guidance in the tool descriptions”The tool descriptions themselves tell the agent the cost trade-offs. Agents that read tool descriptions before choosing a tool (most LLMs do this implicitly) get cost-aware behavior for free. See feature #16 (cost hints) for the wiring.