RailX MCP
Provides trading and market tools for tokenized stocks on Robinhood Chain, letting agents resolve Stock Tokens, read underlying and multiplier-adjusted prices and corporate actions, fetch wallet portfolio balances, create exact-input/exact-output route quotes, and preflight trades—returning an explainable verdict, checks, and unsigned transactions for the user's wallet to sign.
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., "@RailX MCPPrepare a 500 USDG trade for NVDA from wallet 0x00...01"
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.
RailX MCP
Put the stock market in your app. RailX is the trading API for tokenized stocks on Robinhood Chain, with market tools for AI agents.
The official MCP server gives Claude, Cursor, and other MCP clients the tools to find Stock Tokens, get quotes, and prepare policy-checked trades. Your agent gets an explainable verdict and unsigned transactions. Your wallet signs.
Documentation · OpenAPI · npm · Support
Install
npm install -g @railx/mcpOr let your MCP client run the current package with npx:
{
"mcpServers": {
"railx": {
"command": "npx",
"args": ["-y", "@railx/mcp"],
"env": {
"RAILX_PROJECT_KEY": "railx_test_..."
}
}
}
}Related MCP server: Blocksize Market Data
Configuration
RAILX_PROJECT_KEYis required. Use a scopedrailx_test_orrailx_live_project key.RAILX_BASE_URLis optional and defaults tohttps://railx.dev/api/v0.
Start with a test key from the dashboard. Its calls use RailX's deterministic sandbox, need no funded wallet or provider credential, and move no funds. Keep the project key in your MCP client's environment configuration.
The package runs locally over stdio and delegates every operation to @railx/sdk. It targets API v0, uses the same project scopes and policies as HTTP, and never accepts signing material.
Try a sandbox trade
Ask your agent:
Use RailX to prepare an exact-input trade of 500 USDG for NVDA with wallet 0x0000000000000000000000000000000000000001. Show the verdict, checks, and unsigned transactions.
The agent calls railx_preflight_trade with:
{
"wallet": "0x0000000000000000000000000000000000000001",
"intent": {
"type": "exact_input",
"tokenIn": "USDG",
"tokenOut": "NVDA",
"amountIn": "500"
}
}allow returns a ready plan. warn returns review_required with transactions for human review. block returns no signable transactions. Inspect verdict and signing.unsignedTransactions in the result.
Tools
Tool | Operation | Required scope |
| Resolve a Stock Token or supported system token |
|
| Read underlying and multiplier-adjusted reference prices |
|
| Read and filter corporate actions |
|
| Read wallet balances, optionally for up to 20 symbols |
|
| Find an exact-input or exact-output route quote |
|
| Build, check, simulate, and persist a trade plan |
|
| Retrieve a plan in the current project environment |
|
| Simulate one to eight unsigned transactions |
|
Successful quotes, new plans, and simulations use one checked-action unit. Reads and plan replays use no checked-action units; authenticated request limits still apply. The public launch is free.
For exact output, use intent.type: "exact_output" with amountOut. Slippage is a percentage from 0.01 to 5, in 0.01% increments. Preflight accepts an optional idempotencyKey of 16–128 URL-safe characters; reuse it only for the same intent. Simulation accepts gasLimit, gasPrice, maxFeePerGas, and maxPriorityFeePerGas as decimal or hexadecimal quantity strings, matching the HTTP API.
Upgrade from 0.1
Version 0.2 uses the RailX namespace for all tools. Replace saved rail_* tool names with railx_* and refresh your MCP client's tool list. Package versions are independent of the API v0 route.
Requirements
Node.js 22.13 or newer
A RailX project key from railx.dev/dashboard
License
MIT
Available Tools
8 toolsrailx_create_quoteB
Find an exact-input or exact-output route quote. A successful quote uses one checked-action unit. Executable transactions come from railx_preflight_trade.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | ||
| wallet | Yes | ||
| slippageTolerance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It mentions the 'one checked-action unit' cost model, which is real behavioral context. But it does not disclose whether the quote is read-only, whether it expires, whether it locks state, or what the response contains.
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?
Three short sentences, no fluff, purpose front-loaded. The relocation sentence 'Executable transactions come from railx_preflight_trade' earns its place as a routing cue.
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?
With no annotations, no output schema, and 0% schema description coverage, the description leaves major gaps: no return value guidance, no slippage semantics, no indication of quote validity or required wallet state. The routing to preflight is the only substantive addition.
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 must compensate for three undocumented parameters. It mentions the two quote modes obliquely but says nothing about wallet format, slippageTolerance defaults or units, or the exact_input/exact_output field differences. The schema's oneOf structure is the only place those details live.
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?
States a specific verb+resource: 'Find a route quote' with a scope qualifier (exact-input or exact-output). It distinguishes the quote concept from the trade concept by pointing to railx_preflight_trade for executable transactions. However, the phrase 'exact-input or exact-output route quote' assumes the agent knows what those modes mean.
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?
Explicitly routes the agent: quotes come from this tool, executable transactions come from railx_preflight_trade. That is a genuine alternative pointer. It doesn't state prerequisites (wallet requirement) or when quotation is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railx_get_assetCRead-only
Read canonical Robinhood Chain asset metadata. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already declares readOnlyHint=true, and the description merely restates 'Read-only' without adding anything. It says nothing about behavior for unknown symbols, whether results are cached, or what 'canonical' implies for 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?
Two short sentences, front-loaded with the core action, with no filler. The terse style is efficient, though it borders on under-specification rather than excess.
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 one-parameter lookup with no output schema, the definition is minimally adequate. However, it leaves the meaning of the required 'symbol' parameter and the behavior on lookup failure unexplained, which an agent needs to call it 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?
The schema has 0% description coverage for the single required 'symbol' parameter, and the description never mentions it. It is unclear whether 'symbol' is a ticker (e.g., 'AAPL') or an on-chain identifier, despite the pattern constraint 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?
States a specific verb and resource ('Read canonical Robinhood Chain asset metadata'), which distinguishes it from sibling lookups like railx_get_price and railx_get_corporate_actions. It does not explicitly name alternatives, but the resource is 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?
There is no guidance on when to use this tool versus railx_get_price, railx_get_corporate_actions, or railx_get_portfolio. The agent must infer usage purely from the tool name and resource wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railx_get_corporate_actionsCRead-only
Read splits, dividends, and other Stock Token actions. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| status | No | ||
| symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the 'Read-only' sentence in the description is redundant rather than additive, and the bar for credit is lower. The description does not disclose pagination behavior, default limit, or what happens when no filters are supplied (all 4 parameters are optional), which leaves real behavioral gaps even for a read-only 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 short sentences, front-loaded with the read verb and resource. The 'Read-only' sentence is pure repetition of the readOnlyHint annotation and earns no place, but it costs little. No bloat beyond that minor redundancy.
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 four-parameter filterable query tool with no schema descriptions, no output schema, and no default-limit information, the description is incomplete. It doesn't explain what the returned data looks like, what happens with no filters, or how limit defaults/pace results. Given the complexity of the enum-heavy schema and the agent's need to select and filter correctly, it falls well short.
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 compensate for four undocumented parameters, but it says nothing about the 'type', 'status', 'symbol' filters or the 'limit' parameter. It also doesn't reveal the default value of limit or whether results are sorted/paginated. The description does list some action-type values (splits, dividends) that map to the type enum, but that is not enough to cover the parameter surface.
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 names a specific verb ('Read') and resource ('corporate actions') and enumerates the concrete action types (splits, dividends, Stock Token actions), so an agent can tell what the tool returns. It doesn't explicitly differentiate from siblings, but the naming convention ('railx_get_*' vs 'railx_create_*', 'railx_simulate_*') plus the stated scope is sufficient to distinguish it from the transactional siblings like create_quote and preflight_trade.
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 states no when-to-use or when-not-to-use guidance, no mention of filtering behavior, and no alternatives. It's a bare read operation with no routing information – an agent gets no help deciding between this and, say, railx_get_asset when both might be relevant to stock tokens.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railx_get_portfolioCRead-only
Read wallet balances and Stock Token positions. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | ||
| symbols | No | ||
| includeZero | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, and 'Read-only' merely restates that, adding no value. The description says nothing about whether the wallet must be known/auth'd, whether results are on-chain live or cached, pagination/limits on symbols, or what happens with unknown 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?
Two very short sentences, front-loaded with the core purpose. It is efficiently sized, though the trailing 'Read-only' is a pure restatement of the annotation and earns no 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?
With no output schema and 0% parameter coverage, the description should carry more of the load. It does not explain the return shape (balances plus positions), the effect of the symbols filter, or the meaning of includeZero, leaving the tool under-specified for an agent.
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 the description supplies no parameter meaning at all. Three parameters (wallet address, symbols filter, includeZero) are left entirely for the agent to infer from names, which is especially costly for how includeZero interacts with symbols filtering.
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?
States a specific verb+resource: reads wallet balances and Stock Token positions. An agent can tell this is a portfolio snapshot tool rather than a price, asset, or trade-plan tool. It does not explicitly name a sibling to differentiate against, so it stops short of 5.
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?
There is no when-to-use guidance, no conditions that select this tool over railx_get_asset or railx_get_trade_plan, and no prerequisites. Usage is only implied by the phrase 'wallet balances and positions'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railx_get_priceARead-only
Read reference bid/ask and multiplier-adjusted token price. Read-only; not an executable quote.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description confirms 'Read-only' while adding the non-obvious trait that the value is a reference price, not an executable quote. It does not disclose staleness or refresh behavior, which a price tool ideally would.
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 short, front-loaded sentences with zero filler; the read-only disclaimer is placed immediately after the core definition.
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 single-parameter read tool with no output schema this is adequate, but it leaves the return payload (bid/ask shape, staleness, multiplier semantics) and the symbol parameter format unstated, so an agent must inspect the schema for bare essentials.
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 the description adds no meaning for the single 'symbol' parameter (no format, venue, or casing guidance). The only param is self-evident by name, but the description does nothing to compensate for the undocumented 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?
States a specific verb (Read) and resource (reference bid/ask and multiplier-adjusted token price), so the agent knows exactly what is returned. It also distinguishes itself from the quote-creation sibling by declaring it is 'not an executable quote.'
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 phrase 'not an executable quote' gives a clear exclusion, steering the agent away from this tool when a tradable quote is needed (e.g., toward railx_create_quote). It stops short of naming that alternative or stating positive when-to-use conditions explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railx_get_trade_planBRead-only
Retrieve a previously created durable trade plan. Read-only and scoped to the current project environment.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already declares readOnlyHint=true, so the 'Read-only' clause in the description adds no new information. However, 'scoped to the current project environment' is a genuine behavioral constraint not present in the annotations, telling the agent the lookup will not cross project boundaries. It omits what happens if the planId is unknown or expired.
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 brief sentences, front-loading the core action and following with the scope constraint. Nearly every word earns its place, though the 'Read-only' clause partly duplicates the readOnlyHint annotation.
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 single-parameter read tool with a readOnlyHint annotation and no output schema, the description covers the essentials of action and scope. It still leaves gaps around the origin/validity of planId and what the returned plan contains or looks like when missing, which matters for correct invocation.
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%: planId carries only type and length constraints, no semantic explanation. The description's 'previously created durable trade plan' hints that the ID references an existing plan, but it never states where the ID comes from, its expected format, or whether it must belong to the current project — insufficient compensation for a fully undocumented parameter.
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 gives a specific verb and resource ('Retrieve a ... trade plan') and qualifies it as 'previously created' and 'durable', which distinguishes it from write-oriented siblings like railx_create_quote and railx_preflight_trade. It does not explicitly contrast itself with other read siblings (e.g., railx_get_portfolio), so it stops short of full sibling differentiation.
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?
There is no explicit when-to-use, when-not-to-use, or alternative tool guidance. The phrase 'previously created' weakly implies the plan must already exist and that a planId from a prior creation step is required, but this is inference rather than stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railx_preflight_tradeA
Build and simulate a policy-checked trade plan with an allow, warn, or block verdict. New plans use one checked-action unit. Transactions are unsigned; blocked plans contain nothing signable.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | ||
| wallet | Yes | ||
| idempotencyKey | No | ||
| slippageTolerance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the three possible verdicts, that the output is unsigned and therefore non-committing, that blocked plans contain nothing signable, and that a new plan consumes one checked-action unit (a cost/quota signal). It stops short of stating auth requirements, persistence of the plan, or how idempotencyKey affects retries.
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?
Three short sentences with no filler, front-loaded with what the tool produces (a policy-checked verdict) and followed by the two facts most likely to change agent behavior: cost and the unsigned/unsignable guarantee.
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 tool with no annotations, no output schema, and 0% parameter coverage, the description covers the safety and cost profile but leaves the request shape and the returned payload undefined. An agent knows what verdict to expect but not what fields to supply or what the plan body contains.
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 the description mentions none of the four parameters (wallet, intent, idempotencyKey, slippageTolerance) or their meaning. The one quantitative statement ('one checked-action unit') is about billing, not parameters, so the description does not compensate for the total absence of schema-level parameter documentation.
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?
States a specific compound action (build AND simulate a trade plan) plus the outcome space (allow/warn/block verdict), which is more informative than the bare name. It does not, however, distinguish itself from siblings like railx_create_quote or railx_simulate_transactions, which an agent could reasonably confuse it with.
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 'preflight' framing and the verdict vocabulary imply this is the step taken before committing a trade, which gives the agent an implied use case. But no alternative is named and no condition is given for choosing this over railx_create_quote or railx_simulate_transactions, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
railx_simulate_transactionsC
Simulate an ordered transaction sequence. A successful simulation uses one checked-action unit. RailX never signs or submits transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | No | ||
| transactions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden. It does disclose two meaningful traits: RailX never signs or submits transactions, and each successful run consumes one checked-action unit. But it omits failure/error behavior, whether simulation is side-effect free beyond signing, and rate or size limits that an agent would need.
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?
Three short sentences with the core purpose front-loaded and no filler. The billing and no-signing notes each add distinct information, though the description is arguably too terse for a tool with a rich nested schema.
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, 0% schema coverage, and a nested transaction object with many optional fields, the description is incomplete. It never says what a simulation returns, how failures surface, or how the transaction fields should be populated.
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 compensate and largely does not. The phrase "ordered transaction sequence" hints that the transactions array order matters, but nothing explains the wallet parameter, the fixed chainId 4663 constraint, the 1–8 item limit, or the value/gas encoding formats.
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?
States a specific verb ("Simulate") and resource ("an ordered transaction sequence"), which is concrete and actionable. However, it does not distinguish this tool from siblings like railx_preflight_trade or railx_get_trade_plan, leaving the agent to infer which simulation-adjacent tool applies.
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?
There is no guidance on when to use this tool versus alternatives such as railx_preflight_trade, nor any prerequisites (e.g., quote required first). The only contextual note—"a successful simulation uses one checked-action unit"—is a billing remark, not usage direction.
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.
8 tool updates
v0.2.0- First observed
railx_create_quote - First observed
railx_get_asset - First observed
railx_get_corporate_actions - First observed
railx_get_portfolio - First observed
railx_get_price - First observed
railx_get_trade_plan - First observed
railx_preflight_trade - First observed
railx_simulate_transactions
TDQS
Scored across 8 tools
The four read tools (asset, price, corporate_actions, portfolio) each target a clearly distinct resource, and get_trade_plan is unambiguous. However create_quote, preflight_trade, and simulate_transactions all involve route/trade planning and simulation, so their boundaries rely heavily on the descriptions to separate them.
All tools use a consistent railx_ prefix followed by a verb_noun pattern (get_asset, get_price, create_quote, preflight_trade, simulate_transactions), making the surface highly predictable.
Eight tools is well-scoped for a read-plus-planning/simulation server, with each tool covering a distinct resource or lifecycle step.
The read surface plus quote, preflight, plan retrieval, and simulation covers the stated domain, and omitting transaction submission is explicitly by design. Minor gaps exist, such as no tool to list or manage multiple existing plans.
Maintenance
Related MCP Connectors
Live prices, perps, prediction markets and a paper trading desk over one MCP.
Hosted MCP for stocks, options, Greeks, brokers, order previews, alerts, and workflows.
Read-only MCP for Rialto quotes and swap preflight on Robinhood Chain. No signing or broadcast.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.713MIT
- AlicenseAqualityDmaintenanceRead-only MCP server for Blocksize market data discovery, pricing, documentation, and x402 endpoint lookup across crypto, equities, FX, and metals.71MIT
- FlicenseAqualityDmaintenanceEnables MCP clients to read Toss Securities market data and account info, and optionally place real-money orders.20-
- AlicenseAqualityAmaintenanceMCP gateway for AI agents to Robinhood Chain (Arcus DEX) tokenized US equities: quotes, multipliers, corporate actions, sectors. Read-only, keyless.131MIT