🛡️Security and limits
An AI assistant with access to your MetaCopier project is powerful and, for the same reason, worth setting up carefully. This page collects everything that limits what it can do.
The layers
Access is decided by four independent layers. Every one of them can only take away, never add, so the most restrictive layer always wins.
1
The API key
Which project, read only or read write, and the access policy attached to it
2
OAuth scopes
On an OAuth connection: read, configuration writes, trading writes
3
The endpoint
Which toolsets the assistant can even see, and whether write tools are published at all
4
Your client
Whether it asks you to confirm before a destructive call goes out
Layers 1 to 3 are enforced by MetaCopier. Layer 4 is a convenience of your AI application, so do not build your safety on it alone.
What the assistant can never do
Reach a project that is not the project of the connection.
Reach another customer's data.
Write anything on a read only connection, no matter how it is asked.
Trade without
mcp:trading.writeon an OAuth connection, even when configuration writes are allowed.Write anything on a project with more than 100 accounts, unless we unlocked that project for you.
Change your billing, your password or your login.
Keep working after you revoke access. There is no cached credential that outlives it by more than its short lifetime.
Large projects are read only
A project with more than 100 accounts only ever gets a read only AI credential. Both write scopes are dropped when the credential is issued, so configuration changes and trades are refused no matter which scopes were approved or which endpoint you use.
The reason is blast radius. A single misread instruction on a project of that size touches hundreds of live accounts at once, and no undo exists for an order that already reached the broker. Reading stays fully available: the assistant can still analyse, report and explain everything.
The account count is refreshed at most once a day, so a project that just crossed the limit may keep its write access until the next refresh.
Credentials and lifetimes
API key
Until revoked
A long lived secret. Treat it like a password.
OAuth
60 minutes per credential
Minted fresh for each request and never handed to the AI application. The application only holds a token that is valid for MetaCopier's MCP server and nothing else.
On OAuth, MetaCopier keeps one key per project called AI Apps, created the first time an assistant connects. Every AI connection to that project works through a short lived child of it.
Revoking access
OAuth. Remove the connector in your AI application, and revoke the AI Apps key of the project in Projects → API Keys. Revoking the key cuts off every AI connection to that project at once, including ones you forgot about.
API key. Revoke the key in Projects → API Keys. The connection stops working immediately.
Revoking AI Apps stops all AI access to the project. Any assistant that was connected through OAuth has to be reconnected afterwards.
Access policy
An API key can carry an access policy, and everything in it applies to the assistant as well: allowed endpoints, hidden account fields, IP restrictions and CORS origins. On an OAuth connection, the scopes are applied on top of the policy of the AI Apps key, so a policy that already blocks an endpoint keeps blocking it.
🔐Access PolicyThis is the tool to reach for when you want something more specific than "read only", for example an assistant that may manage copiers but must never see account credentials.
Data and privacy
The assistant reads only what it asks for, and it can only ask for what the connection allows.
Everything it reads is sent to the AI provider you chose, because that is where the model runs. Your account names, balances, trade history and logs become part of that conversation. If that matters to you, restrict the fields with an access policy.
MetaCopier does not send anything to an AI provider on its own. Nothing happens without a request from your client.
A sensible setup
Trying it out
/p/{projectId}/mcp/readonly with a read only API key, or OAuth with only mcp:read approved
Everyday questions
/p/{projectId}/mcp, default toolsets, read only
Managing the setup
/p/{projectId}/mcp/x/accounts,copiers,strategies with mcp:config.write
Trading
A separate connection on /p/{projectId}/mcp/x/trading with mcp:trading.write
Keeping trading on its own connection is the single most useful habit here. A conversation that cannot see the trading tools cannot place an order by accident.
Last updated