Modern Treasury MCP server: what it can do, what it can change, how to connect
Modern Treasury publishes an official local MCP server (npm: modern-treasury-mcp) that can read and write across its API, payments included. API key auth. Verified 21 Oct 2026.
- Official MCP server · read & write (local)
- Hosting
- Local stdio via
npx -y modern-treasury-mcp, part of the open-source TypeScript SDK. It can also be self-hosted over Streamable HTTP; Modern Treasury publishes no hosted URL. - Auth
- Modern Treasury API key and organization ID (plus a webhook key) as environment variables; Basic auth or API-key headers in self-hosted HTTP mode.
- Read / write
- Read and write. Two tools: a docs search and a code tool that can call any of the SDK's 180 methods (per the server's source), including payment orders.
- Works with
- Claude Desktop, Claude Code, Cursor, VS Code and other MCP clients that run local servers
- Plan requirement
- A Modern Treasury account and API key. Modern Treasury doesn't document a separate MCP charge or plan requirement.
- Last changed
- 2026-09-04 (npm version 4.21.0; the server now uses a two-tool Code Mode design)
- Verification
- Verified 21 Oct 2026 by theFinanceStack · confidence: high
What can an agent do with Modern Treasury through MCP?
Almost anything the API allows. Per the server's source, its code tool can call 180 SDK methods: 92 that create, change or delete records, 87 reads and one deprecated alias.
Modern Treasury launched the server on 11 April 2025 as a wrapper around its TypeScript SDK. It now uses a "Code Mode" design with two tools.
Where it runs
| Tool | What it does |
|---|---|
| Docs search | Searches the SDK docs. |
execute | Runs TypeScript the agent writes, using your API key, in a local Deno sandbox that can reach only the Modern Treasury API (per the server's source). |
How writes behave
- Every call takes effect as soon as it runs. There is no draft step.
- Ledger methods such as
ledgerTransactions.createwrite entries directly.
Methods that move money or change where it goes
paymentOrders.create,createAsyncandupdatepaymentOrders.reversals.createreturns.createbulkRequests.createpaymentActions.createpaymentFlows.createinvoices.addPaymentOrderexternalAccounts.create,updateandverify
Can
- Read internal accounts, transactions, counterparties, payment orders, expected payments, invoices and ledgers
- Create, update and delete counterparties, external accounts and expected payments, and email a counterparty to ask for its bank details (direct writes)
- Create and update invoices and invoice line items, and attach payment orders to invoices (direct writes)
- Create payment orders, reversals and returns, and cancel an order or undo its approval through paymentOrders.update (direct; your approval rules decide whether a new order waits for review)
- Create, reverse and partially post ledger transactions; create, change and delete ledger accounts and categories (direct writes)
- Search the SDK and API documentation to work out which method to call (read-only)
Cannot
- Approve payment orders through a dedicated approval method; none appears in the server's method list. paymentOrders.update can still change an order's status, which the SDK documents for cancelling an order or undoing an approval.
- Reach the web from the code sandbox (per the README), or read files outside the server's own package folder (per the source)
- Go beyond the permissions set on the API key it runs with
What access does it get?
Exactly what the API key allows. Modern Treasury sets key permissions per object when the key is created, and they can't be changed afterwards.
| Where | Scopes and permissions (as documented) | Admin requirement |
|---|---|---|
| Local MCP server (stdio) | Env vars MODERN_TREASURY_API_KEY, MODERN_TREASURY_ORGANIZATION_ID, MODERN_TREASURY_WEBHOOK_KEY. Access follows the key: the "API Manage All Role" (all current and future resources) or per-object permissions. Flags narrow the code tool: --code-allow-http-gets (blocks non-GET methods by name), --code-allowed-methods, --code-blocked-methods, --no-tools code. | Create the key under Developers › API Keys, optionally with allowed IPs. Key permissions don't depend on the creator's role; Modern Treasury doesn't say which roles can create keys. |
| Self-hosted HTTP mode (--transport=http) | Authorization header with the Basic scheme, or x-modern-treasury-api-key and x-modern-treasury-organization-id headers. Same key permissions as above. | You run and secure the server yourself; Modern Treasury doesn't host it. Per the source, auth headers are optional and the method flags can be overridden by a client header, so see the cautions below. |
How do I connect it?
Create a narrowly scoped API key, then add npx -y modern-treasury-mcp with three environment variables to Claude Desktop, Claude Code, Cursor or VS Code.
- Claude Desktop only: Claude.ai in the browser can't run local servers, and there is no directory connector.
- Create a narrowly scoped API key in Modern Treasury (Developers › API Keys).
- Add the block from the Local server tab to Claude Desktop's config file and restart it.
Modern Treasury's launch post shows Claude Desktop using this config block; the README doesn't cover Desktop.
What should a finance team watch for?
The server can create payment orders with whatever key you give it. Key permissions and approval rules are what limit it.
- With a full-access key and no flags, an agent can create payment orders, reversals, returns and bulk requests, and change counterparty bank details, each taking effect at once.
- Modern Treasury approval rules cover payment orders and external accounts, and both can match a creation source of API. Set one of each before allowing writes, so agent-created payment orders and bank details wait for a reviewer. Modern Treasury documents no approval rules for reversals, returns or ledger transactions.
- The method allow and block flags use simple string matching; the server's own source warns this "is not secure against obfuscation" and recommends limited API keys. The key's permissions are the control; treat the flags as an extra guardrail.
- Payment descriptions, counterparty names and invoice text are free text. An injected instruction in one could push the agent to create or redirect a payment; keep tool-call approval on in your client.
- Per the source, the code sandbox inherits the server's environment variables, so agent code can read them. Give the server only the three Modern Treasury variables and don't start it from a shell that holds other secrets.
- In self-hosted HTTP mode, per the source, a request without auth headers uses any API key set in the server's environment, and the server listens on all network interfaces. A client header can also override the method flags. Don't put the key in the server's environment, keep the server on a private network or behind a proxy, and rely on key permissions.
- The API key sits in plain text in the client config, often in a synced or backed-up folder. Don't commit it; use a dedicated key with allowed IPs and rotate it if exposed.
- Modern Treasury's MCP pages say nothing about data handling or training; read its privacy policy and your AI provider's terms. No MCP-specific rate limits are documented.
How could finance teams and accounting firms use it?
With a key that has no write access, use it for cash and payment-status questions. With writes allowed, use it to prepare payment work that a person approves.
Inside a company
- Ask for balances across internal accounts and today's incoming and outgoing payments.
- List payment orders that failed, were returned or await approval.
- Check expected payments against received transactions to spot what hasn't arrived.
- Prepare a payment order for a person to review under an approval rule before it is sent.
At an accounting firm
- If the client uses Modern Treasury Ledgers, pull its ledger balances and transactions for a month-end cash reconciliation.
- List counterparties missing verified bank details before a payment run.
- Compare Modern Treasury ledger entries with general ledger data from another connector or an export to find timing differences. This server can't read the general ledger.
Whatever the use, keep a person approving anything that moves money or changes Modern Treasury records, ideally through approval rules for API-created payment orders and external accounts.
Want Modern Treasury connected to Claude for your team?
We set up scoped connections, with a review step before anything changes your books, for a fixed fee.
Book a 30-minute setup callChange log
| Date | Change | Source |
|---|---|---|
| 2026-10-21 | README and source re-checked: Code Mode (search_docs, execute), method allow/block flags, self-hosted HTTP mode, sandbox environment and Deno requirement | github.com/Modern-Treasury/modern-treasury-node/tree/main/pa |
| 2026-09-04 | npm package modern-treasury-mcp 4.21.0 published | www.npmjs.com/package/modern-treasury-mcp |
| 2025-04-11 | Modern Treasury announced the MCP server as part of its TypeScript SDK | www.moderntreasury.com/journal/introducing-the-modern-treasu |
FAQ
Is this official?
Yes. Modern Treasury announced it on its journal and publishes it in its own GitHub repository and on npm as "The official MCP Server for the Modern Treasury API".
Is it free?
The server is open source (MIT). Modern Treasury doesn't document an MCP charge; you need a Modern Treasury account and API key.
Does it change data in Modern Treasury?
It can. By default the code tool can call write methods, including creating payment orders. To keep it to reads, use an API key whose per-object permissions don't allow writes. Starting it with --code-allow-http-gets adds a block on write methods by name, which code can get around.
Is my data used to train models?
Modern Treasury's MCP pages don't say. Check Modern Treasury's privacy policy and your AI provider's terms before connecting.
Can my accountant use it on my behalf?
Modern Treasury doesn't document this. The server acts with whichever API key it is given, so you would issue your accountant a separate, narrowly scoped key that you can revoke.
Sources
- Modern Treasury MCP server README (install, Code Mode, HTTP mode)
- Modern Treasury TypeScript SDK repository
- MCP server source: CLI flags (method allow/block, tool selection)
- MCP server source: SDK method list
- MCP server source: code tool and sandbox
- MCP server source: self-hosted HTTP mode (auth headers, permission override header)
- Modern Treasury: Introducing the Modern Treasury MCP Server (11 Apr 2025)
- npm: modern-treasury-mcp
- Modern Treasury docs: API key permissions
- Modern Treasury docs: Create an API key
- Modern Treasury docs: Approval rules for payment orders
- Modern Treasury docs: Approval rules overview
- Modern Treasury docs: Approval rules for external accounts
- Modern Treasury API reference: Update payment order
- Modern Treasury privacy policy
Verified by theFinanceStack, 21 Oct 2026. Vendor list on the CFO Software Market Map courtesy of Jason Staats; AI connectivity data by theFinanceStack. Not tax, compliance or financial advice.