FIX MCP Server
Provides containerized deployment and management of the FIX protocol simulation platform, enabling isolated execution of trading infrastructure components through Docker Compose.
Enables source code retrieval and version control integration for the FIX-MCP server through Git cloning operations from the project repository.
Provides iconography and visual elements for the Mission Control interface, enhancing user experience with consistent visual cues across trading operations panels.
Powers the Mission Control dashboard frontend with React-based UI components for real-time trading operations visualization, scenario management, and interactive terminal interfaces.
Facilitates frontend dependency management and development workflow for the Next.js-based Mission Control interface through package installation and script execution.
Provides persistent order storage and data management for the FIX trading simulation platform, serving as the primary database for order management system operations.
Enables backend FIX protocol engine implementation with MCP SDK integration, supporting real-time trading diagnostics, session management, and algorithmic order processing.
Forms the foundation of the Mission Control user interface components, enabling interactive visualization of trading topology, telemetry data, and scenario runbooks.
Provides pub/sub messaging infrastructure for real-time event propagation and communication between FIX engine components and the Mission Control dashboard.
Enables responsive styling and UI component design for the Mission Control trading operations dashboard through utility-first CSS framework integration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FIX MCP Servercheck all FIX sessions for sequence gaps or latency issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FIX-MCP
FIX protocol simulation platform for capital markets operations. AI-powered SRE copilot with real-time diagnostics, incident runbooks, and MCP tool integration for trading infrastructure management.
Quick Start
git clone https://github.com/henryurlo/fix-mcp-server.git
cd fix-mcp-server
docker compose up -dOpen http://localhost:3000.
Login: henry / henry (admin) · admin / admin · or click Demo Mode.
Service | URL | What it serves |
Mission Control | Sleek trading ops dashboard with scenario lifecycle | |
REST API | MCP tool dispatch, system status | |
MCP stdio | docker compose run | For AI agents via MCP protocol |
No Node or Python on your host — everything runs in containers.
Mission Control
Three tabs:
Tab | Purpose |
Mission Control | Live topology, FIX heartbeat panel, scenario picker + interactive terminal |
Telemetry | Real-time metrics — sparklines, order book, FX rates |
Scenario Library | Browse all scenarios by severity/difficulty, inspect runbooks, success criteria |
Core Layout
┌──────────────────┬─────────────────────────────────────┐
│ Topology Graph │ FIX Terminal │
│ (ecosystem) │ fix-cli> show sessions │
│ │ fix-cli> query orders │
├──────────────────┼─────────────────────────────────────┤
│ Runbook Panel │ MCP Audit Log │
│ (live steps) │ [+ SRE Copilot slides in →] │
└──────────────────┴─────────────────────────────────────┘Scenarios
13 training scenarios covering a full trading day (02:00–16:32 ET). Each includes:
Runbook — 4-6 diagnostic/fix steps with exact MCP tool calls
Success criteria — explicit conditions that define "resolved"
Hints — key problems, flag meanings, common mistakes
Severity & difficulty — from beginner to advanced
Scenario | Severity | Time | Est |
| Critical | 06:15 | 25m |
| Medium | 02:05 | 15m |
| Medium | 04:35 | 15m |
| High | 09:02 | 20m |
| High | 09:35 | 20m |
| Critical | 10:32 | 30m |
| High | 10:05 | 20m |
| Critical | 11:34 | 35m |
| Critical | 11:35 | 25m |
| Medium | 14:03 | 15m |
| High | 14:15 | 25m |
| High | 15:31 | 20m |
| Medium | 16:32 | 15m |
MCP Tools (22)
Category | Tools |
Diagnostic |
|
Session Recovery |
|
Order Actions |
|
Algo Suite |
|
Reference/Venue |
|
AI Copilot
The SRE Copilot is FIX-aware with:
Full decision trees for session diagnostics, order triage, and algo management
Scenario-specific context injection (situation, key problems, flag meanings, common mistakes, success criteria)
Tool call approval gates for irreversible operations
Concise, actionable output — quantitative impact with FIX message types
Architecture
┌──────────────────────────────────────────────┐
│ Mission Control (Next.js) │
│ http://localhost:3000 │
└──────────────────────┬───────────────────────┘
│ REST proxy
┌──────────────────────▼───────────────────────┐
│ REST API │
│ http://localhost:8000 │
│ /api/status /api/orders /api/ │
│ /api/scenarios /api/scenario/{name} │
│ /api/tool (POST) /api/reset (POST) │
└──────────────────────┬───────────────────────┘
│
┌──────────────────────▼───────────────────────┐
│ FIX Engine (Python) │
│ OMS · FIXSessionManager │
│ ReferenceDataStore · AlgoEngine │
└──────────────────────┬───────────────────────┘
│
┌──────────────────────▼───────────────────────┐
│ PostgreSQL (orders) · Redis (pub/sub) │
└──────────────────────────────────────────────┘Tech Stack
Backend: Python 3.11, MCP SDK, asyncio, stdlib
http.serverFrontend: Next.js 16, React 19, React Flow, Zustand 5, Tailwind CSS v4, lucide icons
Infra: PostgreSQL 16, Redis 7, Docker Compose
Protocol: FIX 4.2 / 4.4 simulation
AI: OpenRouter API (any compatible model; default
qwen/qwen3.6-plus)
MCP Integration (external clients)
{
"mcpServers": {
"fix-mcp": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-remote@latest"],
"env": { "MCP_URL": "http://localhost:8000/mcp" }
}
}
}Development
# Backend (Python)
pip install -e .
python -m fix_mcp.api # REST on :8000
# Frontend (Node)
npm install
npm run dev # Next.js on :3000The Next.js route handler reads BACKEND_URL — defaults to http://127.0.0.1:8000 for local dev.
Built by Henry Urlo.
Available Tools
22 toolscancel_algoA
Cancel an active algo and send OrderCancelRequest for all open child slices.
| Name | Required | Description | Default |
|---|---|---|---|
| algo_id | Yes | ||
| reason | No | Cancellation reason for audit trail |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that cancelling the algo also sends OrderCancelRequest for all open child slices, which is a key behavioral trait beyond just cancellation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler. Front-loaded with the primary action and immediate consequence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimal. It covers the main action but omits return values, error conditions, or prerequisites (e.g., algo must be active). Could be more complete for a cancellation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only 'reason' has a description). The tool description does not add any extra meaning to parameters beyond what the schema provides. For example, 'algo_id' lacks description in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb (cancel), resource (algo), and the specific action of sending OrderCancelRequest for open child slices. It distinguishes from siblings like 'approve_action' or 'modify_algo'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to cancel an active algo and its child orders) but does not explicitly state when not to use or provide comparisons with similar tools like 'cancel_replace' or 'modify_algo'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_replaceC
Cancel or replace an existing order via FIX 35=F or 35=G.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | ||
| action | Yes | ||
| new_venue | No | ||
| new_quantity | No | ||
| new_price | No | ||
| new_symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits. It mentions FIX message types but omits safety, destructive nature, and side effects. The agent cannot infer if the operation is idempotent or has prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence efficiently conveys the core purpose and technical detail (FIX message types). It is front-loaded and easy to parse, though it sacrifices completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description is insufficient. It fails to explain return values, conditional behavior, or the relationship between action and new_* fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters. It only hints at order_id and action (cancel/replace) but ignores new_venue, new_quantity, new_price, and new_symbol, leaving their purpose entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels or replaces an order, using specific FIX message types. It distinguishes from sibling tools like cancel_algo (which cancels algo orders) and send_order (which sends new orders).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With siblings like cancel_algo and modify_algo, the description should explicitly mention when to pick this tool (e.g., for manual FIX-based cancellation/replacement) but does not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_algo_statusB
Check status of algo orders: schedule deviation, execution quality, IS shortfall, over-participation, and child order health.
| Name | Required | Description | Default |
|---|---|---|---|
| algo_id | No | Specific algo ID, or omit for all active | |
| symbol | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must bear the full burden of behavioral disclosure. It lists what is checked but does not mention whether the operation is read-only, requires special permissions, has side effects, rate limits, or any other behavioral traits beyond the vague verb 'check'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the verb and resource, and avoids redundant phrasing. Every word adds value, and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 optional parameters, no output schema, and zero annotations, the description covers the purpose but lacks details on return format, pagination, error conditions, and how the tool interacts with other tools (e.g., after checking, what action to take). It is adequate but incomplete for an AI agent to fully understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), and the description adds minimal parameter context beyond the schema's brief notes. For instance, 'symbol' is undocumented in both schema and description, and the relationship between parameters and the listed checks (e.g., schedule deviation) is unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Check status of algo orders') and lists specific aspects checked (schedule deviation, execution quality, IS shortfall, etc.), making it unambiguous and distinguishing it from sibling tools like 'cancel_algo' or 'modify_algo'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the listed checks but does not explicitly state when to use this tool versus alternatives like 'query_orders' or 'validate_orders'. No exclusion criteria or context-specific guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_fix_sessionsA
Check FIX session health: status, sequence numbers, heartbeat age, latency.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | No | Specific venue, or omit for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It does not disclose behavioral traits like read-only nature, side effects, or required permissions. Lacks context on authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no wasted words. Efficiently conveys purpose and key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health-check tool with one optional parameter and no output schema, the description covers the core functionality well. Lacks mention of output format, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with a concise description. The tool description adds value by listing specific health metrics checked, which the schema does not provide. However, it does not elaborate on the venue parameter beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies verb 'Check' and resource 'FIX session health', listing specific metrics (status, sequence numbers, heartbeat age, latency). This clearly distinguishes it from sibling tools like fix_session_issue or session_heartbeat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention exclusions or when to use other session-related tools. The description only states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_tickerA
Look up a symbol or CUSIP. Returns full record, pending corporate actions, and affected open order count.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | ||
| cusip | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses the tool returns 'full record, pending corporate actions, and affected open order count', implying a read operation. However, it does not explicitly state read-only, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose. No wasted words, but could be slightly more structured (e.g., separating input from output). Still highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the basic return elements (full record, pending actions, order count). However, it lacks details on input constraints (e.g., mutual exclusivity, required fields) and potential error conditions. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description adds meaning by mentioning 'symbol or CUSIP'. But it does not clarify that they are mutually exclusive or how they relate. The description partially compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Look up a symbol or CUSIP. Returns full record, pending corporate actions, and affected open order count.' This specific verb and resource, along with the return details, distinguish it from siblings like load_ticker or update_ticker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It implies usage when a symbol or CUSIP is available, but does not mention exclusions or when to use other lookup tools like load_ticker.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dump_session_stateB
Return full session diagnostics for a venue including sequence numbers, latency, heartbeat age, and associated orders.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | Venue name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states what the tool returns, not any behavioral traits like read-only status, required permissions, or side effects. With no annotation compensation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the tool's core purpose. No extraneous words or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately lists the key components of the diagnostics output. It could be slightly more comprehensive (e.g., format or usage example), but it is sufficient for an agent to understand the tool's return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'venue' has a schema description 'Venue name', and the tool description adds context about the returned diagnostics. However, it does not enhance parameter semantics beyond the schema, and schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns full session diagnostics for a venue, listing specific items like sequence numbers, latency, heartbeat age, and associated orders. This distinguishes it from sibling tools that target individual aspects or actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as check_fix_sessions or session_heartbeat. There is no explicit context for usage or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fix_session_issueC
Resolve a FIX session issue: resend_request (gap recovery), reset_sequence, or reconnect.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | ||
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description should disclose behavioral traits. It mentions 'gap recovery' for resend_request but does not explain side effects, permissions, or state changes for the actions, which are likely mutating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, making it concise. However, it lacks structure and reads as under-specified rather than efficiently packed with information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the schema (2 params, no output) and the complexity of the domain (FIX session recovery), the description is incomplete. It does not explain what each action entails or when each is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds minimal meaning: it lists the action enum values but does not describe the 'venue' parameter (e.g., what it represents). The agent is left to guess venue's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Resolve' and resource 'FIX session issue', and lists three specific actions. However, it does not differentiate from the sibling tool 'reset_sequence', which overlaps with one of the actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'reset_sequence' or 'check_fix_sessions'. The description lacks any 'when to use' or 'when not to use' information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grep_logsA
Search log files for a pattern and return matching lines.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Regex or literal pattern to search for | |
| file | Yes | Log file path or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It states the basic behavior (search and return lines) but omits details like case sensitivity, regex flavor, line context, or file path resolution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, directly states purpose and action with no extraneous words. Frontloaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool without output schema, the description is mostly complete. However, given siblings like tail_logs, a brief comparison would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema's parameter descriptions (pattern: 'regex or literal pattern', file: 'log file path or name').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Search'), states the resource ('log files'), and the result ('return matching lines'). It distinguishes from similar sibling tools like tail_logs, but could be more specific about the type of logs or search scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like tail_logs or get_trace. The description implies usage for pattern searching but lacks when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenariosB
List all available trading scenarios or load one into the runtime. Use action='list' to see all scenarios with their context summaries. Use action='load' with scenario_name to switch the active scenario.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | list: show available scenarios; load: switch active scenario | |
| scenario_name | No | Scenario name to load (required when action=load) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It mentions that loading switches the active scenario, but does not detail side effects, required permissions, or reversibility. Listing is likely read-only, but the description remains vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and every sentence adds value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two distinct actions, no output schema, and no annotations. The description lacks details on return format for listing, behavior on load failure, or prerequisites. Important gaps remain for a tool that mutates runtime state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters with 100% coverage. The description adds meaningful context: listing shows context summaries, loading switches the active scenario. This goes beyond the enum and string descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists or loads scenarios, with specific actions. It does not explicitly differentiate from sibling tools like score_scenario, but the purpose is direct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage instructions for the two actions (list and load) but lacks guidance on when to avoid this tool or what alternatives exist. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_tickerC
Load a new symbol into the reference store and release orders pending that symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| cusip | Yes | ||
| name | Yes | ||
| listing_exchange | Yes | ||
| lot_size | No | ||
| tick_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions loading and releasing orders, but fails to disclose side effects, authorization needs, idempotency, or behavior on duplicate symbols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, very concise; however, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing important details: what the reference store is, how orders are released, meaning of all parameters, and any return value. Incomplete for a tool with 6 parameters and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and description does not mention any of the 6 parameters (symbol, cusip, name, etc.), leaving the agent without guidance on parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Load' and the resource 'new symbol into the reference store', and distinguishes from siblings like check_ticker or update_ticker by mentioning release of pending orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives; no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_algoA
Modify an active algo: pause, resume, or update POV participation rate.
| Name | Required | Description | Default |
|---|---|---|---|
| algo_id | Yes | ||
| action | Yes | ||
| new_pov_rate | No | New POV rate (required for action=update_pov_rate) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'modify an active algo' implying mutation, but no details on permissions, side effects, reversibility, or what happens during each action. Lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, quickly enumerates actions. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's three parameters and no output schema or annotations, the description adequately covers the gist but omits important context like what happens if algo is not active, specific behavior of each action (e.g., immediate effect), and any prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is low (33%), but the description adds meaning by explaining the action enum values and that update_pov_rate involves a new rate. However, algo_id gets no additional context, and new_pov_rate's need for action=update_pov_rate is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool modifies an active algo and enumerates the specific actions (pause, resume, update POV participation rate). This distinguishes it from siblings like cancel_algo and check_algo_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for pausing, resuming, or updating POV rate, but does not explicitly state when to use or not use alternatives (e.g., cancel_algo). No guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_ordersA
Query OMS orders with optional filters. Returns order details including notional value and SLA countdowns for institutional orders.
| Name | Required | Description | Default |
|---|---|---|---|
| client_name | No | Filter by client name | |
| symbol | No | Filter by symbol | |
| status | No | Filter by order status | |
| venue | No | Filter by venue | |
| order_id | No | Get specific order by ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description indicates read-only query but does not disclose other behavioral traits like pagination limits, data freshness, or idempotency. Adequate for a basic query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. Front-loaded verb and resource, directly states functionality and return details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query tool with 5 optional params and no output schema, description covers basic purpose and return fields but omits details like result limits, ordering, or filtering combinations. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. Description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Query OMS orders' with optional filters and specifies return fields (notional value, SLA countdowns). Distinguishes from sibling tools like send_order (create) and cancel_algo (cancel).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for order queries but lacks explicit guidance on when to use vs alternatives (e.g., validate_orders, check_algo_status) or exclusions. No mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_stuck_ordersB
Release all stuck orders across all venues by removing venue_down flags.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action ('release stuck orders') without disclosing behavioral traits like whether this is a safe read-only operation, if it requires specific permissions, potential side effects (e.g., order resubmission), or system impact. It mentions the mechanism ('removing venue_down flags') but doesn't explain what that entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and avoids redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a system-level recovery tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'stuck orders' are, how 'venue_down flags' work, what happens after release (e.g., do orders resume processing?), or potential risks. For a tool that likely affects multiple venues, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description adds no parameter-specific information, which is appropriate since there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('release all stuck orders') and the mechanism ('by removing venue_down flags'), with the resource being 'orders across all venues'. It distinguishes from siblings like 'cancel_algo', 'send_order', or 'validate_orders' by focusing on system-level recovery rather than order manipulation or validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'fix_session_issue', 'reset_sequence', or 'update_venue_status', which might address similar problems. It lacks explicit context about when this operation is appropriate or what conditions indicate 'stuck orders'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_sequenceB
Reset FIX sequence numbers for a venue session.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | Venue name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states it resets sequence numbers, but does not disclose potential side effects (e.g., impact on active orders, session state changes, required permissions). Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded. No wasted words, but slightly under-specified for a potentially destructive operation. Still, brevity is not harmful here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has one simple parameter, no output schema, but as a mutating operation on a session, the description lacks details on what reset entails (e.g., starting sequence at 1, impact on current state). Incomplete for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description in schema ('Venue name') is clear. The description adds no additional semantics beyond confirming the venue's role in the reset. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (reset), resource (FIX sequence numbers), and context (venue session). It distinguishes from siblings like check_fix_sessions and fix_session_issue by focusing on resetting sequence numbers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no exclusion criteria, no contexts mentioned. The description is purely a statement of action without any usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_premarket_checkB
Flagship pre-market health check: sessions, corp actions, stuck orders, SLA deadlines, validation summary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. Although the description implies a read-only report, it does not explicitly state that the tool has no side effects, does not modify state, or what happens if checks fail. For a safety-critical pre-market check, this lack of transparency is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-phrased sentence that efficiently conveys the tool's scope. It is front-loaded with the key phrase 'Flagship pre-market health check' followed by a colon-separated list of areas. It earns its place, though it could benefit from slightly more structure (e.g., bullet points) for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a pre-market health check (multiple subsystems), the description is complete in listing what is checked but fails to explain the output format (e.g., is it a pass/fail, JSON, or report?). Without an output schema, the agent lacks context on what to expect, which is a notable gap for a flagship tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so there is no need for parameter descriptions. The baseline of 4 is justified because schema coverage is 100% (empty) and the description adds no conflicting information. The tool's behavior is self-contained without inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name 'run_premarket_check' combined with the description clearly states a specific verb ('run') and resource ('pre-market health check'). The description lists the covered areas: sessions, corp actions, stuck orders, SLA deadlines, validation summary, distinguishing it from sibling tools that perform individual checks like check_fix_sessions or validate_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus its many sibling tools (e.g., check_fix_sessions, check_market_data_staleness). It implies comprehensiveness with the word 'flagship' but does not provide explicit when-to-use or when-not-to-use instructions, missing a key opportunity to aid agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_algo_orderA
Submit a new algorithmic order (TWAP, VWAP, POV, IS, DARK_AGG, ICEBERG). Creates a parent algo order with execution schedule and initial child slices.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| side | Yes | ||
| quantity | Yes | ||
| algo_type | Yes | ||
| client_name | Yes | ||
| venue | No | ||
| end_time | No | ISO-8601 execution window end (TWAP/VWAP) | |
| pov_rate | No | Target participation rate 0.0–1.0 (POV/VWAP) | |
| arrival_px | No | Arrival price for IS benchmark | |
| slice_count | No | Number of child slices (default: 6) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It clearly states the creation of a parent order with schedule and child slices. This discloses the main behavioral trait, though permission requirements and failure states are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence with critical information upfront. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no output schema or annotations, the description is too short. It lacks usage context, expected output, error conditions, and any caveats about the algorithmic order lifecycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, meaning 6 of 10 parameters lack descriptions in the schema. The description adds minimal value beyond mentioning algo types and execution schedule; it does not compensate by explaining required parameters like symbol, side, or client_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a clear verb ('Submit') and names the resource ('algorithmic order') with specific algorithm types listed in parentheses, distinguishing it from sibling tools like 'send_order' for simpler orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'send_order' or 'modify_algo'. The described action is implied for algo orders, but no when-not-to-use or prerequisite info is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_orderB
Send a new order via FIX NewOrderSingle. Validates symbol, checks corp actions, auto-routes if no venue supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| side | Yes | ||
| quantity | Yes | ||
| order_type | Yes | ||
| price | No | ||
| client_name | Yes | ||
| venue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses validation and auto-routing but omits important traits: is it destructive? What happens on failure? Are there rate limits? Response format? Insufficient for a mutation tool with 7 params.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loaded with core action. Efficient with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complex tool with 7 params, no annotations, no output schema. Description fails to cover return values, error handling, prerequisites (e.g., FIX session), or order lifecycle. Incomplete for reliable agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. Only explains symbol validation and venue auto-route. Other parameters (side, quantity, order_type, price, client_name) lack any explanation beyond schema, which is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action ('Send a new order'), method ('via FIX NewOrderSingle'), and key behaviors (validates symbol, checks corp actions, auto-routes). It distinguishes from sibling tools like 'send_algo_order' by specifying the order type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Mentions auto-routing behavior but lacks exclusion criteria or prerequisites (e.g., FIX session must be active). Sibling tools like 'send_algo_order' exist but no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_heartbeatC
Send a heartbeat and return the heartbeat status for a specific venue session.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | Venue name (e.g. NYSE, BATS, ARCA) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the action (send heartbeat and return status) but provides no details on side effects, whether it is a read or mutation operation, potential impacts on the session, or error conditions. Without annotations, agent remains uninformed about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, very concise. However, it is overly brief, omitting important details that would require only a few more words. Strikes a balance between conciseness and completeness at a minimal level.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a single parameter, the description should compensate by explaining the return value (heartbeat status), possible states, or when a heartbeat is needed. It does not, leaving the agent with incomplete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the 'venue' parameter described. The description adds 'specific venue session' but does not provide additional semantic meaning beyond what the schema already offers (venue name). Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool sends a heartbeat and returns status for a venue session. It identifies the specific verb ('send', 'return') and resource ('heartbeat status for a specific venue session'), but does not explicitly distinguish it from sibling tools like 'check_fix_sessions' or 'fix_session_issue'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Lacks context about prerequisites, scenarios where heartbeat is needed, or when other session management tools are more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tail_logsB
Return the last N lines of a log file.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Log file path or name | |
| lines | No | Number of lines to return (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden but only mentions returning last N lines. It omits defaults (e.g., lines=20), whether it reads from end-to-start, or if it has side effects. Minimal behavior disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description is minimally sufficient but could mention default line count and file path conventions for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description adds 'last N lines' which partially clarifies the lines parameter but adds little beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'last N lines of a log file', which is specific and distinguishes from sibling tools like grep_logs (search) and get_trace (different purpose).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as grep_logs or get_trace. It only states basic functionality without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tickerA
Rename a symbol and bulk-update all open orders. Flags stop orders for manual review.
| Name | Required | Description | Default |
|---|---|---|---|
| old_symbol | Yes | ||
| new_symbol | Yes | ||
| reason | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that stop orders are flagged for manual review, indicating they are not automatically updated. However, it does not explain what happens to other order types, whether the rename is permanent, or any potential side effects or validation errors. More details would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences. It front-loads the main action and adds a critical behavioral note. No unnecessary words, and every sentence provides distinct value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a tool that renames a symbol and bulk-updates all open orders, the description is minimally adequate. It covers the main functionality and a notable exception (stop orders). However, it lacks details on reversibility, output, prerequisites (e.g., need to halt trading), and the scope of 'all open orders'. Missing output schema and annotations increase the burden, which is only partially met.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should add meaning to parameters. The description mentions 'rename a symbol', which maps to old_symbol and new_symbol, but provides no further context (e.g., format, case sensitivity). The 'reason' parameter is not mentioned at all, and the enum values are not explained. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('rename' and 'bulk-update') and resources ('symbol', 'open orders'). It distinguishes from siblings like check_ticker (read-only) and send_order (new orders) by highlighting the bulk update of existing orders. The additional detail about flagging stop orders for manual review adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for renaming symbols and updating orders, but it does not explicitly state when to use this tool versus alternatives. It lacks guidance on prerequisites, exclusions, or appropriate contexts (e.g., corporate actions). The presence of a reason enum hints at use cases but is not expanded upon.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_venue_statusA
Change venue status (active/degraded/down). Use fix_session_issue to recover a degraded/down venue.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | Venue name | |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does not disclose side effects, permissions required, or whether changes are reversible. This is insufficient for an agent to understand implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no redundancy or filler. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal sibling differentiation beyond recovery, the description lacks details on return values (confirmation, error behavior) and what changes the status actually triggers. Adequate but not complete for the environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (venue described, status not). The description reinforces the enum values for status, adding marginal value beyond the schema, but does not elaborate on 'venue' or provide format expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource combination ('Change venue status') and lists the allowed values, making the purpose clear. It also distinguishes from the sibling tool fix_session_issue by noting that tool is for recovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when not to use this tool for recovery and points to an alternative (fix_session_issue). This meets the highest standard for usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_ordersC
Validate a set of orders: check symbol validity, venue status, duplicate ClOrdIDs, and client status.
| Name | Required | Description | Default |
|---|---|---|---|
| order_ids | No | ||
| symbol | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only lists checks but does not mention whether the tool is read-only, requires permissions, has side effects, or returns specific output. No indication of rate limits or destructive potential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. It lists the checks efficiently. However, it lacks structure like sections or bullet points, and could be more organized while remaining concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% parameter coverage, the description is incomplete. It fails to explain return values, error handling, or prerequisite conditions. The list of checks is helpful but insufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not add meaning for any of the three parameters. The checks mentioned (e.g., duplicate ClOrdIDs) don't map clearly to the parameters (order_ids, symbol, status). The role of 'status' parameter is ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates orders and lists specific checks (symbol validity, venue status, duplicate ClOrdIDs, client status). It uses a specific verb and resource, distinguishing it from siblings like query_orders or send_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not specify preconditions, postconditions, or scenarios where validation is needed. The description implies pre-trade use but doesn't state exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
22 tool updates
v0.1.0- First observed
cancel_algo - First observed
cancel_replace - First observed
check_algo_status - First observed
check_fix_sessions - First observed
check_ticker - First observed
dump_session_state - First observed
fix_session_issue - First observed
grep_logs - First observed
list_scenarios - First observed
load_ticker - First observed
modify_algo - First observed
query_orders - First observed
release_stuck_orders - First observed
reset_sequence - First observed
run_premarket_check - First observed
send_algo_order - First observed
send_order - First observed
session_heartbeat - First observed
tail_logs - First observed
update_ticker - First observed
update_venue_status - First observed
validate_orders
TDQS
Scored across 22 tools
Most tools have distinct purposes, but there is some overlap between check_fix_sessions and dump_session_state, both dealing with session diagnostics, which could cause confusion. Additionally, fix_session_issue and reset_sequence have overlapping functionality for session recovery, though their descriptions help differentiate them.
Tool names follow a consistent snake_case pattern with clear verb_noun structures throughout, such as cancel_algo, check_ticker, and send_order. There are no deviations in naming conventions, making the set predictable and readable.
With 22 tools, the count is borderline high for a trading/FIX server, potentially feeling heavy and overwhelming. While the domain is complex, some tools like grep_logs and tail_logs might be considered utility functions that could be consolidated, slightly exceeding an ideal scope.
The tool set provides comprehensive coverage for FIX trading operations, including order management (send, cancel, modify, query), session health (check, fix, reset), algo trading (send, modify, cancel, check), and administrative tasks (premarket checks, ticker management, order validation). No obvious gaps are present, supporting full lifecycle workflows.
Related MCP Connectors
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
Hosted MCP for stocks, options, Greeks, brokers, order previews, alerts, and workflows.
Live prices, perps, prediction markets and a paper trading desk over one MCP.
Research-only MCP server: your AI as a quant research desk. 90 tools, no trades, no brokers.