MCP-Server

FIXSIM

io.github.GammaThreeTrading/fixsim
Entwicklertools Finanzen & Investieren Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Provides sandbox and hosted FIX trading sessions for sending orders, simulating fills and rejects, testing raw FIX messages, and inspecting execution reports.

fixsim_act_on_orders
Act on inbound orders
Respond to orders the user's system sent into FIXSIM: acknowledge, fully or partially execute, reject, cancel remaining, expire, done-for-day, restate, or accept/reject a pending cancel/replace. FIXSIM emits the matching execution reports on the FIX session. Give one or more ClOrdIDs; for executions supply lastPx and, for a partial, lastQty.
Eingabeschema
{'type': 'object', 'required': ['instance', 'session', 'action', 'clOrdIds'], 'properties': {'action': {'type': 'string', 'description': 'One of: Ack, FullyExecute, PartialExecute, CancelRemaining, DoneForDay, AckCancelOrdReplaceReq, AcceptCancelOrdReplaceReq, RejectCancelOrdReplaceReq, Reject, Delete, Restate, Expire'}, 'apiKey': {'type': ['string', 'null'], 'default': None}, 'lastPx': {'type': ['number', 'null'], 'default': None, 'description': 'Fill price (LastPx) for executions'}, 'lastQty': {'type': ['number', 'null'], 'default': None, 'description': 'Fill quantity (LastQty) for a partial execution'}, 'session': {'type': 'string'}, 'clOrdIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'ClOrdIDs (tag 11) of the inbound orders to act on'}, 'instance': {'type': 'string'}}}
fixsim_cancel_order_out
Send an Order Cancel Request
Have FIXSIM send an Order Cancel Request (35=F) for an order it previously sent out with fixsim_send_order.
Eingabeschema
{'type': 'object', 'required': ['instance', 'session', 'clOrdId'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None}, 'clOrdId': {'type': 'string', 'description': 'ClOrdID of the order to cancel (becomes OrigClOrdID, tag 41)'}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}, 'newClOrdId': {'type': ['string', 'null'], 'default': None, 'description': 'New ClOrdID for the cancel request (tag 11); generated if omitted'}, 'additionalTags': {'type': ['array', 'null'], 'items': {'type': ['object', 'null'], 'required': ['tag', 'value'], 'properties': {'tag': {'type': 'integer'}, 'value': {'type': ['string', 'null']}}}, 'default': None}}}
fixsim_get_order_in
Get inbound order
Get one inbound order by ClOrdID (tag 11), including its raw FIX message and audit trail. Use this to explain why an order was rejected or what state it is in.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance', 'session', 'clOrdId'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None}, 'clOrdId': {'type': 'string', 'description': 'ClOrdID, FIX tag 11'}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}}}
fixsim_get_session
Get FIX session
Get one FIX session's settings and live state (logged in?, sequence numbers, connection details).
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance', 'session'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None}, 'session': {'type': 'string', 'description': 'Session name from fixsim_list_sessions'}, 'instance': {'type': 'string'}}}
fixsim_list_executions_in
List inbound execution reports
Execution reports the user's system sent INTO FIXSIM on a session (when FIXSIM is the order sender and the user's system is the executing side). Optionally filter by ExecID (tag 17).
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance', 'session'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'description': 'Max rows to return, newest first (default 25, max 200)'}, 'apiKey': {'type': ['string', 'null'], 'default': None}, 'execId': {'type': ['string', 'null'], 'default': None, 'description': 'Optional ExecID (tag 17) filter'}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}}}
fixsim_list_executions_out
List outbound execution reports
Execution reports FIXSIM sent OUT on a session (acks, fills, partial fills, rejects, cancels). Pass clOrdId to see the full execution history of one order: ExecType, OrdStatus, LastPx/LastQty, CumQty, LeavesQty, AvgPx and the raw FIX.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance', 'session'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'description': 'Max rows to return, newest first (default 25, max 200)'}, 'apiKey': {'type': ['string', 'null'], 'default': None}, 'clOrdId': {'type': ['string', 'null'], 'default': None, 'description': 'Optional ClOrdID (tag 11) to narrow to one order'}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}}}
fixsim_list_instances
List FIXSIM instances
List the FIXSIM instances your API key can access. An instance is a hosted FIX engine; each holds one or more FIX sessions. Start here to learn the instance names other tools need.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None, 'description': 'FIXSIM API key. Omit when the connector sends it as a header.'}}}
fixsim_list_orders_in
List inbound orders
Orders the user's trading system sent INTO FIXSIM on a session (FIXSIM is the counterparty). Includes ClOrdID, symbol, side, quantity, remaining quantity, order status and the raw FIX message. Optionally filter by FIX OrdStatus code (tag 39): 0 new, 1 partially filled, 2 filled, 4 canceled, 8 rejected.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance', 'session'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'description': 'Max rows to return, newest first (default 25, max 200)'}, 'apiKey': {'type': ['string', 'null'], 'default': None}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}, 'orderStatus': {'type': ['string', 'null'], 'default': None, 'description': 'Optional FIX OrdStatus (tag 39) filter'}}}
fixsim_list_orders_out
List outbound orders
Orders FIXSIM sent OUT on a session (created with fixsim_send_order). Pass clOrdId to fetch one.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance', 'session'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'description': 'Max rows to return, newest first (default 25, max 200)'}, 'apiKey': {'type': ['string', 'null'], 'default': None}, 'clOrdId': {'type': ['string', 'null'], 'default': None}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}}}
fixsim_list_securities
List securities
Securities (symbol, last price, CUSIP, ISIN) configured on an instance. FIXSIM prices fills from these.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None}, 'instance': {'type': 'string'}}}
fixsim_list_sessions
List FIX sessions
List the FIX sessions on an instance with their FIX version, CompIDs, acceptor/initiator role, host/port, enabled and logged-in state, and sequence numbers.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['instance'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None}, 'instance': {'type': 'string', 'description': 'Instance name from fixsim_list_instances'}}}
fixsim_send_order
Send a New Order Single
Have FIXSIM send a New Order Single (35=D) OUT on a session to the user's system, so they can test how their system handles inbound orders. Follow up with fixsim_list_orders_out and fixsim_list_executions_in to see what came back.
Eingabeschema
{'type': 'object', 'required': ['instance', 'session', 'clOrdId', 'symbol', 'side', 'orderQty', 'ordType'], 'properties': {'side': {'type': 'string', 'description': 'Side (tag 54): 1=Buy, 2=Sell, 5=Sell short'}, 'price': {'type': ['number', 'null'], 'default': None, 'description': 'Price (tag 44), required for limit orders'}, 'apiKey': {'type': ['string', 'null'], 'default': None}, 'symbol': {'type': 'string', 'description': 'Symbol (tag 55)'}, 'clOrdId': {'type': 'string', 'description': 'ClOrdID (tag 11) to assign; must be unique on the session'}, 'ordType': {'type': 'string', 'description': 'OrdType (tag 40): 1=Market, 2=Limit'}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}, 'orderQty': {'type': 'number', 'description': 'OrderQty (tag 38)'}, 'additionalTags': {'type': ['array', 'null'], 'items': {'type': ['object', 'null'], 'required': ['tag', 'value'], 'properties': {'tag': {'type': 'integer'}, 'value': {'type': ['string', 'null']}}}, 'default': None, 'description': 'Extra FIX tags, e.g. [{tag:59,value:"0"}]'}}}
fixsim_send_raw_fix
Send raw FIX messages
Send one or more raw FIX application messages OUT on a session as given (tag=value pairs separated by | or SOH). FIXSIM supplies the session header fields (BeginString, CompIDs, MsgSeqNum, SendingTime) and the checksum. Use for message types the other tools do not cover.
Eingabeschema
{'type': 'object', 'required': ['instance', 'session', 'fixMessages'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None}, 'session': {'type': 'string'}, 'instance': {'type': 'string'}, 'fixMessages': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raw FIX messages, e.g. 35=D|11=ORD1|55=IBM|54=1|38=100|40=2|44=150.25|59=0'}}}
sandbox_act_on_order
Fill, reject, or cancel a sandbox order
Play the exchange for one order the user sent in: fill (full execution), partial (partial fill), reject, or cancel (cancel the remaining quantity). FIXSIM sends the matching execution report back to the user's engine.
Eingabeschema
{'type': 'object', 'required': ['sessionId', 'clOrdId', 'action'], 'properties': {'action': {'type': 'string', 'description': 'fill, partial, reject or cancel'}, 'clOrdId': {'type': 'string', 'description': 'ClOrdID (tag 11) of the order'}, 'sessionId': {'type': 'string', 'format': 'uuid'}}}
sandbox_create_session
Create sandbox FIX session
Create a free, anonymous FIX test session on the FIXSIM Developer Sandbox. No account or API key needed. Returns the connection card: host, port, the SenderCompID the user must put in tag 49, the TargetCompID for tag 56, BeginString, and the expiry (sessions last 4 hours, cap 100 application messages per day). The user's FIX engine connects as the initiator; FIXSIM is the acceptor and acknowledges every order. Keep the returned id; every other sandbox tool needs it.
Eingabeschema
{'type': 'object', 'properties': {'fixVersion': {'type': 'string', 'default': 'FIX.4.4', 'description': 'FIX.4.0, FIX.4.2, FIX.4.4 (default) or FIX.5.0SP2 (rides FIXT.1.1)'}}}
sandbox_end_session
End sandbox session
End a sandbox session now instead of waiting for it to expire. Frees the slot for the user's IP.
Destruktiv
Eingabeschema
{'type': 'object', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'format': 'uuid'}}}
sandbox_get_messages
Read sandbox FIX message log
The FIX message log for a sandbox session, oldest first: logons, heartbeats, orders in, execution reports out, rejects. Each message has seq, timeUtc, inbound (true = user's engine sent it), msgType, raw FIX, and parsed tag/value fields. Pass afterSeq (the last seq you saw) to fetch only new messages. Use this to explain what happened on the wire.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['sessionId'], 'properties': {'afterSeq': {'type': 'integer', 'default': 0, 'description': 'Return only messages with seq greater than this'}, 'sessionId': {'type': 'string', 'format': 'uuid'}}}
sandbox_get_orders
List sandbox orders
Working orders the user's engine has sent into the sandbox session: ClOrdID, symbol, side, qty, filled, leaves, price, status.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'format': 'uuid'}}}
sandbox_get_session
Get sandbox session
Re-fetch a sandbox session's connection card by id, including whether auto-fill is on and when it expires.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'format': 'uuid', 'description': 'Session id from sandbox_create_session'}}}
sandbox_get_status
Check sandbox connection status
Is the user's FIX engine connected to the sandbox session? Returns state: connected, waiting (nobody logged on yet), disabled, or unknown.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'format': 'uuid'}}}
sandbox_set_autofill
Set sandbox auto-fill
Turn automatic fills on or off for a sandbox session. On: every order the user sends is filled immediately at the security's last price. Off (default): orders are acknowledged and wait for sandbox_act_on_order.
Eingabeschema
{'type': 'object', 'required': ['sessionId', 'enabled'], 'properties': {'enabled': {'type': 'boolean'}, 'sessionId': {'type': 'string', 'format': 'uuid'}}}
Hinzugefügt
sandbox_get_session
17. September 2026 12:41
Hinzugefügt
fixsim_list_securities
17. September 2026 12:41
Hinzugefügt
fixsim_list_instances
17. September 2026 12:41
Hinzugefügt
fixsim_send_raw_fix
17. September 2026 12:41
Hinzugefügt
sandbox_end_session
17. September 2026 12:41
Hinzugefügt
sandbox_create_session
17. September 2026 12:41
Hinzugefügt
sandbox_get_messages
17. September 2026 12:41
Hinzugefügt
sandbox_get_orders
17. September 2026 12:41
Hinzugefügt
fixsim_get_order_in
17. September 2026 12:41
Hinzugefügt
sandbox_act_on_order
17. September 2026 12:41
Hinzugefügt
fixsim_get_session
17. September 2026 12:41
Hinzugefügt
fixsim_list_executions_out
17. September 2026 12:41
Hinzugefügt
fixsim_list_sessions
17. September 2026 12:41
Hinzugefügt
fixsim_cancel_order_out
17. September 2026 12:41
Hinzugefügt
sandbox_set_autofill
17. September 2026 12:41
Hinzugefügt
fixsim_act_on_orders
17. September 2026 12:41
Hinzugefügt
fixsim_list_executions_in
17. September 2026 12:41
Hinzugefügt
fixsim_list_orders_in
17. September 2026 12:41
Hinzugefügt
fixsim_send_order
17. September 2026 12:41
Hinzugefügt
sandbox_get_status
17. September 2026 12:41
Hinzugefügt
fixsim_list_orders_out
17. September 2026 12:41