# Mercury MCP connector

The Mercury connector brings your business bank accounts, transactions, cards, customers, invoices and payment recipients into Claude, ChatGPT, Cursor and the Elaichi Agent, so each person on your team can ask questions and get work done inside their own Mercury access.

Source: https://elaichi.ai/connectors/mercury/

## Facts

| | |
| --- | --- |
| Application | Mercury |
| Category | Banking |
| AI tools | 70 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 70 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Mercury is connected

- List last week's Mercury transactions over 5,000 dollars.
- Which Mercury cards were issued this month, and to whom?
- Show balances across all Mercury accounts today.

## Connect Mercury in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Mercury.
2. Optionally set Share with, then press Connect.
3. Paste a Mercury API key. One person generates a token in Mercury and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Mercury tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Mercury to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Mercury to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Mercury to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Mercury to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Mercury tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Mercury through Elaichi

### Find a transaction without opening Mercury

Finance. Ask which payments went out last week, who they went to and what they were for, and get the answer from live Mercury transactions across every account.

### Add a memo to a transaction after month end

Accounting. Catch a Mercury transaction up with the note or category it was missing so the books close without a hunt through the statement.

### Draft and send a customer invoice

Billing. Create a Mercury customer for a new client, then raise the invoice for the agreed amount and check later whether it is still outstanding.

### Set up a new vendor as a recipient

Operations. Add a supplier as a Mercury recipient with their payment details, then arrange a payment to them from the right account once approved.

### Check the balance across every account

Founders. Ask for a quick view of all Mercury accounts before a big decision, and see which account is best placed to cover it.

### Issue a card for a new hire

Operations. Create a Mercury card for someone joining, adjust it when their role changes, and remove it when they no longer need it.

## Frequently asked questions

### How do I connect Mercury to Claude?

In Elaichi, choose Mercury and paste in an API key from your Mercury account, which takes about a minute. There is no client ID or secret to generate and no OAuth application to register. Then in Claude go to Customize, then Connectors, then Add, and paste the Elaichi endpoint https://api.elaichi.ai/mcp. Sign in as yourself when Claude asks and your Mercury connection is ready.

### Does Mercury work with ChatGPT and Cursor as well as Claude?

Yes. You connect Mercury once in Elaichi, and the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. Nothing has to be set up again per client.

### What can an AI agent actually do with my Mercury data?

It can look across your Mercury accounts, find and explain individual transactions, add notes to them, and set up a payment to a saved recipient. It can also create and update customers, raise and edit invoices, add or update payment recipients, and issue, change or remove cards. Because Mercury has a lot of possible actions, short concrete asks like "list card payments over 500 dollars in March" work better than long paragraphs.

### Does connecting Mercury give the AI access to every account and payment?

No. Every request runs inside the Mercury access of the person who signed in, so the AI sees the accounts, cards and transactions that person could already see in Mercury. Elaichi can narrow that further, for example to viewing only, but it can never widen it beyond what Mercury itself allows that person.

### Can my team share one Mercury connection?

Yes. One finance lead connects Mercury in Elaichi and shares it with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so every Mercury action in the audit log carries the name of the person who asked for it.

### Can I stop an agent from creating payments or deleting things in Mercury?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Mercury accounts and transactions while blocking payments, card deletion or invoice changes. A blocked action is never shown to Claude, ChatGPT or Cursor at all, so no prompt, however worded, can reach it.

### What happens to a Mercury connection when someone leaves?

Offboarding that person in Elaichi ends their access to Mercury through every client at once, with no key to rotate. A shared Mercury connection keeps working for everyone else on the team. If you ever want Mercury gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and the Elaichi Agent together.

## All 70 Mercury tools

Every tool below is callable through https://api.elaichi.ai/mcp once Mercury is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Mercury account** (List). List Mercury accounts. Returns: accountNumber, availableBalance, canReceiveTransactions, createdAt, currentBalance, dashboardLink, id, kind, legalBusinessName, name, nickname, routingNumber, status, type. Max 1000 per page.
- **List all Mercury transaction** (List). List transactions across Mercury accounts. Returns transaction records with account, amount, status, timing, counterparty, category, and attachment metadata.
- **Get single Mercury transaction by ID** (Get). Get a Mercury transaction by id. Returns the full transaction details including account, amount, status, counterparty, notes, category, and attachments.
- **Create a Mercury transaction** (Create). Send money from a Mercury account to a recipient. Returns the created transaction request and processing status. Required: account_id.
- **Update a Mercury transaction by ID** (Update). Update Mercury transaction metadata by id. Returns the updated transaction including notes and category metadata. Required: id.
- **List all Mercury card** (List). List Mercury cards across your organization. Returns cards with id, lastFour, status, type, kind, nameOnCard, createdAt, and updatedAt. Supports filtering by accountId, status, type, kind, and userId.
- **Create a Mercury card** (Create). Create a virtual Mercury card for an existing user. Returns the issued card with id, lastFour, status, kind, nameOnCard, expiration, and spendLimit. Required: kind, type, userId.
- **Get single Mercury card by ID** (Get). Get a single Mercury card by id. Returns the card object with id, lastFour, status, kind, nameOnCard, expiration, spendLimit, createdAt, and updatedAt. Required: id.
- **Update a Mercury card by ID** (Update). Update a Mercury card's nickname or spending controls. Returns the updated card including id, accountId, status, lastFour, nickname, kind, type, and expiration. Required: id. At least one of nickname or spendLimit must be supplied.
- **Delete a Mercury card by ID** (Delete). Cancel a Mercury card by id. Returns the cancelled card object including id, status, kind, lastFour, accountId, and userId. Required: id. Cancellation cannot be undone and the card number cannot be reactivated.
- **List all Mercury customer** (List). List Mercury Accounts Receivable customers. Returns: id, name, email, deletedAt, address. Max 1000 per page.
- **Create a Mercury customer** (Create). Create a Mercury Accounts Receivable customer. Returns: id, name, email, deletedAt, address. Required: name, email.
- **Get single Mercury customer by ID** (Get). Get a single Mercury Accounts Receivable customer by id. Returns: id, name, email, deletedAt, address. Required: id.
- **Update a Mercury customer by ID** (Update). Update a Mercury Accounts Receivable customer by id. Returns the updated customer object including id, name, email, address, and deletedAt. Required: id, email, name, and resendOpenInvoices. Returns an error if the customer has pending invoice payments.
- **Delete a Mercury customer by ID** (Delete). Soft-delete a Mercury customer by id. Returns the soft-deleted customer object including id, name, email, deletedAt, and address. Required: id.
- **List all Mercury invoice** (List). List Mercury AR invoices. Returns: id, achDebitEnabled, amount, canceledAt, ccEmails, createdAt, creditCardEnabled, currencyCode, customerId, destinationAccountId, dueDate, internalNote, invoiceDate, invoiceNumber, lineItems, payerMemo, poNumber, servicePeriodEndDate, servicePeriodStartDate, slug, status, updatedAt, useRealAccountNumber. Max 1000 per page.
- **Create a Mercury invoice** (Create). Create a Mercury AR invoice. Returns the created invoice with id, amount, status, dueDate, customerId, invoiceNumber, slug, lineItems, and payment flags. Required: achDebitEnabled, ccEmails, creditCardEnabled, customerId, destinationAccountId, dueDate, invoiceDate, lineItems, useRealAccountNumber. creditCardEnabled requires a connected Stripe account.
- **Get single Mercury invoice by ID** (Get). Get a Mercury AR invoice by id. Returns: id, achDebitEnabled, amount, canceledAt, ccEmails, createdAt, creditCardEnabled, currencyCode, customerId, destinationAccountId, dueDate, internalNote, invoiceDate, invoiceNumber, lineItems, payerMemo, poNumber, servicePeriodEndDate, servicePeriodStartDate, slug, status, updatedAt, useRealAccountNumber. Required: id.
- **Update a Mercury invoice by ID** (Update). Update a Mercury invoice by id. Returns the updated invoice including id, status, amount, dueDate, lineItems, and customerId. Required: id, achDebitEnabled, ccEmails, creditCardEnabled, dueDate, invoiceDate, invoiceNumber, lineItems, useRealAccountNumber. You must send all fields in full, including optional fields, or existing values will be deleted.
- **Delete a Mercury invoice by ID** (Delete). Delete a Mercury invoice by id. Only unpaid invoices can be canceled. Returns an empty 204 response on success. Required: id.
- **List all Mercury recipient** (List). List Mercury recipients. Returns recipients available for payments, including ids, names, payment method details, and status metadata.
- **Create a Mercury recipient** (Create). Create a Mercury recipient for payments. Returns the created recipient including id, name, status, and payment details.
- **Get single Mercury recipient by ID** (Get). Get a Mercury recipient by id. Returns recipient details including payment method metadata and status. Required: id.
- **Update a Mercury recipient by ID** (Update). Update a Mercury recipient by id. Returns the updated recipient. Required: id.
- **Delete a Mercury recipient by ID** (Delete). Delete a Mercury recipient by id. Returns an empty success response when deletion succeeds. Required: id.
- **Create a Mercury recipient invite** (Create). Create a recipient invite in Mercury. Returns: contactEmail, createdAt, expiresAt, id, name, notes, onboardingUrl, paymentMethods, recipientId, requireTaxDocument, status. Required: contactEmail, paymentMethods, requireTaxDocument, sendEmail. Name is required when recipientId is absent.
- **List all Mercury recipient invite** (List). List recipient invites in Mercury. Returns: contactEmail, createdAt, expiresAt, id, name, notes, onboardingUrl, paymentMethods, recipientId, requireTaxDocument, status.
- **Get single Mercury recipient invite by ID** (Get). Get a single Mercury recipient invite by id. Returns: contactEmail, createdAt, expiresAt, id, name, notes, onboardingUrl, paymentMethods, recipientId, requireTaxDocument, status. Required: id.
- **Delete a Mercury recipient invite by ID** (Delete). Delete a Mercury recipient invite by id. Returns an empty 204 response on success. Required: id.
- **Create a Mercury internal transfer** (Create). Create an internal transfer between two Mercury accounts in the same organization. Returns: creditTransaction, debitTransaction, amount, destinationAccountId, idempotencyKey, note, sourceAccountId. Required: amount, destinationAccountId, idempotencyKey, and sourceAccountId. Amount must be at least $0.01.
- **Create a Mercury send money request** (Create). Create a Mercury send money request requiring approval. Returns the created request with accountId, amount, paymentMethod, recipientId, requestId, status, reviews, and more. Required: account_id, amount, idempotencyKey, paymentMethod, recipientId.
- **Get single Mercury send money approval by ID** (Get). Get a single Mercury send money approval request by id. Returns: accountId, amount, createdAt, memo, numberOfApproversRequired, paymentMethod, recipientId, requestId, requestedByUserId, reviews, scheduledSendDate, status. Required: id.
- **List all Mercury send money approval** (List). List Mercury send money approval requests. Returns: accountId, amount, createdAt, memo, numberOfApproversRequired, paymentMethod, recipientId, requestId, requestedByUserId, reviews, scheduledSendDate, status.
- **List all Mercury category** (List). List expense categories in Mercury. Returns: id, name, visibleForCardSpend, visibleForOther, visibleForReimbursements. Max 1000 per page.
- **Create a Mercury category** (Create). Create a new expense category in Mercury. Returns: id, name, visibleForCardSpend, visibleForOther, visibleForReimbursements. Required: name, visibleForCardSpend, visibleForOther, visibleForReimbursements.
- **Update a Mercury category by ID** (Update). Update an existing expense category in Mercury by id. All body fields are optional. Returns: id, name, visibleForCardSpend, visibleForOther, visibleForReimbursements. Required: id.
- **Delete a Mercury category by ID** (Delete). Delete a Mercury category by id. Returns an empty 204 response on success. Required: id.
- **List all Mercury credit account** (List). List credit accounts in Mercury. Returns: availableBalance, createdAt, currentBalance, id, status, amount, externalMemo, idempotencyKey, note, paymentMethod, purpose, recipientId.
- **List all Mercury event** (List). List Mercury API events. Returns: changedPaths, id, mergePatch, occurredAt, operationType, previousValues, resourceId, resourceType, resourceVersion. Optional filters: resourceType, resourceId.
- **Get single Mercury event by ID** (Get). Get a single Mercury API event by id. Returns: changedPaths, id, mergePatch, occurredAt, operationType, previousValues, resourceId, resourceType, resourceVersion. Required: id.
- **Create a Mercury onboarding** (Create). Create a Mercury onboarding application. Returns: onboardingDataId, signupLink. Required: partner, beneficialOwners (at least one item).
- **List all Mercury organization** (List). Get the Mercury organization for the authenticated account. Returns the organization object including billing_cadence, dbas, id, kind, legal_business_name, subscription_tier, and ein.
- **List all Mercury safe** (List). List Mercury SAFE requests. Returns SAFE request records for the organization.
- **Get single Mercury safe by ID** (Get). Get a Mercury SAFE request by id. Returns the SAFE request details. Required: id.
- **List all Mercury treasury** (List). List Mercury treasury accounts. Returns treasury accounts associated with the authenticated organization.
- **List all Mercury user** (List). List organization users in Mercury. Returns: email, firstName, lastName, organizationRole, userId.
- **Get single Mercury user by ID** (Get). Get a single Mercury organization user by id. Returns: email, firstName, lastName, organizationRole, userId. Required: id.
- **List all Mercury webhook** (List). List Mercury webhook endpoints. Returns configured webhook endpoints with status, URL, event subscriptions, and delivery metadata.
- **Create a Mercury webhook** (Create). Create a Mercury webhook endpoint. Returns the created webhook endpoint including id, URL, status, and subscribed event types.
- **Get single Mercury webhook by ID** (Get). Get a Mercury webhook endpoint by id. Returns webhook configuration and status. Required: id.
- **Update a Mercury webhook by ID** (Update). Update a Mercury webhook endpoint by id. Returns the updated webhook configuration. Required: id.
- **Delete a Mercury webhook by ID** (Delete). Delete a Mercury webhook endpoint by id. Returns an empty success response when deletion succeeds. Required: id.
- **Mercury webhook verify** (Verify). Send a test event to verify a Mercury webhook endpoint. Returns the verification result. Required: webhook_id.
- **Create a Mercury oauth token** (Create). Obtain an OAuth 2.0 access token from Mercury. Returns: access_token, expires_in, refresh_token, scope, token_type. Required: code, code_verifier, grant_type, redirect_uri, refresh_token, scope.
- **List all Mercury oauth authorize** (List). Start the Mercury OAuth2 authorization flow. Redirects the user to Mercury consent for the requested application access.
- **Get single Mercury attachment by ID** (Get). Get a Mercury attachment by id. Returns attachment details including the download URL. Required: id.
- **List all Mercury account cards** (List). List cards for a Mercury account. Returns: cardId, createdAt, lastFourDigits, nameOnCard, network, physicalCardStatus, spendLimit, status, type, updatedAt, userId. Required: account_id. Deprecated representation.
- **List all Mercury account statements** (List). List statements for a Mercury account. Returns: accountNumber, companyLegalAddress, companyLegalName, downloadUrl, ein, endDate, endingBalance, id, routingNumber, startDate, transactions. Required: account_id. Treasury and credit accounts are not supported. Max date range 3 months.
- **List all Mercury account transactions** (List). List transactions for a Mercury account. Returns: accountId, amount, attachments, bankDescription, categoryData, checkNumber, compliantWithReceiptPolicy, counterpartyId, counterpartyName, counterpartyNickname, createdAt, creditAccountPeriodId, currencyExchangeInfo, dashboardLink, details, estimatedDeliveryDate, externalMemo, failedAt, feeId, generalLedgerCodeName, glAllocations,…
- **List all Mercury invoice attachments** (List). List attachments for a Mercury AR invoice. Returns: fileName, id, url. Required: invoice_id.
- **List all Mercury recipient attachments** (List). List recipient tax-form attachments in Mercury. Returns: fileName, formType, id, recipientId, uploadedAt, url.
- **Create a Mercury recipient attachment** (Create). Upload a tax-form attachment to a Mercury recipient. Returns the created attachment with id, fileName, and url. Required: recipient_id, file. Max file size 32MB.
- **Create a Mercury transaction attachment** (Create). Upload a file attachment to a Mercury transaction. Returns: categoryId, note. Required: transaction_id, file. Max file size 32MB.
- **List all Mercury treasury statements** (List). List treasury account statements in Mercury. Returns statement records including id, documentType, downloadUrl, description, periodStart, periodEnd, createdAt, and updatedAt. Required: treasury_id. Max 1000 per page.
- **List all Mercury treasury transactions** (List). List treasury transactions for a Mercury treasury account. Returns: accountId, additionalDetails, amount, balance, canonicalDay, description, details, id, security, type. Required: treasury_id.
- **List all Mercury invoice PDF** (List). Download a Mercury invoice PDF by invoice id. Returns binary PDF content. Required: invoice_id.
- **List all Mercury safe document** (List). Download a Mercury SAFE document by SAFE id. Returns binary PDF content. Required: safe_id.
- **List all Mercury statement PDF** (List). Download a Mercury account statement PDF by statement id. Returns binary PDF content. Required: statement_id.
- **Create a Mercury card freeze** (Create). Freeze a Mercury card to temporarily pause authorizations. Returns the frozen card including id, accountId, status, lastFour, nickname, kind, type, and expiration. Required: card_id.
- **Create a Mercury card unfreeze** (Create). Unfreeze a frozen Mercury card by card id. Returns the card object including id, status, kind, lastFour, accountId, and userId. Required: card_id.
