Skip to content

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.

{}

Returns one line per connected bank: enrollment_id, institution name, linked: <date>. Call this first to discover what’s available.

{ "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.

{ "enrollment_id": "enr_…", "account_id": "acc_…" }

Returns available and ledger balances for one account.

{
"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.

{ "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.

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.

Three modes:

TELLER_ENVIRONMENTWhat
sandbox (default)Fake test banks. The PNC sandbox accounts work for development. No real money.
developmentReal banks, real accounts. Free tier, capped at 100 connections. Recommended for personal use.
productionPaid 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.

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.