Let your agent trade. Keep the final say.
Tickwire sits between your AI agent and a real MT4 or MT5 terminal. It sends each order once and reports what actually happened, or “unknown” if that can't be confirmed. Whether a trade is a good idea is up to you.
Real terminals, one API for MT4 and MT5, with the API shapes existing clients already call.
MetaTrader 5 now works with AI agents, but only on your own computer.
In July 2026 MetaQuotes added native AI-agent (MCP) support to the MetaTrader 5 desktop terminal. Agents can now reach a terminal that runs on someone's own computer, while that computer is on.
A trading agent also needs a terminal that stays on, orders that don't go out twice when retried with the same key, and a record of what happened. Tickwire is that, hosted. A check your own code controls comes next, with the agent API.
Tickwire MCP server
The Tickwire MCP server lets AI apps and agents use Tickwire as tools: accounts, health, quotes, orders, trade status and their own audit log. Claude, ChatGPT and other apps that support remote MCP servers connect by signing in with Tickwire. Developer tools can send an agent key instead.
The address:
https://api.tickwire.io/mcp Setup for Claude and ChatGPT is below.
Use Tickwire from Claude or ChatGPT
Paste the Tickwire address, sign in, and choose which accounts the app may use and whether it may only look or also trade. There is no key to copy.
Claude
Plans: Free (one custom connector), Pro, Max, Team and Enterprise, on claude.ai and the Claude desktop app.
- Open Customize › Connectors, press + Add, then Add custom connector.
- Name it Tickwire, paste the address and press Continue.
- Keep the sign-in settings Claude suggests and press Add. You don't need a key or a client ID.
- Sign in with your Tickwire login, pick the accounts, choose Look only or Look and trade, and press Allow.
- In a chat, press + › Connectors and turn Tickwire on.
Team and Enterprise: an owner adds the connector first under Organization settings › Connectors. Each member then presses Connect under Customize › Connectors.
Steps from Anthropic's documentation, checked on 4 October 2026. Claude Help Center: custom connectors
ChatGPT
Plans: Plus, Pro, Business, Enterprise and Education, on the web (chatgpt.com). Not on the free plan. In a Business, Enterprise or Education workspace an admin may have to allow developer mode first.
- On chatgpt.com, open Settings › Security and login and turn on Developer mode.
- Go to Plugins and press + to create an app.
- Name it Tickwire, paste the address under Connection, choose OAuth and create it.
- Sign in with your Tickwire login, pick the accounts, choose Look only or Look and trade, and press Allow.
- In a new chat, open the + menu, choose Developer mode and select Tickwire.
ChatGPT asks you to confirm each action that changes something, such as placing an order, unless you tell it to remember your answer for that chat.
Steps from OpenAI's documentation, checked on 4 October 2026. OpenAI: developer mode · OpenAI: connect from ChatGPT
System prompt templates for Claude & ChatGPT
Copy and paste this into your Custom Instructions or Project prompt so your assistant trades safely:
You are a trading assistant connected to Tickwire via MCP.
- Always inspect account state and open positions before proposing or placing a trade.
- Always include an Idempotency-Key and a clear reason (X-Reason) with every trade order.
- If an order returns "unknown", treat it as possibly executed. Never resend or double the order. Check open orders first.
- If the user has set risk limits or if markets are closed, do not place orders. An app connected this way is limited like an agent key: it can use only the accounts you pick, and only look if you chose Look only. You can disconnect it at any time from Connected apps in the dashboard. Kill switches and pre-trade hooks apply directly to its orders.
Other MCP apps
Most apps that support remote MCP servers work, for example Claude Code and Cursor. Give the app this address:
https://api.tickwire.io/mcp There are two ways to connect:
- Sign in with Tickwire. Paste the address. The app opens Tickwire's sign-in, where you pick the accounts and what it may do.
- An agent key. For developer tools that let you set request headers. Create an agent key in the dashboard and send it as
Authorization: Bearer twag_….
Agent → Tickwire → your guard hook → broker
- Your agent or toolAn AI agent, a copier, a risk tool or your own code calls one API.
- TickwireChecks the key, which accounts it may use and the kill switches, and spots repeats by their idempotency key.
- Your guard hookYour own service answers allow, deny or hold. No answer means no order.
- Broker, via a real terminalThe terminal sends the order to the broker, and you get back the result and the broker's code.
This is the path once the agent API arrives. Key scope, read-only and kill switches are checked before your hook is called, and a stopped agent gets no further than that.
Tickwire gives you the controls. Your guard sets the rules.
| Tickwire does | Your guard does, on the hook |
|---|---|
| Scoped and read-only keys | Maximum volume, maximum open positions |
| Kill switch per agent key and per account | Daily or total loss limits, drawdown |
| Repeated calls with the same idempotency key don't trade twice | Trading hours, news blackouts, symbol lists |
| An actor and a reason on every trade, in the audit log | Human approval: answer hold, then release |
Clear order results: applied, rejected or unknown | Anything else you want to enforce |
| Signed webhooks and a signed, fail-closed pre-trade hook |
Your guard answers allow, deny or hold
Register one URL per account or per agent key. Before any order is sent, Tickwire posts the order, who asked, why, and a fresh read of the account to it, signed with HMAC-SHA256.
The request
POST https://guard.example.com/decide
X-Tickwire-Event: pretrade.decision_request
X-Tickwire-Timestamp: 1790244000
X-Tickwire-Signature: sha256=…
{
"type": "pretrade.decision_request",
"request_id": "dr_…",
"deadline_ms": 2000,
"account_id": "acc_7Qx",
"platform": "mt5",
"actor": { "kind": "agent", "label": "agent:eurusd-scout" },
"reason": "breakout above the Asian range",
"order": { "actionType": "ORDER_TYPE_BUY", "symbol": "EURUSD", "volume": 0.5, "stopLoss": 1.0712 },
"account": { "balance": 10000.0, "equity": 9950.2, "currency": "USD", "source": "terminal" }
} Your answer
HTTP/1.1 200 OK
X-Tickwire-Timestamp: 1790244000
X-Tickwire-Signature: sha256=…
{ "request_id": "dr_…", "decision": "deny", "message": "daily loss limit reached" } - allow: the order is sent once, and the agent gets the confirmed outcome (or
unknown). - deny: nothing is sent; the agent sees your message.
- hold: nothing is sent until you release it, for example after a person approves.
- Fails closed by default: a timeout, an error, an unsigned or malformed answer means the order is not sent.
- The answer echoes
request_id, so a recordedallowcan't be replayed for another order.
Available now. Register pre-trade hooks in your dashboard under AI agents > Pre-trade hooks or through /v1/pretrade-hooks. When configured with applies_to: all, orders sent through the direct REST trading route (/users/current/…/trade) are also automatically routed through your guard.
Each control and its proof
| Guarantee | Proof |
|---|---|
| With an Idempotency-Key, a retry never double-fires | A replay with the same key returns the stored result. Nothing is sent to the broker again. |
| If we can't confirm an order, we say “unknown” | Every order goes through this check. |
| A log of who did what, and why | Every endpoint that changes something is logged. With no X-Actor, the log records the calling key's id. Direct terminal calls record “unknown” instead, and the request log shows which key sent them. |
| Signed webhooks | Signature scheme and verification code are in the webhooks docs. |
| Scoped and read-only keys, and a kill switch | Available now in the dashboard and API. Create keys scoped to specific accounts and toggle instant kill switches. |
| A pre-trade decision hook for your own guard | Available now in the dashboard and API. Signed HMAC requests gate order execution, with automatic hold and release. |
What an agent can call
These are the MCP server's tools. Each trading tool needs a reason and takes a client request id. A model that repeats a call with the same id doesn't trade twice. Without an id, the same order repeated within a minute gets the first answer back instead of a second trade. Text from the broker or terminal is marked untrusted, which tells the model not to follow instructions in it.
| Tool | Does |
|---|---|
list_accounts | Accounts this key may use: id, platform, server, login, status |
get_agent_permissions | Read-only flag, kill switches, scope, and which hooks review orders |
get_account_health | connected, disconnected or unknown, with the evidence |
get_account_info | Balance, equity, margin, free margin, leverage, currency |
get_positions | Open positions |
get_orders | Pending orders |
get_quote | Bid and ask, with their times |
get_symbol_spec | Volume limits, digits, contract size |
get_history | Deals in a window: 24 hours by default, at most 31 days |
place_order | Market, limit, stop and stop-limit orders, with absolute stop loss and take profit |
modify_position | Change a position's stop loss or take profit |
close_position | Close a position in full or in part |
modify_order | Change a pending order |
cancel_order | Cancel a pending order |
get_trade_status | What happened to a trade, by its idempotency key |
get_audit_log | This agent's own audit trail |
search_tickwire_docs | Search the public docs and API reference (read-only) |
Units: volumes in lots, prices absolute, money in the account currency, times in UTC unless a field is labelled broker time.
The tools work on MT4 and MT5 accounts. Stop-limit orders are MT5 only. See MT5 and MT4 for what each platform supports.
You run the agent and the guard
Tickwire executes what your agent asks, within the limits you set. It gives no investment advice and doesn't judge trades. You're responsible for your agents, your guard and the accounts you connect, as the terms and acceptable use policy say.
Give a new agent a read-only key first.
Get started today
- Quickstart: connect an account and place an order.
- The MT5 API and the MT4 API: what an agent can reach on each platform.
- Idempotency and outcomes: what
unknownmeans and what to do. - Keys and scoped tokens: read-only and per-account access.
- Webhooks: verifying signatures.
- Pricing: from $12 per account a month, 7-day free trial.
Try it
Seven-day free trial. Give your agent a read-only key first, then let it trade.