MarketIntell MCP
An AI analyst desk for stocks, options, and crypto that provides natural-language market questions with sourced trade setups, including direction, entry, stop, targets, and conviction scores. It supports autonomous trading agents, market bots, and portfolio analysis via MCP tools.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.marketintell.ai/mcpWhat its tools do
17 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (12)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to marketintell.ai ·
- Passed Endpoint is on the registry namespace domain ·
- Warning Advertises resources/templates/list but does not implement it
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Poll for fresh alpha signals and gate on performance metrics
- Forward user questions to chat with streaming SSE for market bots
- Rank assets by confidence and cited evidence for research agents
- Score current exposure and rebalance portfolios with stops and targets
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- marketintell 0.1.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 17 advertised
- Resources
- 2 advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"logging": {
"enabled": true
},
"resources": {
"subscribe": true,
"listChanged": true
},
"extensions": {
"io.modelcontextprotocol/ui": {}
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
17 advertised
chat
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.
{
"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
}{
"title": "Chat with the MarketIntell brain",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}chat_deep
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.
{
"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
}{
"title": "Deep multi-specialist analysis (T3)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}alpha_signals
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.
{
"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
}{
"title": "Recent alpha signals",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}signal_performance
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "Signal accuracy stats",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}screener
Token screening — find trending tokens, top gainers, and top losers. Use this to discover what's moving in the market right now.
{
"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
}{
"title": "Token / equity screener",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}portfolio_list
List all portfolios owned by the authenticated key. Returns id, name, holdings, timestamps.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "List portfolios",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}portfolio_create
Create a new portfolio for the authenticated key. Holdings are token symbol + amount (+ optional entry_price and notes).
{
"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
}{
"title": "Create a portfolio",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}portfolio_analyze
Compute PnL + risk assessment for a portfolio you own. Returns per-holding pnl, risk_assessment, and top_risks.
{
"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
}{
"title": "Analyze portfolio PnL + risk",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}sessions_list
List the authenticated key's recent chat sessions. Useful to resume prior conversations.
{
"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
}{
"title": "List chat sessions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}billing_status
Return the authenticated key's plan, daily quota usage, monthly LLM-cost-cents, and cap. Mirrors GET /v1/billing/status.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "Billing + quota status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}health
MarketIntell system health — uptime, cache stats, memory, provider circuit-breaker states.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "System health",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}register_challenge
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 }.
{
"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
}{
"title": "Get a self-signup PoW challenge",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}register
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.
{
"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
}{
"title": "Provision a Free-tier API key",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}execute_propose_intent
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.
{
"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
}{
"title": "Propose a trade intent (pending review)",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}execute_approve_intent
Approve a pending trade intent and place the order at the broker. Returns the executed_order audit row. Requires `trade` scope.
{
"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
}{
"title": "Approve intent & place order",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}execute_list_intents
List the caller's recent trade intents (pending, executed, rejected). Requires `trade` scope.
{
"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
}{
"title": "List trade intents",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}execute_read_portfolio
Read the caller's connected broker account snapshot — equity, cash, buying power, open positions. Requires `trade` scope.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"broker_connection_id": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Read broker account snapshot",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
2 advertised
MarketIntell — 30-day accuracy
Inline UI rendered alongside the `signal_performance` tool. Shows the rolling 30-day win rate by trade timeframe (15m/1H/4H) plus an overall rollup so users can audit signal quality without leaving the chat.
ui://marketintell/accuracy.htmlMarketIntell — Alpha signals feed
Inline UI rendered alongside the `alpha_signals` tool. Renders the recent signals as a compact, scroll-friendly list with direction, impact, and timestamp.
ui://marketintell/signals-feed.html90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1878 ms
- 95th percentile latency
- 1878 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1878 ms · metadata changed · 17 tool(s), 2 resource(s); warnings: Advertises resources/templates/list but does not implement it
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http marketintell-mcp https://api.marketintell.ai/mcpCodex
codex mcp add marketintell-mcp --url https://api.marketintell.ai/mcpCursor
{
"mcpServers": {
"marketintell-mcp": {
"url": "https://api.marketintell.ai/mcp"
}
}
}Cline
{
"mcpServers": {
"marketintell-mcp": {
"type": "streamableHttp",
"url": "https://api.marketintell.ai/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"marketintell-mcp": {
"type": "http",
"url": "https://api.marketintell.ai/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http marketintell-mcp https://api.marketintell.ai/mcpClaude Desktop
https://api.marketintell.ai/mcpWindsurf
{
"mcpServers": {
"marketintell-mcp": {
"serverUrl": "https://api.marketintell.ai/mcp"
}
}
}Let your agent find its tools
Find servers like MarketIntell MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run MarketIntell MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.