modern-treasury

MCP server for Modern Treasury — payment orders, transactions, counterparties and ledgers.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
64%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (14)

  • LOWTool 'modern_treasury_list_counterparties' name length outside 3-30 rangein modern_treasury_list_counterparties
  • LOWTool 'modern_treasury_get_counterparty' name length outside 3-30 rangein modern_treasury_get_counterparty
  • LOWTool 'modern_treasury_list_internal_accounts' name length outside 3-30 rangein modern_treasury_list_internal_accounts
  • LOWTool 'modern_treasury_list_external_accounts' name length outside 3-30 rangein modern_treasury_list_external_accounts
  • LOWTool 'modern_treasury_list_payment_orders' name length outside 3-30 rangein modern_treasury_list_payment_orders
  • LOWTool 'modern_treasury_get_payment_order' name length outside 3-30 rangein modern_treasury_get_payment_order
  • LOWTool 'modern_treasury_list_expected_payments' name length outside 3-30 rangein modern_treasury_list_expected_payments
  • LOWTool 'modern_treasury_list_transactions' name length outside 3-30 rangein modern_treasury_list_transactions
  • LOWTool 'modern_treasury_get_transaction' name length outside 3-30 rangein modern_treasury_get_transaction
  • LOWTool 'modern_treasury_list_ledger_accounts' name length outside 3-30 rangein modern_treasury_list_ledger_accounts

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,193Tokens (tool definitions)
~1000 BTypical response size
Moderate attention impact (1.71% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "modern-treasury": {
      "url": "https://modern-treasury.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://modern-treasury.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (17)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢modern_treasury_ping

Verify connectivity and credentials. API: GET /ping.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_counterparties(per_page, after_cursor, name, email)

List counterparties (contacts). API: GET /counterparties.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "name": {
      "description": "Filter by counterparty name.",
      "type": "string"
    },
    "email": {
      "description": "Filter by counterparty email.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_get_counterparty(id)

Get a single counterparty by id. API: GET /counterparties/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Counterparty id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_internal_accounts(per_page, after_cursor)

List your organization's internal bank accounts. API: GET /internal_accounts.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_external_accounts(per_page, after_cursor, counterparty_id)

List external (counterparty) bank accounts. API: GET /external_accounts.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "counterparty_id": {
      "description": "Filter by owning counterparty id.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_payment_orders(per_page, after_cursor, status, direction, counterparty_id)

List payment orders (READ ONLY — does not create or approve payments). API: GET /payment_orders.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "status": {
      "description": "Filter by status, e.g. approved, pending, completed.",
      "type": "string"
    },
    "direction": {
      "description": "Filter by direction.",
      "type": "string",
      "enum": [
        "credit",
        "debit"
      ]
    },
    "counterparty_id": {
      "description": "Filter by counterparty id.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_get_payment_order(id)

Get a single payment order by id (READ ONLY). API: GET /payment_orders/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Payment order id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_expected_payments(per_page, after_cursor, status)

List expected payments (READ ONLY). API: GET /expected_payments.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "status": {
      "description": "Filter by status, e.g. unreconciled, reconciled.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_transactions(per_page, after_cursor, internal_account_id)

List bank transactions. API: GET /transactions.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "internal_account_id": {
      "description": "Filter by internal account id.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_get_transaction(id)

Get a single transaction by id. API: GET /transactions/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Transaction id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_returns(per_page, after_cursor)

List payment returns (e.g. ACH returns). API: GET /returns.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_ledgers(per_page, after_cursor)

List double-entry ledgers. API: GET /ledgers.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_ledger_accounts(per_page, after_cursor, ledger_id)

List ledger accounts. API: GET /ledger_accounts.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "ledger_id": {
      "description": "Filter by ledger id.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_get_ledger_account(id)

Get a single ledger account by id, including balances. API: GET /ledger_accounts/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Ledger account id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_ledger_transactions(per_page, after_cursor, ledger_id)

List ledger transactions (READ ONLY — does not post value). API: GET /ledger_transactions.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "ledger_id": {
      "description": "Filter by ledger id.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢modern_treasury_list_ledger_entries(per_page, after_cursor, ledger_account_id)

List ledger entries (individual debits/credits). API: GET /ledger_entries.

Input Schema

{
  "type": "object",
  "properties": {
    "per_page": {
      "description": "Results per page (default 25, max 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "after_cursor": {
      "description": "Pagination cursor from a prior response's next_cursor (X-After-Cursor header).",
      "type": "string"
    },
    "ledger_account_id": {
      "description": "Filter by ledger account id.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴modern_treasury_create_counterparty(name, email, metadata)

Creates a counterparty (contact) record in Modern Treasury. Creates a record only — no bank details, MOVES NO MONEY. API: POST /counterparties.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Counterparty (contact) name."
    },
    "email": {
      "description": "Counterparty email.",
      "type": "string"
    },
    "metadata": {
      "description": "Arbitrary string key/value metadata.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Recommended Prompts

retrieve_data
Get details about [item] from modern-treasury
Expected tools: modern_treasury_get_counterparty
fetch_info
Fetch [information type] using modern-treasury
Expected tools: modern_treasury_get_counterparty
list_items
List all [items] available in modern-treasury
Expected tools: modern_treasury_list_counterparties
browse_collection
Show me the [collection] from modern-treasury
Expected tools: modern_treasury_list_counterparties
explore_workflow
List available [items], then get details for each one using modern-treasury
Expected tools: modern_treasury_list_counterpartiesmodern_treasury_get_counterparty

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded17 tools