TradeOnyx MCP Server
Connect TradeOnyx to Claude, ChatGPT, Gemini or any other MCP-capable assistant. Log trades by voice, have the assistant read your journal back to you, and let it ground its answers in your actual trading history instead of guessing.
TradeOnyx is a trading journal with pattern detection: it imports trades from 40 brokers and runs 28 detectors over your own history to surface what repeats in your trading. This repository documents its MCP server. It contains no product code.
49 tools · JSON-RPC 2.0 over HTTP · hosted in Germany
Endpoint
https://tradeonyx.io/mcp
Transport is HTTP with JSON-RPC 2.0. Authentication is a Bearer token in the
Authorization header. The server implements initialize, tools/list and
tools/call, and speaks protocol version 2025-06-18.
An unauthenticated call answers honestly rather than hanging:
curl -s -X POST https://tradeonyx.io/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# {"jsonrpc":"2.0","id":null,"error":{"code":-32001,"message":"Unauthorized"}}
Getting a token
- Create an account at tradeonyx.io. The account is free and asks for no payment details.
- Open Settings → Integrations and start the 7-day connector trial. A free account can start it once. After it runs out the connector needs Pro or Pro Plus; the journal, the broker imports and the tax export stay free either way. A call made without an active trial or plan is refused with a message saying so, never with a silent empty result.
- On the same screen, create an MCP token.
- Copy it immediately. The raw token is shown once; only a SHA-256 hash is stored, so a lost token cannot be recovered, only replaced.
- Revoke any token from the same screen at any time.
Tokens carry 256 bits of entropy. Treat one like a password: it grants the same access to your journal that you have.
Connecting an assistant
Any client that speaks MCP over HTTP works. For a client configured through a JSON file, the shape is:
{
"mcpServers": {
"tradeonyx": {
"url": "https://tradeonyx.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}
Assistants that support remote MCP connectors directly (Claude's Connectors, for example) can add the endpoint through their own UI, including an OAuth flow, so no token needs to be pasted by hand.
What you can do with it
A few things people actually use it for:
- Log a trade in a sentence. "I bought 0.5 lots EURUSD at 1.0840, stop at 1.0810, because the London range broke upward." The assistant fills the fields and writes the reasoning into the journal next to the trade.
- Write the evening review by talking. The assistant reads back the day's trades, asks what you were thinking, and files the answers as a journal entry.
- Ask what actually happened. "Which of my setups lost money this month, and what did those trades have in common?" — grounded in your own rows, not in a guess.
- Prepare the session. Pull the daily briefing and the planned playbooks before the open.
Tools
49 tools. 45 need an active connector trial, Pro or Pro Plus; the 4 bulk aggregations need Pro Plus. The Plan column below says which.
Daily tool-call caps, counted per UTC day and shown in the app:
A call over the cap comes back as a normal tool result with isError: true,
naming the cap and when it resets, so an assistant can say what happened
instead of failing silently. It is HTTP 200: a cap is a business rule, not a
malformed request, and the specification's own worked example of a tool
execution error is an upstream rate limit.
How errors arrive
Two levels, and which one you get tells you whether the fix is in your arguments or in the data:
- Wrong arguments come back as a JSON-RPC error with code
-32602anddata.code = "invalid_arguments". That covers an unknown tool, an argument name the tool does not accept, a value outside a declaredenum, and a value past a declaredmaxLength/maxItems/maximum. Everything in that list is declared in theinputSchemayou already hold, so a client can correct it without asking. - Everything else comes back as a tool result with
isError: trueand a message incontent: a row that does not exist, a value the database will not store, a plan that does not include the tool, the daily cap.
Both are HTTP 200, because the transport requires exactly one JSON object per request. Values past a declared bound are refused, not shortened: a 5000 character note is rejected with the limit named rather than stored as its first 2000 characters, so what you keep is what you sent.
Accounts
Attachments
Broker sync
Daily briefing
Economic events
Journal
Market data
News
Patterns
Playbooks
Statistics
Strategies
Tags
Trades
Trading rules
Weekly digest
Plans
A free account starts the connector trial once, under Settings → Integrations. Before it is started, and after it has run out, the connector answers every call with an explicit refusal naming what to do; it does not return empty results. The web app itself stays free throughout.
Prices and current limits are on the pricing page.
Privacy and security
- Servers are in Germany and your journal and trades stay in the EU. The AI features send the text they analyse to a processor in the United States; every processor is named in the privacy policy, which is the authoritative list.
- Tokens are stored as SHA-256 hashes; the raw value exists only in your clipboard.
- Every tool resolves data through the authenticated user. A token reaches exactly the account it belongs to.
- Deleting your TradeOnyx account erases the associated data, including the access log for your requests.
Found a security issue? Please report it privately to the address in our security.txt ([email protected]) rather than opening a public issue.
Links
Disclaimer
TradeOnyx is a documentation and analysis tool. It does not provide investment advice or investment brokerage, and it does not generate trading signals. Trading financial instruments can lead to the total loss of the capital invested.
Licence
The documentation in this repository is MIT-licensed. TradeOnyx itself is a commercial product and is not open source.