MCP server for Modern Treasury — payment orders, transactions, counterparties and ledgers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Creates a counterparty (contact) record in Modern Treasury. Creates a record only — no bank details, MOVES NO MONEY. API: POST /counterparties.
Counterparty (contact) name.
Counterparty email.
Arbitrary string key/value metadata.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Creates a counterparty (contact) record in Modern Treasury. Creates a record only — no bank details, MOVES NO MONEY. API: POST /counterparties.
| Argument | Type | Description |
|---|---|---|
| name* | string | Counterparty (contact) name. |
| string | Counterparty email. | |
| metadata | object | Arbitrary string key/value metadata. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Counterparty (contact) name."
},
"email": {
"type": "string",
"description": "Counterparty email."
},
"metadata": {
"type": "object",
"description": "Arbitrary string key/value metadata.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
}
}Get a single counterparty by id. API: GET /counterparties/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Counterparty id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Counterparty id."
}
}
}Get a single ledger account by id, including balances. API: GET /ledger_accounts/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Ledger account id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Ledger account id."
}
}
}Get a single payment order by id (READ ONLY). API: GET /payment_orders/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Payment order id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Payment order id."
}
}
}Get a single transaction by id. API: GET /transactions/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Transaction id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Transaction id."
}
}
}List counterparties (contacts). API: GET /counterparties.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by counterparty name. |
| string | Filter by counterparty email. | |
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Filter by counterparty name."
},
"email": {
"type": "string",
"description": "Filter by counterparty email."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
}
}
}List expected payments (READ ONLY). API: GET /expected_payments.
| Argument | Type | Description |
|---|---|---|
| status | string | Filter by status, e.g. unreconciled, reconciled. |
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"type": "string",
"description": "Filter by status, e.g. unreconciled, reconciled."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
}
}
}List external (counterparty) bank accounts. API: GET /external_accounts.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
| counterparty_id | string | Filter by owning counterparty id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
},
"counterparty_id": {
"type": "string",
"description": "Filter by owning counterparty id."
}
}
}List your organization's internal bank accounts. API: GET /internal_accounts.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
}
}
}List ledger accounts. API: GET /ledger_accounts.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| ledger_id | string | Filter by ledger id. |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"ledger_id": {
"type": "string",
"description": "Filter by ledger id."
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
}
}
}List ledger entries (individual debits/credits). API: GET /ledger_entries.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
| ledger_account_id | string | Filter by ledger account id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
},
"ledger_account_id": {
"type": "string",
"description": "Filter by ledger account id."
}
}
}List ledger transactions (READ ONLY — does not post value). API: GET /ledger_transactions.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| ledger_id | string | Filter by ledger id. |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"ledger_id": {
"type": "string",
"description": "Filter by ledger id."
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
}
}
}List double-entry ledgers. API: GET /ledgers.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
}
}
}List payment orders (READ ONLY — does not create or approve payments). API: GET /payment_orders.
| Argument | Type | Description |
|---|---|---|
| status | string | Filter by status, e.g. approved, pending, completed. |
| per_page | integer | Results per page (default 25, max 100). |
| direction | string | Filter by direction. |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
| counterparty_id | string | Filter by counterparty id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"type": "string",
"description": "Filter by status, e.g. approved, pending, completed."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"credit",
"debit"
],
"type": "string",
"description": "Filter by direction."
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
},
"counterparty_id": {
"type": "string",
"description": "Filter by counterparty id."
}
}
}List payment returns (e.g. ACH returns). API: GET /returns.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
}
}
}List bank transactions. API: GET /transactions.
| Argument | Type | Description |
|---|---|---|
| per_page | integer | Results per page (default 25, max 100). |
| after_cursor | string | Pagination cursor from a prior response's next_cursor (X-After-Cursor header). |
| internal_account_id | string | Filter by internal account id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Results per page (default 25, max 100).",
"exclusiveMinimum": 0
},
"after_cursor": {
"type": "string",
"description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header)."
},
"internal_account_id": {
"type": "string",
"description": "Filter by internal account id."
}
}
}Verify connectivity and credentials. API: GET /ping.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}