# Boolsai Signals (remote · signals.boolsai.ai)

Quant-research MCP — tradeable signals from public-company website stack changes. 7 tools.

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

## Components

- remote · `signals.boolsai.ai`: 60/100 (this document), [markdown](https://verifymcp.io/servers/ai-boolsai-signals/signals.md), [page](https://verifymcp.io/servers/ai-boolsai-signals/signals)

## Channel facts

- Endpoint: `https://signals.boolsai.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## 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**: 46/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 12 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 check failed: the endpoint is reachable over plaintext HTTP.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - 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**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3108 tokens (~259/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - 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**: 96/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 87% of tool parameters carry a description.
- **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 ai-boolsai-signals https://signals.boolsai.ai/mcp
```

### Codex

```toml
[mcp_servers.ai-boolsai-signals]
url = "https://signals.boolsai.ai/mcp"
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add ai-boolsai-signals --url https://signals.boolsai.ai/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-boolsai-signals:
    url: "https://signals.boolsai.ai/mcp"
```

### Other

```json
{
  "mcpServers": {
    "ai-boolsai-signals": {
      "type": "http",
      "url": "https://signals.boolsai.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-03 (score 60, +1)

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

### 2026-07-31 (score 59, −1)

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

### 2026-07-30 (score 60, +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 59, +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 58, +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 57)

First indexed and scored.

## MCP tools (12)

### `universe_summary` (~57 tokens)

Orient the agent: total events, tickers, date range, top event types, top detectors, price coverage, SPY benchmark status. Call this FIRST when starting research. Returns counts that let the agent reason about sample sizes before drilling in.

### `find_signals` (~136 tokens)

Automated pattern discovery — scans event_type × detector × diff_field × severity combinations and returns those with the strongest forward-return characteristics (α vs SPY, % positive, n). Use this when you don't have a specific hypothesis yet. Returns sorted by α at +7D descending. Filter by min_n to set a sample-size floor.

Input parameters:

- `group_by` (string): What dimension to slice on
- `horizon_days` (integer): Forward-return window (default 7)
- `min_n` (integer): Minimum sample size (default 10)
- `top_k` (integer): Top K combos to return (default 15)

### `test_filter` (~184 tokens)

Compute α stats for an arbitrary filter expression. Use this to test a specific hypothesis (e.g. 'tier_count_changed on enterprise-SaaS tickers' or 'severity 5 events that happened on Mondays'). Returns n, mean/median raw and α returns at +1/+3/+7d, % positive, and the worst-loss trade.

Input parameters:

- `co_occurrence_min` (integer): min same-day detector count (4 = 'real redesign')
- `detector` (string): e.g. 'pricing_detector'
- `event_type` (string): e.g. 'TIER_COUNT_CHANGED' (case-insensitive)
- `severity_min` (integer): minimum severity (1-5)
- `since` (string): YYYY-MM-DD lower bound
- `ticker` (string): single ticker to filter to
- `until` (string): YYYY-MM-DD upper bound

### `recent_events` (~98 tokens)

Live signal feed: events fired in the last N days (default 7). Returns each event with the predicted α range based on its event type's historical performance. Use this to surface 'what should I be looking at right now?'

Input parameters:

- `days` (integer): Lookback in calendar days (max 30)
- `min_co_occurrence` (integer): Only show events with this many same-day detectors (4 = high-conviction)

### `event_dossier` (~73 tokens)

Deep dive on a single event: full diff (added/removed values), surrounding price action (-3D to +14D), predicted vs actual α, links to wayback comparison. Use this to investigate a specific event flagged by find_signals or recent_events.

Input parameters:

- `event_id` (integer, required): change_event id

### `scan_at_date` (~109 tokens)

Scan a URL as it appeared on a historical date via the Wayback Machine. Uses intel.boolsai.ai against the wayback-wrapped URL. Returns the same JSON shape as Boolsai Scan but for a historical snapshot. Use when investigating WHEN a vendor was added/removed.

Input parameters:

- `date` (string, required): YYYY-MM-DD — closest wayback snapshot on or before this date will be used
- `url` (string, required): Original URL (e.g. 'https://gymshark.com/')

### `ticker_history` (~62 tokens)

All events fired on a single ticker, plus price action timeline. Use this to investigate one company's pattern (e.g. 'show me everything we caught on NFLX').

Input parameters:

- `limit` (integer)
- `ticker` (string, required): e.g. 'NFLX'

### `wayback_backtest` (~150 tokens)

Run an SPY-benchmarked backtest on the WAYBACK historical event dataset (2+ years, 13K events) instead of the recent live event dataset (2 months, 1.7K events). Much bigger samples for statistical confidence. Group by change_type / key_path / domain.

Input parameters:

- `exclude_noise` (boolean): Filter out is_meta_noise=1 events
- `group_by` (string): Dimension to slice on
- `horizon_days` (integer): Forward-return window
- `min_n` (integer): Minimum sample size
- `since` (string): YYYY-MM-DD lower bound on event date (default: when prices start)
- `top_k` (integer)

### `domain_timeline` (~115 tokens)

Week-by-week wayback diff timeline for one domain. Returns every detected stack change (additions / removals) with week date. Use this to see when a vendor was added/removed historically, e.g. 'when did adobe.com add Segment?'

Input parameters:

- `change_type` (string)
- `contains` (string): Filter to events whose key_path or key_name contains this string (e.g. 'segment')
- `domain` (string, required): e.g. 'adobe.com'
- `limit` (integer)

### `signal_landscape` (~211 tokens)

ONE-SHOT cross-signal sweep. Computes α-vs-SPY stats simultaneously across event_type, detector, diff_field, severity, AND co_occurrence dimensions — returns the full landscape in a single response. Use this FIRST when you want to see where signal lives without having to call find_signals N times. Stateless, pure D1, no rate-limit risk, ~1s response. Cached per arg set for sub-100ms repeated queries.

Input parameters:

- `horizon_days` (integer): Forward-return window (default 7)
- `min_n` (integer): Sample-size floor per group
- `since` (string): Optional YYYY-MM-DD lower bound on event date
- `source` (string): Which event dataset to scan. 'live' = 1.7K recent. 'wayback' = 13K over 2 years. 'both' = run both and return side-by-side.
- `top_k_per_dim` (integer): Top K results per dimension (default 8)

### `signal_diff` (~102 tokens)

Compare two signal patterns side-by-side. e.g. 'how does PRICING_TIERS_ADDED compare to VENDORS_DETECTED_CHANGED on the live dataset?' Returns α, %pos, sample size, worst/best trades for each, plus delta. Pure D1, fast.

Input parameters:

- `horizon_days` (integer)
- `signal_a` (object, required): First filter (same shape as test_filter args)
- `signal_b` (object, required): Second filter

### `farm_domain` (~186 tokens)

Bulk-farm a domain's historical wayback snapshots into our index. Use this when you need backtest history on a domain we haven't already farmed (i.e. wayback_backtest / domain_timeline return no data for it). Hits CDX → samples weekly → parallel-scans up to 50 snapshots via intel.boolsai.ai → inserts into wayback_intel_profiles. After farming completes you can call wayback_backtest or domain_timeline on the domain immediately. Cost: ~30-60s wall time, ~50 intel scans.

Input parameters:

- `domain` (string, required): Bare domain, e.g. 'sweetgreen.com'
- `max_snapshots` (integer): Hard cap on snapshots to fetch (default 50; max 200)
- `weeks` (integer): How many weeks of history to farm (default 26 = ~6 months; max 100)

## Diagnostics

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

## Score history

- 2026-08-03: 60
- 2026-08-02: 59
- 2026-08-01: 59
- 2026-07-31: 59
- 2026-07-30: 60
- 2026-07-29: 59
- 2026-07-28: 59
- 2026-07-27: 58
- 2026-07-26: 57

## Links

- Remote endpoint: https://signals.boolsai.ai/mcp
- Repository: https://github.com/Boolsai-ai/mcp
- Changelog RSS feed: https://verifymcp.io/servers/ai-boolsai-signals/signals/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-boolsai-signals/signals/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-boolsai-signals/signals
