lemma-banking-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LEMMA_API_KEY | No | Platform API key from the Lemma team. Required for live API calls. Alternatively, HD_LEMMA_API_KEY can be used. | |
| LEMMA_BASE_URL | No | Base URL of the Lemma API. | https://api.getlemma.com/v0 |
| HD_LEMMA_API_KEY | No | Alternative environment variable for the Lemma API key. | |
| LEMMA_TIMEOUT_MS | No | Timeout in milliseconds for API requests. | 30000 |
| LEMMA_ENABLE_WRITES | No | Set to 'true' to enable write tools that move real money. Leave empty or unset for read-only mode. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lemma_list_entitiesA | List legal entities this platform API key has been granted access to. Entities are the top-level scope -- most other tools take an entity_id or account_id from here. Do not assume a single entity. |
| lemma_get_entityB | Get one entity by ID (name, legal structure, NPI, address). |
| lemma_get_entity_lockboxA | Get an entity's lockbox mailing address (where payers send checks/EOBs). |
| lemma_list_entity_mailA | List lockbox mail received for an entity, including any checks found in each mail item (amounts in cents, *_dollars annotated). |
| lemma_list_bank_accountsB | List Lemma bank accounts for an entity, with balances (cents; *_dollars annotated). |
| lemma_get_bank_accountA | Get one bank account (name, account/routing number, balances). |
| lemma_get_account_settlement_instructionsA | Download a bank account's settlement instructions as a PDF. Pass save_to (absolute path) to write the file; otherwise small PDFs are returned base64-inline. |
| lemma_list_transactionsA | List transactions for a bank account (paginated; amounts in cents, *_dollars annotated). |
| lemma_get_transactionA | Get one transaction (amount, counterparty, source category, linked card if any). |
| lemma_list_external_accountsA | List saved recipients (external bank accounts) for an entity. These are the only allowed destinations for external transfers. |
| lemma_get_external_accountA | Get one saved recipient by ID (nickname, routing/account number, holder type, status). |
| lemma_list_check_depositsB | List check deposits, optionally filtered by account (status, holds, MICR payer details). |
| lemma_get_check_depositA | Get one check deposit by ID. |
| lemma_list_remittancesB | List an entity's insurance remittances (payer, payment amount, trace number, whether an 835 ERA is available). |
| lemma_get_remittance_eraA | Fetch a remittance's 835 Electronic Remittance Advice as raw X12. Returns the X12 text inline (or save_to a file for large ERAs). |
| lemma_get_cardA | Get an issued virtual debit card by ID (nickname, last 4, status, every authorization control and spending limit). |
| lemma_get_card_iframeA | SENSITIVE: get a short-lived iframe URL that renders the card's full PAN/CVV. The URL expires quickly and exposes real card credentials -- only fetch it when the user explicitly needs to view card details, never log or store it. |
| lemma_list_inbound_ach_transfersB | List inbound ACH transfers (money pushed/pulled by outside parties), optionally filtered by account. |
| lemma_get_inbound_ach_transferA | Get one inbound ACH transfer by ID. |
| lemma_get_ach_transferA | Get one outbound ACH transfer by ID (status: pending/submitted/settled/returned/canceled/rejected). |
| lemma_get_book_transferA | Get one internal book transfer by ID. |
| lemma_get_pdfA | Download a file by file ID (e.g. a scanned lockbox mail item). Pass save_to (absolute path) to write it; small files return base64-inline. |
| lemma_create_external_accountA | WRITE: save a new external bank account (saved recipient) for an entity -- the required first step before any external transfer. Creates a REAL payment destination. Saved recipients are IMMUTABLE once created: there is no update API, and archiving is done by emailing the Lemma team (contact@getlemma.com), not via API -- so double-check routing/account numbers before confirming. |
| lemma_move_money_externallyA | WRITE -- MOVES REAL MONEY: send an ACH transfer from a Lemma account to a SAVED RECIPIENT (destination must be an external_account_id from lemma_list_external_accounts; arbitrary bank accounts are rejected). Settles in 1-2 business days; transfers over $100,000 are held for manual review by Lemma. Requires explicit user approval before every call. |
| lemma_move_money_internallyA | WRITE -- MOVES REAL MONEY: instant, free book transfer between two Lemma accounts owned by this platform's granted entities. Requires explicit user approval before every call. |
| lemma_create_cardA | WRITE -- CREATES A REAL FINANCIAL INSTRUMENT: issue a virtual debit card drawing on a Lemma bank account. At least one spending limit is REQUIRED (Lemma sets no ceiling of its own -- a card without limits could spend the entire account balance in one transaction). Requires explicit user approval before every call. |
| lemma_delete_cardA | WRITE -- PERMANENTLY cancels a real card so it can no longer be used. Idempotent by nature (DELETE; no idempotency key needed). Requires explicit user approval before every call. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
For the most part every tool targets a distinct resource (entities, bank accounts, cards, ACH, check deposits, remittances), and get/list pairs are clear. However, lemma_get_ach_transfer and lemma_get_inbound_ach_transfer differ only by one word in the tool name, and the generic 'ach_transfer' name hides that it is the outbound variant; list_transactions also overlaps conceptually with the resource-specific list tools.
All tools share the lemma_ prefix and mostly follow lemma_<verb>_<noun>, with get/list/create/delete/move verbs. Minor deviations exist: lemma_get_ach_transfer does not mark outbound while its inbound counterpart does, and lemma_get_account_settlement_instructions breaks the concise noun pattern.
27 tools is above the typical 3-15 range, but the server covers a genuinely broad banking domain: entities, accounts, transactions, cards, transfers, check deposits, remittances, lockbox mail, and external recipients. Each tool maps to a distinct endpoint or resource and none are duplicates, so the size feels justified rather than bloated.
Core banking operations are covered well: list/get accounts and transactions, create external accounts, move money internally/externally, and create/delete cards. However, there is no way to list cards or update card spending limits, and outbound ACH/book transfers have get-by-ID but no list endpoint, which are notable lifecycle gaps for a banking surface.