MCP server for parsing, validating, building and explaining FIX protocol trading messages offline, no API keys.
fix-protocol-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
MCP server for parsing, validating, building, and explaining FIX protocol messages - the tag=value format used for orders and executions across equities, FX, and fixed-income trading.
Runs fully offline. Parsing, validation (BodyLength/CheckSum included), message construction, and the bundled FIX 4.4 field dictionary are all self-contained, no external API or network calls.
Tools
| Tool | What it does |
|------|--------------|
| parse_fix_message | Decode a raw FIX string into tag, field name, value, and enum meaning. Accepts SOH-, \|-, or ^-delimited input. |
| validate_fix_message | Check field ordering, the standard header, BodyLength(9) and CheckSum(10) against computed values, and required/conditional fields per message type. Returns errors and warnings. |
| build_fix_message | Construct a valid FIX message from field inputs. Accepts tag numbers or field names, and enum codes or labels ("Side": "Buy"). BeginString, BodyLength, and CheckSum are computed automatically. |
| explain_fix_tag | Look up a tag's field name, data type, and enumerated values. |
Install
This installs the fix-protocol-mcp console script (stdio MCP server).
MCP client config
Running from source instead of installing:
Examples
Parse a Logon message:
Validate, catching a bad checksum:
Build an order from field names:
Explain a tag:
Coverage
The dictionary covers session-level messages and the order/execution workflow
(Logon, Heartbeat, TestRequest, ResendRequest, Reject, SequenceReset, Logout,
NewOrderSingle, OrderCancelRequest, OrderCancelReplaceRequest,
ExecutionReport, OrderCancelReject), which accounts for most real FIX traffic.
It's a curated subset rather than the full FIX repository - unrecognised tags
and enum values surface as warnings, not hard failures.
Development
server.py is a thin MCP wrapper around the core modules (parser,
validator, builder, dictionary, wire), which have no dependency on