Free fee-aware position sizing, net risk/reward and trade performance. Read-only, no API key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Analyze up to 500 chronological closed trades supplied by the user, each with net P&L after costs and original risk. Returns win rate, profit factor, expectancy in currency and R, total net R, and optional closed-trade equity drawdown when initial equity is supplied. Use for reviewing an existing trade sample. No account access, deposits, intratrade drawdown, forecasts, signals, or new risk recommendations.
Closed trades ordered chronologically, all using the same currency and risk convention. Maximum 500.
Starting equity before the ordered trades. Required only for equity drawdown metrics. No deposits or withdrawals are modeled.
Currency shared by all monetary inputs. Defaults to USD; no currency conversion is performed.
Analyze up to 500 chronological closed trades supplied by the user, each with net P&L after costs and original risk. Returns win rate, profit factor, expectancy in currency and R, total net R, and optional closed-trade equity drawdown when initial equity is supplied. Use for reviewing an existing trade sample. No account access, deposits, intratrade drawdown, forecasts, signals, or new risk recommendations.
| Argument | Type | Description |
|---|---|---|
| trades* | array | Closed trades ordered chronologically, all using the same currency and risk convention. Maximum 500. |
| initialEquity | number | Starting equity before the ordered trades. Required only for equity drawdown metrics. No deposits or withdrawals are modeled. |
| quoteCurrency | string | Currency shared by all monetary inputs. Defaults to USD; no currency conversion is performed. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"trades"
],
"properties": {
"trades": {
"type": "array",
"items": {
"type": "object",
"required": [
"netPnl",
"initialRisk"
],
"properties": {
"netPnl": {
"type": "number",
"maximum": 1000000000000,
"minimum": -1000000000000,
"description": "Realized P&L after all fees and costs. Positive is profit; negative is loss."
},
"initialRisk": {
"type": "number",
"maximum": 1000000000000,
"description": "Original planned risk amount, including planned fees if that is your convention. Do not replace it with a later stop risk.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1,
"description": "Closed trades ordered chronologically, all using the same currency and risk convention. Maximum 500."
},
"initialEquity": {
"type": "number",
"maximum": 1000000000000,
"description": "Starting equity before the ordered trades. Required only for equity drawdown metrics. No deposits or withdrawals are modeled.",
"exclusiveMinimum": 0
},
"quoteCurrency": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9]{1,9}$",
"description": "Currency shared by all monetary inputs. Defaults to USD; no currency conversion is performed."
}
},
"additionalProperties": false
}Compare gross and fee-adjusted reward-to-risk, loss and profit per unit, and breakeven win rate for a linear trade with known entry, stop and target. Accepts distinct entry/stop/target fee percentages. Use for questions about a planned R ratio or how fees change it. Direction is derived from entry and stop. Does not fetch venue fees or predict execution, liquidation, or trade outcomes.
| Argument | Type | Description |
|---|---|---|
| fees | object | User-supplied rates. Omission explicitly assumes zero fees; no exchange rate lookup is performed. |
| stopPrice* | number | Planned stop price. Direction is derived from entry and stop. |
| entryPrice* | number | Planned entry price in quote currency per base unit. |
| targetPrice* | number | Profit target price, opposite the stop relative to entry. |
| quoteCurrency | string | Currency shared by all monetary inputs. Defaults to USD; no currency conversion is performed. |
| instrumentType | string | Linear quote-margined instruments only. Inverse contracts and liquidation are unsupported. |
Calculate position quantity and notional for a linear crypto futures trade from user-specified account balance, risk percentage, entry and stop. Includes separate entry/stop fees and optional target profit and net R. Direction is derived. Use when asked how much to buy or sell for a specified risk budget. Ask for missing prices or risk preference; do not invent them. Does not calculate liquidation, leverage, inverse contracts, exchange lot rounding, signals, or execute orders.
| Argument | Type | Description |
|---|---|---|
| fees | object | User-supplied rates. Omission explicitly assumes zero fees; no exchange rate lookup is performed. |
| stopPrice* | number | Planned stop price. Direction is derived from entry and stop. |
| entryPrice* | number | Planned entry price in quote currency per base unit. |
| riskPercent* | number | User-chosen account risk percentage, e.g. 1 means 1%. Never infer a risk preference. |
| targetPrice | number | Optional profit target, opposite the stop relative to entry. |
| quoteCurrency | string | Currency shared by all monetary inputs. Defaults to USD; no currency conversion is performed. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"entryPrice",
"stopPrice",
"targetPrice"
],
"properties": {
"fees": {
"type": "object",
"required": [
"entryPercent",
"stopPercent"
],
"properties": {
"stopPercent": {
"type": "number",
"minimum": 0,
"description": "Stop exit fee percent, e.g. 0.05.",
"exclusiveMaximum": 100
},
"entryPercent": {
"type": "number",
"minimum": 0,
"description": "Entry fee percent, e.g. 0.05 means 0.05%, not 5%.",
"exclusiveMaximum": 100
},
"targetPercent": {
"type": "number",
"minimum": 0,
"description": "Target exit fee percent; defaults to stopPercent.",
"exclusiveMaximum": 100
}
},
"description": "User-supplied rates. Omission explicitly assumes zero fees; no exchange rate lookup is performed.",
"additionalProperties": false
},
"stopPrice": {
"type": "number",
"maximum": 1000000000000,
"description": "Planned stop price. Direction is derived from entry and stop.",
"exclusiveMinimum": 0
},
"entryPrice": {
"type": "number",
"maximum": 1000000000000,
"description": "Planned entry price in quote currency per base unit.",
"exclusiveMinimum": 0
},
"targetPrice": {
"type": "number",
"maximum": 1000000000000,
"description": "Profit target price, opposite the stop relative to entry.",
"exclusiveMinimum": 0
},
"quoteCurrency": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9]{1,9}$",
"description": "Currency shared by all monetary inputs. Defaults to USD; no currency conversion is performed."
},
"instrumentType": {
"type": "string",
"const": "linear",
"description": "Linear quote-margined instruments only. Inverse contracts and liquidation are unsupported."
}
},
"additionalProperties": false
}| accountBalance* |
| number |
| Account balance in the same quote currency as prices. |
| instrumentType | string | Linear quote-margined instruments only. Inverse contracts and liquidation are unsupported. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"entryPrice",
"stopPrice",
"accountBalance",
"riskPercent"
],
"properties": {
"fees": {
"type": "object",
"required": [
"entryPercent",
"stopPercent"
],
"properties": {
"stopPercent": {
"type": "number",
"minimum": 0,
"description": "Stop exit fee percent, e.g. 0.05.",
"exclusiveMaximum": 100
},
"entryPercent": {
"type": "number",
"minimum": 0,
"description": "Entry fee percent, e.g. 0.05 means 0.05%, not 5%.",
"exclusiveMaximum": 100
},
"targetPercent": {
"type": "number",
"minimum": 0,
"description": "Target exit fee percent; defaults to stopPercent.",
"exclusiveMaximum": 100
}
},
"description": "User-supplied rates. Omission explicitly assumes zero fees; no exchange rate lookup is performed.",
"additionalProperties": false
},
"stopPrice": {
"type": "number",
"maximum": 1000000000000,
"description": "Planned stop price. Direction is derived from entry and stop.",
"exclusiveMinimum": 0
},
"entryPrice": {
"type": "number",
"maximum": 1000000000000,
"description": "Planned entry price in quote currency per base unit.",
"exclusiveMinimum": 0
},
"riskPercent": {
"type": "number",
"maximum": 100,
"description": "User-chosen account risk percentage, e.g. 1 means 1%. Never infer a risk preference.",
"exclusiveMinimum": 0
},
"targetPrice": {
"type": "number",
"maximum": 1000000000000,
"description": "Optional profit target, opposite the stop relative to entry.",
"exclusiveMinimum": 0
},
"quoteCurrency": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9]{1,9}$",
"description": "Currency shared by all monetary inputs. Defaults to USD; no currency conversion is performed."
},
"accountBalance": {
"type": "number",
"maximum": 1000000000000,
"description": "Account balance in the same quote currency as prices.",
"exclusiveMinimum": 0
},
"instrumentType": {
"type": "string",
"const": "linear",
"description": "Linear quote-margined instruments only. Inverse contracts and liquidation are unsupported."
}
},
"additionalProperties": false
}