# Helium MCP Server - News, Markets & AI (remote · heliumtrades.com)

Real-time news with bias scoring, live market data, and AI-powered options pricing

- Trust score: 62/100 (medium)
- Change this week: +7
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- remote · `heliumtrades.com`: 62/100 (this document), [markdown](https://verifymcp.io/servers/connerlambden-helium-mcp/heliumtrades.md), [page](https://verifymcp.io/servers/connerlambden-helium-mcp/heliumtrades)

## Channel facts

- Endpoint: `https://heliumtrades.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.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-04.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 10 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - 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**: 49/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4748 tokens (~474/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http connerlambden-helium-mcp https://heliumtrades.com/mcp
```

### Codex

```toml
[mcp_servers.connerlambden-helium-mcp]
url = "https://heliumtrades.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "connerlambden-helium-mcp": {
      "type": "remote",
      "url": "https://heliumtrades.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add connerlambden-helium-mcp --url https://heliumtrades.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  connerlambden-helium-mcp:
    url: "https://heliumtrades.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "connerlambden-helium-mcp": {
      "type": "http",
      "url": "https://heliumtrades.com/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-04 (score 62, +1)

- [security] Tool “get_ticker” rewrote its description, which is the text the model reads

### 2026-08-02 (score 61, +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 60, +3)

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

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

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

### 2026-07-29 (score 56, +1)

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

### 2026-07-27 (score 55, +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 54)

First indexed and scored.

## MCP tools (10)

### `search_news` (~551 tokens)

Search news articles.

    Returns a list of matching articles. Each article includes:
    - article_id, classification_id, title, source, date, link, category, rank, total_shares, summary
    - bias_values: dict of per-dimension bias scores using plain-text keys (e.g. 'liberal conservative bias'),
      same schema as get_bias_from_url and get_all_source_biases (when available)
    - bias_analysis_status: 'evidence_ready', 'evidence_unverified', 'evidence_partial',
      'scored_legacy', or 'pending'
    - bias_dimensions when include_evidence=true: a self-contained object joining each score,
      scale, evidence status, claim, evidence, counterevidence, confidence, and rationale.
      Quotes include verification method and exact character offsets when raw-text matching succeeds.
      Dimension evidence_status is one of: verified, provided_unchecked, quote_mismatch,
      metadata_incomplete, metadata_only, or missing.
    - bias_analysis: contract/schema/model/prompt provenance, generation and review status,
      input scope/hash/size, limitations, quote-verification method, and explicit evidence coverage
    - context: AI-generated contextual background for the article (when available)
    - extracted_data: structured quantitative/qualitative facts extracted from the article
    - raw_data: legacy serialized form of extracted_data

    Args:
        query: Search keywords (required).
        limit: Max results (1-100, default 20).
        source: Filter by source name, e.g. 'CNN', 'Reuters'.
        category: Filter by category. One of: 'trending', 'tech', 'markets', 'politics',
                  'business', 'science', 'memes'.
        days_back: Only include articles from the last N days. 0 means no date filter. Default: 720 (2 years).
        min_shares: Minimum total social shares.
        sort: Sort order. One of: 'rank' (relevance, default), 'date' (newest), 'shares' (most shared).
        include_evidence: Include claim-level evidence, counterevidence,…

Input parameters:

- `category` (string)
- `days_back` (integer)
- `include_evidence` (boolean)
- `limit` (integer)
- `min_shares` (integer)
- `only_analyzed` (boolean)
- `query` (string, required)
- `sort` (string)
- `source` (string)

Output parameters:

- `result` (string)

### `get_ticker` (~282 tokens)

Get comprehensive data for a stock, ETF, or crypto ticker.

    Returns:
    - ticker, name, type (e.g. 'stock', 'etf', 'crypto'), industry
    - latest_price, page_url
    - bullish_case, bearish_case, potential_outcomes, takeaway, analysis_date (AI-generated)
    - price_forecast_days, price_forecast_percent, price_forecast_lower/upper_bound_percent (model price forecast)
    - future_uncertainty_urls: dict with raw underlying Plotly data (extracted from each stored
      Plotly graph) for future_uncertainty (keyed by days-ahead), term_structure,
      volatility_surface, and return_profile — the data behind the interactive graphs the site
      now renders instead of the old static images (when available)
    - future_uncertainty_last_updated, term_structure_last_updated
    - iv_rank_percentile (0-100, IV rank over past year)
    - long_vol_call, long_vol_put, short_vol_call, short_vol_put: full option pack dicts (when available)

    Throws an error if the ticker is not recognized.

    Args:
        ticker: Ticker symbol, e.g. 'AAPL', 'AMZN', 'BTC', 'ETH', 'SPY'.

Input parameters:

- `ticker` (string, required)

Output parameters:

- `result` (string)

### `get_source_bias` (~687 tokens)

Get comprehensive bias analysis for a news source.

    Returns:
    - source_name, slug_name, page_url
    - source_match: original query and deterministic match method
    - articles_analyzed: total articles in the bias database for this source
    - last_updated: source-profile aggregation timestamp
    - avg_social_shares: average social shares per article
    - emotionality_score (0-10): how emotional the writing is
    - prescriptiveness_score (0-10): how much the source tells readers what to think/do
    - bias_values: canonical plain-text source-level weighted display scores (-50 to +50 bipolar,
      0 to +50 unipolar). Keys match the article tools; these are directional source summaries,
      not raw article-score averages.
    - bias_scores: legacy emoji-prefixed display scores
    - bias_score_methodology: scope and evidence caveats for aggregate scores
    - bias_description: clean-text, AI-generated overall bias summary narrative
    - bias_description_metadata: generation time, automated review status, and evidence scope
    - bias_description_html: optional website HTML when include_html=true
    - liberal_conservative_description: narrative on political leaning
    - libertarian_authoritarian_description: narrative on authority stance
    - signature_phrases: words/phrases uniquely overrepresented vs other sources
    - signature_negative_phrases: uniquely negative/alarming phrases
    - most_shared_phrases: phrases in their most viral articles
    - most_emotional_phrases: phrases used in their most emotional articles
    - pays_for_traffic_keywords: keywords this source buys ads for
    - similar_sources: sources with the most similar bias profile
    - most_different_sources: sources with the most different bias profile
    - trends_graph_url: URL to a chart of this source's coverage volume over time
    - bias_plot_urls: dict of 2D bias scatter plot image URLs (political_lib_auth, subjective_objective, informative_opinion, oversimplification_f…

Input parameters:

- `include_evidence` (boolean)
- `include_html` (boolean)
- `recent_articles` (integer)
- `source` (string, required)

Output parameters:

- `result` (string)

### `get_all_source_biases` (~1123 tokens)

Get a page of news-source bias scores.

    Returns sources active within the last 36 days with >100 articles analyzed, sorted by
    avg_social_shares descending. The response also includes total, offset, limit, has_more,
    and one shared bias_score_methodology block.

    Each entry contains:
    - source_name, slug_name, page_url
    - articles_analyzed: total articles analyzed for this source
    - avg_social_shares: average social shares per article (proxy for reach/influence)
    - emotionality_score (0-10): average emotional intensity of the writing
    - prescriptiveness_score (0-10): how much the source tells readers what to think/do
    - bias_values: dict mapping classifier key → integer source weighted display score
      (-50 to +50 for bipolar, 0 to +50 for unipolar). Keys use the same canonical
      names as get_bias_from_url where a source aggregate is available, but article scores use
      -10 to +10 or 0 to 10. Compare direction directly; normalize before comparing magnitude.

      Political / ideological (bipolar: neg=left pole, pos=right pole):
        'liberal conservative bias'      neg=liberal, pos=conservative
        'populist elitist bias'           neg=populist, pos=elitist
        'libertarian authoritarian bias' neg=libertarian, pos=authoritarian
        'dovish hawkish bias'            neg=dovish, pos=hawkish
        'establishment bias'             neg=anti-establishment, pos=pro-establishment

      Credibility / quality (bipolar):
        'overall credibility'            neg=low credibility, pos=high credibility
        'integrity bias'                 neg=low integrity, pos=high integrity
        'article intelligence'           neg=low intelligence, pos=high intelligence
        'delusion bias'                  neg=truth-seeking, pos=delusional
        'objective subjective bias'      neg=objective, pos=subjective
        'objective sensational bias'     neg=objective, pos=sensational
        'descriptive prescriptive bias'…

Input parameters:

- `limit` (integer)
- `offset` (integer)

Output parameters:

- `result` (string)

### `get_option_price` (~354 tokens)

Get Helium's proprietary ML model-predicted price for a specific option contract.

    Helium trains per-symbol regression models on historical options data. This tool
    looks up the most recent available options chain for the symbol (today or up to
    5 days back), finds the exact contract matching strike/expiration/type, and runs
    it through that model to produce a predicted fair-value price.

    Returns:
    - symbol: the ticker
    - strike: the strike price used
    - expiration: the expiration date used
    - option_type: 'call' or 'put'
    - predicted_price: Helium's model-predicted option price in dollars
    - prob_itm: probability of expiring in the money (0.0–1.0), or null if model unavailable
    - options_data_date: the date of the options chain snapshot the model was run on
      (so you know how fresh the underlying market data is)

    Throws an error if no options chain data is available for the symbol within the past 5 days,
    or if the exact contract (strike/expiration/type combination) does not exist in that chain.

    Args:
        symbol: Ticker symbol, e.g. 'AAPL', 'SPY'.
        strike: Strike price as a number, e.g. 150.0.
        expiration: Expiration date as 'YYYY-MM-DD', e.g. '2026-06-20'.
        option_type: Must be 'call' or 'put'.

Input parameters:

- `expiration` (string, required)
- `option_type` (string, required)
- `strike` (number, required)
- `symbol` (string, required)

Output parameters:

- `result` (string)

### `search_balanced_news` (~303 tokens)

Search Helium's balanced news stories — AI-synthesized articles that aggregate multiple sources.

    Unlike search_news (which returns individual RSS articles), this returns Helium's own
    synthesized stories: each one draws from multiple sources and includes an AI-written
    summary, takeaway, context, evidence breakdown, potential outcomes, and relevant tickers.

    Returns a list of stories, each with:
    - title, simple_title, date, category
    - page_url: full URL to the story on heliumtrades.com
    - image: story image URL (when available)
    - summary: Helium's synthesized overview
    - takeaway: key conclusion
    - context: background context
    - evidence: numbered evidence items
    - potential_outcomes: forward-looking outcomes with probabilities
    - relevant_tickers: related stock tickers
    - num_sources: number of source articles synthesized
    - rank: search relevance score

    Args:
        query: Search keywords (required).
        limit: Max results (1-50, default 10).
        category: Filter by category. One of: 'tech', 'politics', 'markets', 'business', 'science'.
        days_back: Only include stories from the last N days. 0 means no date filter.

Input parameters:

- `category` (string)
- `days_back` (integer)
- `limit` (integer)
- `query` (string, required)

Output parameters:

- `result` (string)

### `search_memes` (~174 tokens)

Search Helium's meme database by text (OCR + caption).

    Returns matching memes ranked by relevance. Each result includes:
    - id, caption, ocr (text extracted from the image)
    - image: full URL to the meme image
    - source: origin platform (e.g. 'reddit')
    - num_likes: likes/upvotes on the original post
    - date, is_video, rank

    Args:
        query: Search keywords (required). Matched against OCR text and captions.
        limit: Max results (1-100, default 20).
        days_back: Only include memes from the last N days. 0 means no date filter (default).

Input parameters:

- `days_back` (integer)
- `limit` (integer)
- `query` (string, required)

Output parameters:

- `result` (string)

### `get_top_trading_strategies` (~364 tokens)

Get the top-ranked short volatility and long volatility option trading strategies.

    Returns two ranked lists — short_volatility (sell premium / theta strategies) and
    long_volatility (buy premium / gamma strategies) — each containing up to `limit` tickers.

    Each entry has the same fields as get_ticker:
    - ticker, name, latest_price, page_url
    - bullish_case, bearish_case, potential_outcomes, takeaway, analysis_date (AI-generated, when available)
    - price_forecast_days, price_forecast_percent, price_forecast_lower/upper_bound_percent (when available)
    - iv_rank_percentile (0-100, IV rank over past year, when available)
    - short_vol_call, short_vol_put: best short volatility option packs (when available)
    - long_vol_call, long_vol_put: best long volatility option packs (when available)

    Sort options:
    - "helium_rank" (default): Helium AI edge score — best overall expected value
    - "odds_of_profit": Highest probability of profit
    - "historical_performance": Best annualized historical P&L across backtested trades
    - "reward_to_risk": Best reward-to-risk ratio
    - "smallest_max_loss": Strategies with the smallest maximum possible loss

    Args:
        sort: Ranking method (default "helium_rank"). One of: 'helium_rank', 'odds_of_profit',
              'historical_performance', 'reward_to_risk', 'smallest_max_loss'.
        limit: Number of results per strategy type (1-20, default 5).

Input parameters:

- `limit` (integer)
- `sort` (string)

Output parameters:

- `result` (string)

### `get_bias_from_url` (~611 tokens)

Get bias analysis for a specific article by its URL.

    Use this when you have a direct link to an article and want to know its political leaning,
    credibility, emotionality, and other bias dimensions — without needing to know the source name first.

    On success (found=true), returns:
    - article_id, classification_id, requested_url, matched_url, title, source, date, link, category
    - teaser: article excerpt
    - summary: one-sentence AI summary
    - context: AI-generated context for the article
    - extracted_data: structured quantitative/qualitative facts extracted from the article
    - raw_data: legacy serialized form of extracted_data
    - bias_description: narrative description of this specific article's bias
    - bias_values: dict of per-dimension article scores using canonical plain-text keys,
      e.g. {"liberal conservative bias": 4, "overall credibility": 7, "emotional bias": -5, ...}
      Article scores use -10 to +10 for bipolar dimensions and 0 to 10 for unipolar dimensions.
      Positive values lean toward the second pole of each dimension (conservative, authoritarian, etc.).
    - bias_analysis_status: 'evidence_ready', 'evidence_unverified', 'evidence_partial',
      'scored_legacy', or 'pending'
    - bias_dimensions when include_evidence=true: each dimension's score, scale, evidence status,
      claim, verbatim evidence, counterevidence, confidence, and rationale. Quotes include
      verification method and exact character offsets when raw-text matching succeeds.
      Dimension evidence_status is one of: verified, provided_unchecked, quote_mismatch,
      metadata_incomplete, metadata_only, or missing.
    - bias_analysis: contract/schema/model/prompt provenance, generation and review status,
      input scope/hash/size, analysis target, quote-verification method, explicit missingness
      and evidence coverage, and case-specific limitations
    - total_shares: total social shares
    - wayback_link: Wayback Machine archi…

Input parameters:

- `include_evidence` (boolean)
- `url` (string, required)

Output parameters:

- `result` (string)

### `get_historical_options_data` (~299 tokens)

Get the full historical options chain for a ticker on a specific date.

    Returns the complete options chain including all expirations and contracts,
    with bid, ask, mid prices, greeks, and Helium's proprietary model values
    (helium_theo, helium_pitm, should_i_buy, should_i_sell, terminal_buy_pl,
    terminal_sell_pl, etc.) baked into each contract.

    Returns:
    - symbol, date, data_source ('recent' or 's3')
    - num_expirations: number of distinct expiration dates
    - total_contracts: total number of option contracts
    - option_chain: dict keyed by expiration index, each value is a list of option contracts

    Each contract includes fields like: putCall, symbol, description, bid, ask, mark,
    mid_price, strikePrice, expirationDate, daysToExpiration, delta, gamma, theta, vega,
    impliedVolatility, openInterest, volume, helium_theo, helium_pitm, should_i_buy,
    should_i_sell, terminal_buy_pl, terminal_sell_pl, and more.

    Args:
        symbol: Ticker symbol, e.g. 'AAPL', 'TSLA', 'SPY'.
        date: Date in YYYY-MM-DD format, e.g. '2026-04-10'.

Input parameters:

- `date` (string, required)
- `symbol` (string, required)

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/connerlambden-helium-mcp/heliumtrades#diagnostics

## Score history

- 2026-08-04: 62
- 2026-08-03: 61
- 2026-08-02: 61
- 2026-08-01: 60
- 2026-07-31: 60
- 2026-07-30: 57
- 2026-07-29: 56
- 2026-07-28: 55
- 2026-07-27: 55
- 2026-07-26: 54

## Links

- Remote endpoint: https://heliumtrades.com/mcp
- Repository: https://github.com/connerlambden/helium-mcp
- Website: https://heliumtrades.com/mcp-page/
- Changelog RSS feed: https://verifymcp.io/servers/connerlambden-helium-mcp/heliumtrades/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/connerlambden-helium-mcp/heliumtrades/changelog.json
- HTML version of this page: https://verifymcp.io/servers/connerlambden-helium-mcp/heliumtrades
