# Mercury MCP

Mercury's official MCP server (Beta) for read-only access to your Mercury business banking data — accounts, balances, transactions, cards, recipients, statements, and treasury. Cannot initiate transactions or modify account data; all mutations are blocked server-side.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio Managed App Available?** No
- **Tools:** 30
- **Triggers:** 0
- **Slug:** `MERCURY_MCP`
- **Version:** 20260506_00

## Tools

### Getaccount

**Slug:** `MERCURY_MCP_GET_ACCOUNT`


    Get account by ID

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `accountId` | string | Yes | ID for a Mercury account. |

### Getaccountcards

**Slug:** `MERCURY_MCP_GET_ACCOUNT_CARDS`


    Retrieve all debit and credit cards associated with a specific account.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `accountId` | string | Yes | ID for a Mercury account. |

### Getaccounts

**Slug:** `MERCURY_MCP_GET_ACCOUNTS`


    Retrieve a paginated list of accounts. Supports cursor-based pagination with limit, order, start_after, and end_before query parameters.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the account to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the account to start the page after (exclusive). When provided, results will begin with the account immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Getaccountstatements

**Slug:** `MERCURY_MCP_GET_ACCOUNT_STATEMENTS`


    Retrieve a paginated list of monthly statements for a specific account. Supports cursor-based pagination with limit, order, start_after, and end_before query parameters, as well as date range filtering with start and end parameters.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | Filter statements where the period start date is on or before this date. If the date is in the future, defaults to the current date. Format: YYYY-MM-DD |
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'desc' |
| `start` | string | No | Filter statements where the period start date is on or after this date. Format: YYYY-MM-DD |
| `accountId` | string | Yes | ID for a Mercury account. |
| `end_before` | string | No | The ID of the statement to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the statement to start the page after (exclusive). When provided, results will begin with the statement immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Getattachment

**Slug:** `MERCURY_MCP_GET_ATTACHMENT`


    Retrieve attachment details including download URL

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `attachmentId` | string | Yes | ID for the attachment. |

### Getcurrentdate

**Slug:** `MERCURY_MCP_GET_CURRENT_DATE`

Get the current date in the format. Example: Fri Oct 31 2025

### Getcustomer

**Slug:** `MERCURY_MCP_GET_CUSTOMER`


    Retrieve details of a specific customer by their ID

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `customerId` | string | Yes | The customer who will receive the invoice. Use the /api/v1/ar/customers endpoint to list your customers and find the corresponding id, or create a new customer first. |

### Getinvoice

**Slug:** `MERCURY_MCP_GET_INVOICE`


    Retrieve details of an invoice by its ID

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoiceId` | string | Yes | ID for the invoice. |

### Getorganization

**Slug:** `MERCURY_MCP_GET_ORGANIZATION`


    Retrieve information about your organization including EIN, legal business name, and DBAs.

    
  

### Getrecipient

**Slug:** `MERCURY_MCP_GET_RECIPIENT`


    Retrieve details of a specific recipient by ID

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `recipientId` | string | Yes | ID for a Mercury account. |

### Getrecipients

**Slug:** `MERCURY_MCP_GET_RECIPIENTS`


    Retrieve a paginated list of all recipients. Use cursor parameters (start_after, end_before) for pagination.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the recipient to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the recipient to start the page after (exclusive). When provided, results will begin with the recipient immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Getsaferequest

**Slug:** `MERCURY_MCP_GET_SAFE_REQUEST`


    Retrieve a specific SAFE request by its ID.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `safeRequestId` | string | Yes | ID for the SAFE request |

### Getsaferequests

**Slug:** `MERCURY_MCP_GET_SAFE_REQUESTS`


    Retrieve all SAFE (Simple Agreement for Future Equity) requests for your organization.

    
  

### Gettransaction

**Slug:** `MERCURY_MCP_GET_TRANSACTION`


    Get transaction by ID

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `accountId` | string | Yes | ID for a Mercury account. |
| `transactionId` | string | Yes | ID for this transaction |

### Gettransactionbyid

**Slug:** `MERCURY_MCP_GET_TRANSACTION_BY_ID`


    Retrieve a single transaction by its ID. Returns full transaction details including attachments, check images, and related metadata.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `transactionId` | string | Yes | ID for this transaction |

### Gettreasury

**Slug:** `MERCURY_MCP_GET_TREASURY`


    Retrieve a paginated list of all treasury accounts associated with the authenticated organization. Use cursor parameters (start_after, end_before) for pagination.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the account to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the account to start the page after (exclusive). When provided, results will begin with the account immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Gettreasurystatements

**Slug:** `MERCURY_MCP_GET_TREASURY_STATEMENTS`


    Retrieve a paginated list of statements for a specific treasury account. Supports cursor-based pagination and filtering by document type.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the statement to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `treasuryId` | string | Yes | ID for a Mercury account. |
| `start_after` | string | No | The ID of the statement to start the page after (exclusive). When provided, results will begin with the statement immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |
| `documentType` | string ("MonthlyStatement" | "TradeConfirmation" | "1099" | "1099R" | "1042S" | "5498" | "5498ESA" | "1099Q" | "FMV" | "SDIRA") | No | Filter statements by document type. |

### Gettreasurytransactions

**Slug:** `MERCURY_MCP_GET_TREASURY_TRANSACTIONS`


    Retrieve paginated treasury transactions for a specific treasury account.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Defaults to 100 |
| `order` | string ("asc" | "desc") | No | Sort order for transactions. Can be 'asc' or 'desc'. Defaults to 'desc' |
| `cursor` | number | No | Pagination cursor for retrieving next batch of transactions. Must be an integer >= 0 |
| `treasuryId` | string | Yes | ID for a Mercury account. |

### Getuser

**Slug:** `MERCURY_MCP_GET_USER`


    Get user by ID

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | Yes | ID for the user |

### Getusers

**Slug:** `MERCURY_MCP_GET_USERS`


    Get all users

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the user to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the user to start the page after (exclusive). When provided, results will begin with the user immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Getwebhook

**Slug:** `MERCURY_MCP_GET_WEBHOOK`


    Retrieve details of a specific webhook endpoint by ID

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `webhookEndpointId` | string | Yes | ID for the webhook |

### Getwebhooks

**Slug:** `MERCURY_MCP_GET_WEBHOOKS`


    Retrieve a paginated list of all webhook endpoints for your organization. Supports filtering by status.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `status` | array | No |  |
| `end_before` | string | No | The ID of the webhook to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the webhook to start the page after (exclusive). When provided, results will begin with the webhook immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Listcategories

**Slug:** `MERCURY_MCP_LIST_CATEGORIES`


    Retrieve a paginated list of all available custom expense categories for the organization. Supports cursor-based pagination with limit, order, start_after, and end_before query parameters.

    
    - These categories are custom and different from the values for "mercuryCategory". 
  
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the category to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the category to start the page after (exclusive). When provided, results will begin with the category immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Listcredit

**Slug:** `MERCURY_MCP_LIST_CREDIT`


    Retrieve a list of all credit accounts for the organization.

    
  

### Listcustomers

**Slug:** `MERCURY_MCP_LIST_CUSTOMERS`


    Retrieve a paginated list of customers. Supports cursor-based pagination with limit, order, start_after, and end_before query parameters.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the customer to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the customer to start the page after (exclusive). When provided, results will begin with the customer immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Listinvoiceattachments

**Slug:** `MERCURY_MCP_LIST_INVOICE_ATTACHMENTS`


    Retrieve a list of all attachments for a specific invoice

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoiceId` | string | Yes | ID for the invoice. |

### Listinvoices

**Slug:** `MERCURY_MCP_LIST_INVOICES`


    Retrieve a paginated list of invoices. Supports cursor-based pagination with limit, order, start_after, and end_before query parameters.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the invoice to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the invoice to start the page after (exclusive). When provided, results will begin with the invoice immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Listrecipientsattachments

**Slug:** `MERCURY_MCP_LIST_RECIPIENTS_ATTACHMENTS`


    Retrieve a paginated list of all recipient tax form attachments across all recipients in the organization. Use cursor parameters (start_after, end_before) for pagination.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `end_before` | string | No | The ID of the recipient attachment to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the recipient attachment to start the page after (exclusive). When provided, results will begin with the recipient attachment immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Listsendmoneyapprovalrequests

**Slug:** `MERCURY_MCP_LIST_SEND_MONEY_APPROVAL_REQUESTS`


    Retrieve a paginated list of send money approval requests for the authenticated organization. Supports filtering by account and status.

    
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `status` | string ("pendingApproval" | "approved" | "rejected" | "cancelled") | No |  |
| `accountId` | string | No | ID for a Mercury account. |
| `end_before` | string | No | The ID of the send money approval request to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `start_after` | string | No | The ID of the send money approval request to start the page after (exclusive). When provided, results will begin with the send money approval request immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |

### Listtransactions

**Slug:** `MERCURY_MCP_LIST_TRANSACTIONS`


    Retrieve a paginated list of all transactions across all accounts. Supports advanced filtering by date ranges, status, categories, and cursor-based pagination.

    
    CRITICAL TRUNCATION RULE - READ THIS FIRST:
    ================================================================================
    IF YOU SEE "Result too long" IN THE RESPONSE:
    1. IMMEDIATELY STOP - Do not analyze or use the truncated data
    2. The data is INCOMPLETE and any analysis will be WRONG
    3. Start over with a smaller limit (reduce by 50%)
    4. Paginate through ALL pages until you have complete data
    5. NEVER provide answers based on truncated results
    ================================================================================

    MANDATORY PAGINATION FOR COMPLETE RESULTS:
    When a user asks ANY question requiring complete data (totals, balances, aggregates, 
    "most/least", "all transactions", comparisons, or any calculation across transactions):

    CRITICAL: Incomplete pagination will produce WRONG ANSWERS for questions about totals, 
    spending categories, balances, minimums, maximums, or "most/least". You must fetch everything 
    before calculating or answering.

    1. Start with a limit of 300 transactions.
    2. You MUST automatically paginate through ALL pages WITHOUT asking the user
    3. Continue calling listTransactions using the page.nextPage value from each response
    4. Keep fetching until page.nextPage is not present
    5. If pagination would take more than 3 tool calls, ask the user to narrow down to a smaller time period
    6. It is a CRITICAL ERROR to answer before having fetched ALL pages

    FILTERING:
    - IMPORTANT: WHEN FILTERING BY DATE, ALWAYS CHECK THE CURRENT DATE FIRST and ensure you're using the current year for current year queries
    - Unless specified otherwise or queried for "all transactions", ONLY include transactions with "status: sent"
    - To get transactions for a specific account, use the accountId parameter to filter by accountId

    PAGINATION MECHANICS:
    - Use the limit parameter to control page size
    - If page.nextPage is returned, use it as the start_after parameter in your next call
    - Keep fetching until page.nextPage is null/undefined
    - The page.nextPage value is a transaction ID to start after (exclusive)

    COMPUTATIONAL REQUIREMENTS:
    - For any query requiring:
      - Sums, totals, averages, medians, modes, ranges, most/least, or other aggregations across accounts/transactions
      - Calculations involving currency amounts
      - Comparisons of financial metrics
    - You MUST:
      - Create an artifact that processes the data programmatically
      - Parse the JSON response and use JavaScript/Python to calculate
      - Display intermediate steps for verification
      - Never rely on mental arithmetic for financial calculations
    - Example: "What's my total balance?"
      - CORRECT: Create artifact that parses accounts, maps to balances, uses reduce() to sum
      - INCORRECT: Manually adding up balance values

    For queries about 'last two months' or 'this year', calculate dates based on the actual current date
    Use the getCurrentDate tool to get the current date.

    Use the getTransaction tool to get more details about a specific transaction.
  
  

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | Latest createdAt date to filter for. If it’s not provided, it defaults to current day. Format: YYYY-MM-DD or an ISO 8601 string. Please note that your Mercury transactions on your Dashboard might have their postedAt date displayed, as opposed to createdAt |
| `limit` | integer | No | Maximum number of results to return. Allowed range: 1 to 1000. Defaults to 1000 |
| `order` | string ("asc" | "desc") | No | Sort order. Can be 'asc' or 'desc'. Defaults to 'asc' |
| `start` | string | No | Earliest createdAt date to filter for. If not provided, it defaults to the date of your first transaction. Format: YYYY-MM-DD or an ISO 8601 string. Please note that your Mercury transactions on your Dashboard might have their postedAt date displayed, as opposed to createdAt |
| `search` | string | No | Search term to look for in transaction descriptions. |
| `status` | array | No |  |
| `start_at` | string | No | The ID of the resource to start the page at (inclusive). When provided, results will begin with and include the resource with this ID. Use this to retrieve a specific page when you know the exact starting point. Cannot be combined with start_after or end_before. |
| `accountId` | array | No |  |
| `postedEnd` | string | No | Latest postedAt date to filter for. Format: YYYY-MM-DD or an ISO 8601 string |
| `categoryId` | string | No | UUID of a custom category. Can be returned from /categories endpoint. |
| `end_before` | string | No | The ID of the transaction to end the page before (exclusive). When provided, results will end just before this ID and work backwards. Use this for reverse pagination or to retrieve previous pages. Cannot be combined with start_after. |
| `postedStart` | string | No | Earliest postedAt date to filter for. Format: YYYY-MM-DD or an ISO 8601 string |
| `start_after` | string | No | The ID of the transaction to start the page after (exclusive). When provided, results will begin with the transaction immediately following this ID. Use this for standard forward pagination to get the next page of results. Cannot be combined with end_before. |
| `mercuryCategory` | string | No | Name of mercuryCategory you want to filter on. Merchant Type in the UI. |
