Connect Your AI Agent with Mercury for Slack

Integrate Mercury MCP server into your Slack workspace for instant access to your AI agent.

No credit card neededOr, book a demo
Documentation
Back to MCP Servers
Mercury
Mercury
Online Business Banking For Startups, Small Businesses & Scaling Companies

Categories

Commerce

Available Tools

Tools that your AI agent can use through this MCP server to interact with Mercury

Send Payment

Create a payment transaction from a Mercury account to an existing recipient via ACH, check, or domestic wire. This endpoint requires the connected account's IP to be whitelisted; the transaction is submitted immediately (there is no scheduling parameter), but is returned in a pending state when the account's policy requires approval (otherwise sent) — check the returned status. Run List Accounts for the account ID and List Recipients for the recipient ID. NOTE: this only submits the payment; submitting a separate approval request is a different Mercury operation (requestSendMoney). Duplicate payments (same recipient, account, and amount within 24h) are rejected with HTTP 400. All IDs (accountId, recipientId, and the returned transaction id) are UUIDs, not prefixed strings. Example: call with accountId="69c8b0ee-8b87-11f1-a9e5-e7cd8f0e3f51", recipientId="b56db170-927b-11f1-a805-27c2879b4c72", amount="10.00", and paymentMethod="ach" -> returns the created transaction { id: "9a3f2c14-4d21-11f1-8c7e-1b2d3e4f5a6b", status: "pending" }. See the documentation

List Transactions

List transactions for a Mercury account, with optional date-range, search, status, and pagination filters. Run List Accounts first to obtain a valid account ID. All IDs are UUIDs, not prefixed strings. Example: call with accountId="69c8b0ee-8b87-11f1-a9e5-e7cd8f0e3f51", status="sent", and limit=10 -> returns { transactions: [{ id: "9a3f2c14-4d21-11f1-8c7e-1b2d3e4f5a6b", amount: "-42.00", counterpartyName: "AWS", status: "sent", createdAt: "2026-01-15T..." }] }. See the documentation

List Send Money Requests

List send money approval requests for the organization. Optionally filter by account and status. Use this to discover pending approvals and their requestId. Example: call with status: "pendingApproval" -> returns { requests: [{ requestId: "3f1a9c22-8b87-11f1-a9e5-6b3dd34242f2", accountId: "69c8b0ee-8b87-11f1-a9e5-e7cd8f0e3f51", amount: 100.5, paymentMethod: "ach", status: "pendingApproval" }], page: { nextPage: null, previousPage: null } }. See the documentation

List Recipients

List a page of payment recipients configured on the connected Mercury profile (up to Limit per call, default 1000; pass the last recipient's ID as Start After to fetch later pages). Use this to discover recipient IDs needed by Send Payment. Recipient IDs are UUIDs, not prefixed strings. Example: call with no parameters -> returns { recipients: [{ id: "b56db170-927b-11f1-a805-27c2879b4c72", name: "Acme Corp", emails: ["[email protected]"] }] }. See the documentation

List Categories

List all custom expense categories for the organization. Use this to discover category IDs and names used to classify transactions. Example: call with no parameters -> returns { categories: [{ id: "a1b2...", name: "Software", visibleForCardSpend: true, visibleForOther: true, visibleForReimbursements: false }], page: { nextPage: null, previousPage: null } }. See the documentation

List Accounts

Retrieve a page of Mercury bank accounts for the connected profile (up to Limit per call, default 1000; pass the last account's ID as Start After to fetch later pages), including current and available balance fields (returned as numbers, not strings). Use this first to discover account IDs (each a UUID) needed by List Transactions, Get Transaction, and Send Payment. Serves the 'check balances across accounts' need since the accounts response already includes balance data. Example: call with no parameters -> returns { accounts: [{ id: "69c8b0ee-8b87-11f1-a9e5-e7cd8f0e3f51", name: "Mercury Checking ••1234", currentBalance: 5000, availableBalance: 4800.55 }] }. See the documentation

Get Transaction

Retrieve the full detail of a single Mercury transaction by its account and transaction IDs. Run List Accounts to obtain the account ID and List Transactions to obtain the transaction ID. Both IDs are UUIDs, not prefixed strings. Example: call with accountId="69c8b0ee-8b87-11f1-a9e5-e7cd8f0e3f51" and transactionId="9a3f2c14-4d21-11f1-8c7e-1b2d3e4f5a6b" -> returns the transaction { id, amount, counterpartyName, status, postedAt, ... }. See the documentation

Get Account Information

Retrieve information (including balances) about a specific Mercury account by its ID. Mercury has no get-account-by-ID endpoint, so this pages through List Accounts and returns the account whose id matches. Run List Accounts first to obtain a valid account ID. The account ID is a UUID, not a prefixed string. Example: call with account="69c8b0ee-8b87-11f1-a9e5-e7cd8f0e3f51" -> returns that account's full record { id, name, currentBalance, availableBalance, type, ... }. See the documentation

Add Recipient

Create a new Mercury payment recipient. Provide Recipient Name and Emails for a basic contact. To attach bank details, set Payment Method and the matching fields: ach needs Account Number, Routing Number, Electronic Account Type, and the address fields; domesticWire needs Account Number, Routing Number, and the address fields; check needs only the address fields. All numeric-looking values (account number, routing number, postal code) are sent to Mercury as strings (individual string props, so leading zeros are preserved). Example: recipientName="Art Vandelay", emails=["[email protected]"], paymentMethod="ach", accountNumber="123456789", routingNumber="021000021", electronicAccountType="businessChecking", addressLine1="100 Federal Street", city="Boston", region="MA", postalCode="02101", country="US" -> returns the created recipient { id: "b56db170-927b-11f1-a805-27c2879b4c72", name: "Art Vandelay", ... } (the id is a UUID, not a prefixed string). See the documentation