# ai.marketintell/marketintell (remote · api.marketintell.ai)

AI analyst desk for stocks, options & crypto with sourced trade setups and a public accuracy record.

- Trust score: 83/100 (high trust)
- Change this week: +9
- Registry status: active
- Liveness: degraded
- Owner verified: no
- Last scored: 2026-08-03

> **Degraded**: one or more channels of this server are currently unreachable; their trust score is decaying and will reach 0 if they stay down.

## Components

- remote · `api.marketintell.ai`: 83/100 (this document), [markdown](https://verifymcp.io/servers/ai-marketintell-marketintell/api.md), [page](https://verifymcp.io/servers/ai-marketintell-marketintell/api)
- remote · `api.marketintell.ai`: 25/100, [markdown](https://verifymcp.io/servers/ai-marketintell-marketintell/api-2.md), [page](https://verifymcp.io/servers/ai-marketintell-marketintell/api-2)
- npm · `marketintell`: 15/100, [markdown](https://verifymcp.io/servers/ai-marketintell-marketintell/marketintell.md), [page](https://verifymcp.io/servers/ai-marketintell-marketintell/marketintell)

## Channel facts

- Endpoint: `https://api.marketintell.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.3.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 97/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1861 tokens (~97/item across 19 items; 17 tools + 2 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 93/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 80% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add --transport http ai-marketintell-marketintell https://api.marketintell.ai/mcp
```

### Codex

```toml
[mcp_servers.ai-marketintell-marketintell]
url = "https://api.marketintell.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-marketintell-marketintell": {
      "type": "remote",
      "url": "https://api.marketintell.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-marketintell-marketintell --url https://api.marketintell.ai/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-marketintell-marketintell:
    url: "https://api.marketintell.ai/mcp"
```

### Other

```json
{
  "mcpServers": {
    "ai-marketintell-marketintell": {
      "type": "http",
      "url": "https://api.marketintell.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 82, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 76, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 74, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 73)

First indexed and scored.

## MCP tools (17)

### `chat` (~208 tokens)

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.

Input parameters:

- `domain` (string): Asset domain override — bypasses the auto-classifier.
- `include_facts` (boolean): When true, attach fact_projection (neutral Fact[] + thesis) to the result. Default off.
- `include_portfolio` (boolean): Force auto-load (true) or opt out (false) of the caller's default portfolio for this turn.
- `portfolio_id` (string): Explicit portfolio override for portfolio-aware chat.
- `query` (string, required): Natural language query, e.g. 'Should I long BTC?', 'What caused ETH to dump?'
- `response_format` (object): Structured-output control — mirrors REST /v1/chat response_format.
- `session_id` (string): Optional UUID of an existing chat session to continue. Omit to start a new session.

### `chat_deep` (~206 tokens)

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.

Input parameters:

- `domain` (string): Asset domain override — bypasses the auto-classifier.
- `include_facts` (boolean): When true, attach fact_projection (neutral Fact[] + thesis) to the result. Default off.
- `include_portfolio` (boolean): Force auto-load (true) or opt out (false) of the caller's default portfolio for this turn.
- `portfolio_id` (string): Explicit portfolio override for portfolio-aware chat.
- `query` (string, required): Multi-perspective query, e.g. 'Full breakdown of ETH', 'Compare BTC vs ETH vs SOL across all angles'
- `response_format` (object): Structured-output control — mirrors REST /v1/chat response_format.
- `session_id` (string)

### `alpha_signals` (~129 tokens)

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.

Input parameters:

- `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.
- `limit` (integer): Number of signals to return (1-50, default 10)

### `signal_performance` (~93 tokens)

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.

### `screener` (~76 tokens)

Token screening — find trending tokens, top gainers, and top losers. Use this to discover what's moving in the market right now.

Input parameters:

- `type` (string): 'trending' (hot tokens), 'gainers' (top 24h gainers), 'losers' (top 24h losers), or 'all'

### `portfolio_list` (~26 tokens)

List all portfolios owned by the authenticated key. Returns id, name, holdings, timestamps.

### `portfolio_create` (~57 tokens)

Create a new portfolio for the authenticated key. Holdings are token symbol + amount (+ optional entry_price and notes).

Input parameters:

- `holdings` (array, required)
- `name` (string, required): Display name, e.g. 'Main', 'Tax-loss harvest'

### `portfolio_analyze` (~55 tokens)

Compute PnL + risk assessment for a portfolio you own. Returns per-holding pnl, risk_assessment, and top_risks.

Input parameters:

- `portfolio_id` (string, required): Portfolio ID returned by portfolio_create or portfolio_list

### `sessions_list` (~38 tokens)

List the authenticated key's recent chat sessions. Useful to resume prior conversations.

Input parameters:

- `limit` (integer): Max sessions to return (1-100)

### `billing_status` (~38 tokens)

Return the authenticated key's plan, daily quota usage, monthly LLM-cost-cents, and cap. Mirrors GET /v1/billing/status.

### `health` (~26 tokens)

MarketIntell system health — uptime, cache stats, memory, provider circuit-breaker states.

### `register_challenge` (~90 tokens)

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 }.

Input parameters:

- `difficulty` (integer): Optional override (1-8). Default comes from POW_DIFFICULTY env (typically 5 ≈ 5s solve).

### `register` (~118 tokens)

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.

Input parameters:

- `challenge_id` (string, required): ID returned by register_challenge.
- `name` (string, required): Human-readable label for the new key, e.g. 'Claude Desktop on my laptop'. Shown in the keys admin UI.
- `nonce` (string, required): Nonce that satisfies the proof-of-work constraint.

### `execute_propose_intent` (~228 tokens)

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.

Input parameters:

- `asset_class` (string, required): Asset class — must match the broker's supportedAssetClasses
- `confidence` (number, required): Your confidence 0-1
- `limit_price` (number)
- `notional_cents` (integer): USD cents notional (preferred sizing — broker converts to qty)
- `order_type` (string)
- `qty` (number): Per-share / per-token qty (alternative to notional)
- `reasoning` (string, required): Plain-English rationale, surfaced to the user when they review the intent
- `side` (string, required): Direction
- `signal_id` (string): MarketIntell TradeSignal ID, if this is acting on one
- `stop_price` (number)
- `symbol` (string, required): Ticker / token, e.g. AAPL or BTC
- `take_profits` (array)

### `execute_approve_intent` (~84 tokens)

Approve a pending trade intent and place the order at the broker. Returns the executed_order audit row. Requires `trade` scope.

Input parameters:

- `intent_id` (string, required): UUID of a pending trade intent owned by the caller
- `notional_cents` (integer): Override notional at approval time
- `qty` (number): Override qty at approval time

### `execute_list_intents` (~44 tokens)

List the caller's recent trade intents (pending, executed, rejected). Requires `trade` scope.

Input parameters:

- `limit` (integer)
- `status` (string)

### `execute_read_portfolio` (~44 tokens)

Read the caller's connected broker account snapshot — equity, cash, buying power, open positions. Requires `trade` scope.

Input parameters:

- `broker_connection_id` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ai-marketintell-marketintell/api#diagnostics

## Score history

- 2026-08-03: 83
- 2026-08-02: 83
- 2026-08-01: 82
- 2026-07-31: 82
- 2026-07-30: 76
- 2026-07-29: 75
- 2026-07-28: 75
- 2026-07-27: 74
- 2026-07-26: 73

## Links

- Remote endpoint: https://api.marketintell.ai/mcp
- Website: https://marketintell.ai/
- Changelog RSS feed: https://verifymcp.io/servers/ai-marketintell-marketintell/api/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-marketintell-marketintell/api/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-marketintell-marketintell/api
