Home › Safety and setup › Read-Only MCP Server for Finance: How to Set One Up
Read-Only MCP Server for Finance: How to Set One Up
To use a read-only MCP server for finance, give it a credential that can only read at the source, expose only read tools, keep the connected set small and log what it does. The key idea is to enforce read-only in the account permissions, because a tool list or a prompt can be bypassed and a permission cannot.
Three layers of “read-only”
People often rely on one layer and call the result safe. Better to stack three.
- Credential layer. The API key or token at the finance system itself has read scopes only. If the key cannot write, nothing the model says can make it write.
- Server layer. The MCP server exposes only read tools. This reduces confusion and attack surface.
- Client layer. The assistant is configured to require approval for tool calls, and not to auto-approve anything touching money, files or the network.
The BusinessMCP finance directory points to this exact approach in its FAQ: it advises using a read-only credential and says most servers respect the scopes on the key supplied. You can see that page at the finance MCP server list. It also covers how to stop an agent acting on money, namely read-only credentials and human approval.
Key takeaway: a prompt that says “do not change anything” is a wish. A credential that cannot change anything is a control.
Step-by-step setup
- Pick the job. For example, “answer questions about overdue invoices”.
- Create a dedicated identity. A separate service user or restricted API key for the assistant, never your personal admin login.
- Grant read scopes only, and only for the objects the job needs. If the system offers per-resource scopes, use them.
- Confirm the scopes by testing. Try a write call with the key outside the assistant and make sure it is refused.
- Connect the server and list its tools in the client. Compare them with the job.
- Disable or hide tools you do not need, if the client or host allows it.
- Turn off auto-approval for tools that touch credentials, files or the network.
- Turn on logging and decide who reviews it.
- Test in a sandbox with fake data before connecting live data.
- Set a review date to remove the connection if nobody uses it.
What read-only looks like across common servers
| Server type | Read-only usually means | Watch out for |
|---|---|---|
| Payments (e.g. Stripe toolkit) | Restricted key with read permission on customers, subscriptions, charges | The toolkit lists six write-capable tools out of eight, so the key matters |
| Accounting (QuickBooks, Xero) | Read-only user or scope for invoices and reports | Multi-company access |
| Bank data (Plaid) | Balances and transactions only | Sensitive personal data in chat |
| On-chain (Blockscout) | No keys at all, public data | Hostile text in token and contract metadata |
The payments example comes from the Stripe Agent Toolkit page, which lists eight tools, of which only listing subscriptions and retrieving a customer are pure reads. We cover that in our Stripe MCP server article, and the bank data angle in the Plaid MCP server piece. The Blockscout page states it cannot move funds or sign transactions, which makes it read-only by design; see blockchain data servers.
Read-only is not risk-free
Two residual risks remain.
Data exposure. Reading is enough to expose sensitive information to your AI provider, to other people who can see the chat, or to a manipulated assistant. If the model also has an outbound tool, such as email or web browsing, injected instructions could try to send data out. The BusinessMCP guide on MCP prompt injection describes exfiltration through outbound tools and recommends keeping the connected set minimal. Our piece on prompt injection for finance agents goes into specifics.
Wrong answers. An assistant can misread a table or pick the wrong entity. Read-only prevents damage to the data, not damage from decisions based on it. Spot-check figures.
Policy points for teams
- Write down which systems may be connected and who approves new ones.
- Use named service accounts so the audit trail shows the assistant, not a person.
- Rotate keys on a schedule and when staff change.
- Keep a one-page runbook for revoking access quickly.
- Check privacy and data-protection obligations before connecting customer or employee data.
When to allow writes
Add write tools only for a concrete job where the benefit is clear, and then one tool at a time. Each should require explicit human confirmation showing exactly what will change. If you cannot articulate the approval step, you are not ready. For a connection walkthrough, see connecting a finance MCP server to Claude.
This article is general security guidance, not a substitute for your organisation’s own risk assessment.
Verifying read-only in practice
Do not take a label on trust. After creating the credential, try to use it outside the assistant for something it should not be able to do: create a test record, edit a draft, trigger a refund in a sandbox. If the call succeeds, the key is not read-only, whatever the settings page said. This five-minute test catches more problems than any amount of policy writing.
Repeat it after any change to the key, the server or the scopes. Permissions drift: someone adds a scope for a one-off task and forgets to remove it.
Documenting the setup
A one-page record pays for itself the first time something looks odd. Write down which systems are connected, which key is used for each, what scopes it holds, who created it, when it was last rotated and who reviews logs. Store it somewhere the team can find, and review it quarterly.
If you are a solo user, the same page is still useful. It is much easier to revoke access in a hurry when you know exactly what exists. Include the steps to revoke each key and the contact for each vendor’s support. When an incident happens, you will not want to be searching for those details.
Frequently asked questions
What does read-only mean for an MCP server?
It means the tools and credentials can retrieve data but cannot create, change, send or delete anything. True read-only is enforced by the key’s permissions, not only by the tool list.
Is a read-only tool list enough?
No. Also use a read-only credential at the source, so even a modified or misbehaving server cannot write. Defence should exist at the permission layer, not just the interface.
Can a read-only server still leak data?
Yes. If it can read sensitive data and the assistant has any outbound tool, injected instructions could try to send data out. Keep the connected set small.
How do I check what a server can do?
List its tools in your client, read each description, look at the repository or vendor docs and test with a sandbox account.
Sources
- Model Context Protocol – Introduction – https://modelcontextprotocol.io/
- OWASP – Top 10 for Large Language Model Applications – https://owasp.org/www-project-top-10-for-large-language-model-applications/