AI analyst desk for stocks, options & crypto with sourced trade setups and a public accuracy record.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
API key from https://marketintell.ai/signup (or SHA-256 PoW self-signup at https://api.marketintell.ai/v1/auth/challenge). Capability-discovery methods (initialize, tools/list, resources/list, prompts/list, ping) succeed without a key; tools/call and resources/read require one.
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.
Fetch recent alpha signals — automated market intelligence. Crypto signals every ~10 min; equities (Beta) every ~30 min during US market hours. Filter by domain to narrow.
Number of signals to return (1-50, default 10)
Filter by asset domain. Omit to return all domains mixed.
When true, inline venue/precision metadata (venue, venue_symbol, max_leverage, sz_decimals) on each signal's setup so you can place an order without a second tokens lookup.
Fetch recent alpha signals — automated market intelligence. Crypto signals every ~10 min; equities (Beta) every ~30 min during US market hours. Filter by domain to narrow.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of signals to return (1-50, default 10) |
| domain | string | Filter by asset domain. Omit to return all domains mixed. |
| include_execution | boolean | When true, inline venue/precision metadata (venue, venue_symbol, max_leverage, sz_decimals) on each signal's setup so you can place an order without a second tokens lookup. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Number of signals to return (1-50, default 10)"
},
"domain": {
"enum": [
"crypto",
"us_equities",
"india_stocks"
],
"type": "string",
"description": "Filter by asset domain. Omit to return all domains mixed."
},
"include_execution": {
"type": "boolean",
"description": "When true, inline venue/precision metadata (venue, venue_symbol, max_leverage, sz_decimals) on each signal's setup so you can place an order without a second tokens lookup."
}
},
"additionalProperties": false
}Return the authenticated key's plan, daily quota usage, monthly LLM-cost-cents, and cap. Mirrors GET /v1/billing/status.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Run a query through MarketIntell's brain (auto-routes to T1 fast agent or T2 CoT pipeline based on intent). Returns synthesized analysis with citations and trade setup when relevant.
| Argument | Type | Description |
|---|---|---|
| query* | string | Natural language query, e.g. 'Should I long BTC?', 'What caused ETH to dump?' |
| domain | string | Asset domain override — bypasses the auto-classifier. |
| session_id | string | Optional UUID of an existing chat session to continue. Omit to start a new session. |
| portfolio_id | string | Explicit portfolio override for portfolio-aware chat. |
| include_facts | boolean | When true, attach fact_projection (neutral Fact[] + thesis) to the result. Default off. |
| response_format | object | Structured-output control — mirrors REST /v1/chat response_format. |
| include_portfolio | boolean | Force auto-load (true) or opt out (false) of the caller's default portfolio for this turn. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Natural language query, e.g. 'Should I long BTC?', 'What caused ETH to dump?'"
},
"domain": {
"enum": [
"crypto",
"us_equities",
"india_stocks"
],
"type": "string",
"description": "Asset domain override — bypasses the auto-classifier."
},
"session_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Optional UUID of an existing chat session to continue. Omit to start a new session."
},
"portfolio_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Explicit portfolio override for portfolio-aware chat."
},
"include_facts": {
"type": "boolean",
"description": "When true, attach fact_projection (neutral Fact[] + thesis) to the result. Default off."
},
"response_format": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"text",
"json_schema",
"trade_setup"
],
"type": "string"
},
"json_schema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"strict": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"description": "Structured-output control — mirrors REST /v1/chat response_format.",
"additionalProperties": false
},
"include_portfolio": {
"type": "boolean",
"description": "Force auto-load (true) or opt out (false) of the caller's default portfolio for this turn."
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}Run a query through MarketIntell's T3 supervisor — parallel specialists across technical/derivatives/macro/social/onchain/etc. plus synthesis. Slower (~25-40s) and costlier than `chat`. Pro tier only.
| Argument | Type | Description |
|---|---|---|
| query* | string | Multi-perspective query, e.g. 'Full breakdown of ETH', 'Compare BTC vs ETH vs SOL across all angles' |
| domain | string | Asset domain override — bypasses the auto-classifier. |
| session_id | string | |
| portfolio_id | string | Explicit portfolio override for portfolio-aware chat. |
| include_facts | boolean | When true, attach fact_projection (neutral Fact[] + thesis) to the result. Default off. |
| response_format | object | Structured-output control — mirrors REST /v1/chat response_format. |
| include_portfolio | boolean | Force auto-load (true) or opt out (false) of the caller's default portfolio for this turn. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Multi-perspective query, e.g. 'Full breakdown of ETH', 'Compare BTC vs ETH vs SOL across all angles'"
},
"domain": {
"enum": [
"crypto",
"us_equities",
"india_stocks"
],
"type": "string",
"description": "Asset domain override — bypasses the auto-classifier."
},
"session_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"portfolio_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Explicit portfolio override for portfolio-aware chat."
},
"include_facts": {
"type": "boolean",
"description": "When true, attach fact_projection (neutral Fact[] + thesis) to the result. Default off."
},
"response_format": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"text",
"json_schema",
"trade_setup"
],
"type": "string"
},
"json_schema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"strict": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"description": "Structured-output control — mirrors REST /v1/chat response_format.",
"additionalProperties": false
},
"include_portfolio": {
"type": "boolean",
"description": "Force auto-load (true) or opt out (false) of the caller's default portfolio for this turn."
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}Approve a pending trade intent and place the order at the broker. Returns the executed_order audit row. Requires `trade` scope.
| Argument | Type | Description |
|---|---|---|
| qty | number | Override qty at approval time |
| intent_id* | string | UUID of a pending trade intent owned by the caller |
| notional_cents | integer | Override notional at approval time |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intent_id"
],
"properties": {
"qty": {
"type": "number",
"description": "Override qty at approval time",
"exclusiveMinimum": 0
},
"intent_id": {
"type": "string",
"description": "UUID of a pending trade intent owned by the caller"
},
"notional_cents": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Override notional at approval time",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}List the caller's recent trade intents (pending, executed, rejected). Requires `trade` scope.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| status | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"status": {
"enum": [
"pending",
"approved",
"executed",
"rejected",
"execution_failed",
"expired"
],
"type": "string"
}
},
"additionalProperties": false
}Propose a trade intent to the user's connected broker. Writes a pending row the user reviews + approves. Requires `trade` scope. Use this when an agent wants to act on a signal without placing the order itself.
| Argument | Type | Description |
|---|---|---|
| qty | number | Per-share / per-token qty (alternative to notional) |
| side* | string | Direction |
| symbol* | string | Ticker / token, e.g. AAPL or BTC |
| reasoning* | string | Plain-English rationale, surfaced to the user when they review the intent |
| signal_id | string | MarketIntell TradeSignal ID, if this is acting on one |
| confidence* | number | Your confidence 0-1 |
| order_type | string | |
| stop_price | number | |
| asset_class* | string | Asset class — must match the broker's supportedAssetClasses |
Read the caller's connected broker account snapshot — equity, cash, buying power, open positions. Requires `trade` scope.
| Argument | Type | Description |
|---|---|---|
| broker_connection_id | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"broker_connection_id": {
"type": "string"
}
},
"additionalProperties": false
}MarketIntell system health — uptime, cache stats, memory, provider circuit-breaker states.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Compute PnL + risk assessment for a portfolio you own. Returns per-holding pnl, risk_assessment, and top_risks.
| Argument | Type | Description |
|---|---|---|
| portfolio_id* | string | Portfolio ID returned by portfolio_create or portfolio_list |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"portfolio_id"
],
"properties": {
"portfolio_id": {
"type": "string",
"minLength": 1,
"description": "Portfolio ID returned by portfolio_create or portfolio_list"
}
},
"additionalProperties": false
}Create a new portfolio for the authenticated key. Holdings are token symbol + amount (+ optional entry_price and notes).
| Argument | Type | Description |
|---|---|---|
| name* | string | Display name, e.g. 'Main', 'Tax-loss harvest' |
| holdings* | array |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"holdings"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Display name, e.g. 'Main', 'Tax-loss harvest'"
},
"holdings": {
"type": "array",
"items": {
"type": "object",
"required": [
"token",
"amount"
],
"properties": {
"notes": {
"type": "string",
"maxLength": 500
},
"token": {
"type": "string",
"minLength": 1,
"description": "Symbol, e.g. 'BTC', 'ETH', 'SOL'"
},
"amount": {
"type": "number",
"description": "Quantity held (positive)",
"exclusiveMinimum": 0
},
"entry_price": {
"type": "number",
"description": "Average USD entry price (optional)",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
}
},
"additionalProperties": false
}List all portfolios owned by the authenticated key. Returns id, name, holdings, timestamps.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Step 2 of MCP self-signup. Submit the challenge id + solved nonce to provision a fresh Free-tier API key. The key is shown ONCE — store it. Pro upgrades go through Stripe checkout; this tool only issues Free keys.
| Argument | Type | Description |
|---|---|---|
| name* | string | Human-readable label for the new key, e.g. 'Claude Desktop on my laptop'. Shown in the keys admin UI. |
| nonce* | string | Nonce that satisfies the proof-of-work constraint. |
| challenge_id* | string | ID returned by register_challenge. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"challenge_id",
"nonce",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Human-readable label for the new key, e.g. 'Claude Desktop on my laptop'. Shown in the keys admin UI."
},
"nonce": {
"type": "string",
"minLength": 1,
"description": "Nonce that satisfies the proof-of-work constraint."
},
"challenge_id": {
"type": "string",
"minLength": 1,
"description": "ID returned by register_challenge."
}
},
"additionalProperties": false
}Step 1 of MCP self-signup. Returns a proof-of-work challenge. Solve locally (find a nonce whose sha256 has the required leading zero hex chars), then call `register` with { challenge_id, nonce, name }.
| Argument | Type | Description |
|---|---|---|
| difficulty | integer | Optional override (1-8). Default comes from POW_DIFFICULTY env (typically 5 ≈ 5s solve). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"difficulty": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Optional override (1-8). Default comes from POW_DIFFICULTY env (typically 5 ≈ 5s solve)."
}
},
"additionalProperties": false
}Token screening — find trending tokens, top gainers, and top losers. Use this to discover what's moving in the market right now.
| Argument | Type | Description |
|---|---|---|
| type | string | 'trending' (hot tokens), 'gainers' (top 24h gainers), 'losers' (top 24h losers), or 'all' |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"type": {
"enum": [
"trending",
"gainers",
"losers",
"all"
],
"type": "string",
"default": "all",
"description": "'trending' (hot tokens), 'gainers' (top 24h gainers), 'losers' (top 24h losers), or 'all'"
}
},
"additionalProperties": false
}List the authenticated key's recent chat sessions. Useful to resume prior conversations.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max sessions to return (1-100) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max sessions to return (1-100)"
}
},
"additionalProperties": false
}Realized signal accuracy — rolling 30-day win rate over CLOSED trade signals, where a win is a real take-profit / in-profit expiry (net positive after fees & leverage) and a loss is a real stop-loss / losing expiry. Win-rate is over resolved signals only; flat (break-even) and cancelled/no-fill/ambiguous signals are reported but excluded from the rate. Broken down by timeframe and direction.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}| limit_price | number |
| take_profits | array |
| notional_cents | integer | USD cents notional (preferred sizing — broker converts to qty) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol",
"asset_class",
"side",
"reasoning",
"confidence"
],
"properties": {
"qty": {
"type": "number",
"description": "Per-share / per-token qty (alternative to notional)",
"exclusiveMinimum": 0
},
"side": {
"enum": [
"buy",
"sell"
],
"type": "string",
"description": "Direction"
},
"symbol": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "Ticker / token, e.g. AAPL or BTC"
},
"reasoning": {
"type": "string",
"maxLength": 2000,
"minLength": 20,
"description": "Plain-English rationale, surfaced to the user when they review the intent"
},
"signal_id": {
"type": "string",
"description": "MarketIntell TradeSignal ID, if this is acting on one"
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Your confidence 0-1"
},
"order_type": {
"enum": [
"market",
"limit",
"bracket"
],
"type": "string",
"default": "bracket"
},
"stop_price": {
"type": "number",
"exclusiveMinimum": 0
},
"asset_class": {
"enum": [
"crypto_spot",
"crypto_perp",
"equity",
"option"
],
"type": "string",
"description": "Asset class — must match the broker's supportedAssetClasses"
},
"limit_price": {
"type": "number",
"exclusiveMinimum": 0
},
"take_profits": {
"type": "array",
"items": {
"type": "object",
"required": [
"price",
"qty_pct"
],
"properties": {
"price": {
"type": "number",
"exclusiveMinimum": 0
},
"qty_pct": {
"type": "number",
"maximum": 100,
"minimum": 1
}
},
"additionalProperties": false
}
},
"notional_cents": {
"type": "integer",
"maximum": 9007199254740991,
"description": "USD cents notional (preferred sizing — broker converts to qty)",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}