# Signal Lab: free data for trading and AI agents (remote · signal-lab-jet.vercel.app)

Search and export free market, macro, weather, news and OSINT data sources, with terms and skills.

- Trust score: 73/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `signal-lab-jet.vercel.app`: 73/100 (this document), [markdown](https://verifymcp.io/servers/qdthead-signal-lab/api-mcp.md), [page](https://verifymcp.io/servers/qdthead-signal-lab/api-mcp)

## Channel facts

- Endpoint: `https://signal-lab-jet.vercel.app/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.3.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-11-04.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - 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**: 60/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1981 tokens (~198/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**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 96% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Signal Lab: free data for trading and AI agents MCP server?

Signal Lab: free data for trading and AI agents is a hosted endpoint at https://signal-lab-jet.vercel.app/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http qdthead-signal-lab 'https://signal-lab-jet.vercel.app/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "qdthead-signal-lab": {
      "url": "https://signal-lab-jet.vercel.app/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "qdthead-signal-lab": {
      "type": "http",
      "url": "https://signal-lab-jet.vercel.app/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.qdthead-signal-lab]
url = "https://signal-lab-jet.vercel.app/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "qdthead-signal-lab": {
      "type": "remote",
      "url": "https://signal-lab-jet.vercel.app/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add qdthead-signal-lab --url 'https://signal-lab-jet.vercel.app/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  qdthead-signal-lab:
    url: "https://signal-lab-jet.vercel.app/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "qdthead-signal-lab": {
      "Transport": "http",
      "Url": "https://signal-lab-jet.vercel.app/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add qdthead-signal-lab -t streamable-http -u 'https://signal-lab-jet.vercel.app/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "qdthead-signal-lab": {
      "type": "http",
      "url": "https://signal-lab-jet.vercel.app/api/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-11-04 (score 73, 0)

- [security] Tool “search_catalog” rewrote its description, which is the text the model reads
- [cosmetic] “export_catalog” reworded the description of “query”
- [cosmetic] “feedback” reworded the description of “page”
- [cosmetic] “get_source_urls” reworded the description of “query”
- [cosmetic] “search_catalog” reworded the description of “query”

### 2026-11-03 (score 73, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: 1663 → 1949
- [functional] Server version: 1.4.0 → 1.5.0
- [functional] New tool “feedback”

### 2026-11-02 (score 72, 0)

- [security] Tool “search_catalog” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 1365 → 1663
- [functional] Server version: 1.3.0 → 1.4.0
- [functional] New tool “suggest_source”
- [cosmetic] “export_catalog” reworded the description of “domain”
- [cosmetic] “get_source_urls” reworded the description of “domain”
- [cosmetic] “search_catalog” reworded the description of “domain”

### 2026-11-01 (score 72, +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-10-31 (score 71, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-30 (score 71)

First indexed and scored.

## MCP tools (10)

### `search_catalog` (~424 tokens)

Search the catalog

Find free and free-to-start data sources (financial markets, global macro, energy, agriculture and food, money flows, transport and shipping, weather, news & RSS, OSINT, cyber threat), tools and models in the Signal Lab catalog by text and by filters (domain, category, type, access badge, sign-up needed, license, task, verified, verified_since; see list_filters for the values). With a query, returns up to 25 summary rows in relevance order (name, slug and task concept matches first), then name A to Z; without a query, name A to Z. Each row has lastVerified and sitePageUrl. Use get_entry for every field of one entry, export_catalog for the whole list, get_source_urls for provider and terms links.

Input parameters:

- `auth` (string): What sign-up is needed, as the catalog records it, for example none or free API key
- `badge` (string): Access type: Free, Open Source, Freemium or Unofficial
- `category` (string): The catalog's category, for example Market Data or Macro
- `domain` (string): Data domain: Financial, Global Macro, Energy, Agriculture & Food, Money Flows, Transport & Shipping, Weather, News & RSS, OSINT or Cyber Threat
- `license` (string): The catalog's license value, for example Provider terms or MIT
- `limit` (integer): Default 10, at most 25
- `query` (string): Words or known alias concepts that must all match catalog text. Aliases match whole terms; other words use substring matching
- `task` (string): One task tag, for example macro or market-data
- `type` (string): Kind of entry, for example Dataset or Tool
- `verified` (boolean): true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)
- `verified_since` (string): Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)

### `get_entry` (~55 tokens)

Get one entry

Return one catalog entry by slug, with every field the catalog has for it (limits, coverage, auth, license, licenseNote, source URLs, lastVerified). Get slugs from search_catalog.

Input parameters:

- `slug` (string, required)

### `compare_entries` (~50 tokens)

Compare entries

Place the catalog's fields for up to 5 entries side by side. Values are the catalog's own; a field the catalog does not have shows Not in catalog.

Input parameters:

- `slugs` (array, required)

### `list_filters` (~50 tokens)

List filter values

List the values the catalog uses for type, badge, auth, category, domain, license, task, verified and lastVerified, with how many entries have each. Call this first to pick exact filter values.

### `catalog_info` (~35 tokens)

Catalog information

Return the catalog's notice, schemaVersion, generated time, entry count and the download URLs of the full catalog as JSON and CSV.

### `export_catalog` (~340 tokens)

Export the data list

Export the Signal Lab catalog as JSON or CSV: every entry, or only those matching the same filters as search_catalog (no result cap). Optional fields picks columns by catalog field name. CSV has a header row, joins lists with "; " and repeats the catalog notice in the last column. Also returns the static download URLs.

Input parameters:

- `auth` (string): What sign-up is needed, as the catalog records it, for example none or free API key
- `badge` (string): Access type: Free, Open Source, Freemium or Unofficial
- `category` (string): The catalog's category, for example Market Data or Macro
- `domain` (string): Data domain: Financial, Global Macro, Energy, Agriculture & Food, Money Flows, Transport & Shipping, Weather, News & RSS, OSINT or Cyber Threat
- `fields` (array): Catalog field names to include; default all
- `format` (string): Default json
- `license` (string): The catalog's license value, for example Provider terms or MIT
- `query` (string): Words or known alias concepts that must all match catalog text. Aliases match whole terms; other words use substring matching
- `task` (string): One task tag, for example macro or market-data
- `type` (string): Kind of entry, for example Dataset or Tool
- `verified` (boolean): true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)
- `verified_since` (string): Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)

### `get_source_urls` (~343 tokens)

Get original source and terms URLs

Return where each entry's data comes from: the provider's site, docs and evidence pages, the license or terms URL with the license note, and the lastVerified date, plus the Signal Lab page. Pass up to 25 slugs, or the same filters as search_catalog (all entries if none). A URL the catalog does not record is left out.

Input parameters:

- `auth` (string): What sign-up is needed, as the catalog records it, for example none or free API key
- `badge` (string): Access type: Free, Open Source, Freemium or Unofficial
- `category` (string): The catalog's category, for example Market Data or Macro
- `domain` (string): Data domain: Financial, Global Macro, Energy, Agriculture & Food, Money Flows, Transport & Shipping, Weather, News & RSS, OSINT or Cyber Threat
- `license` (string): The catalog's license value, for example Provider terms or MIT
- `query` (string): Words or known alias concepts that must all match catalog text. Aliases match whole terms; other words use substring matching
- `slugs` (array): Entry slugs; when given, filters are ignored
- `task` (string): One task tag, for example macro or market-data
- `type` (string): Kind of entry, for example Dataset or Tool
- `verified` (boolean): true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)
- `verified_since` (string): Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)

### `get_ingestion_skill` (~129 tokens)

Get an ingestion skill

Return the agent-ready ingestion skill for one data source as markdown: how to get access, the exact request or download, the response format, a Python snippet that loads it into pandas and writes Parquet (or keeps it in memory where the provider's terms limit storage or leave it unclear), limits, known quirks, terms and attribution, and the provider pages it was written from, with quotes. Call it without a slug to list the sources that have a skill so far.

Input parameters:

- `slug` (string): Entry slug, for example fred or gdelt; leave out to list available skills

### `suggest_source` (~231 tokens)

Suggest a data source

Send us a free or open data source we do not list yet. It goes into a private queue and is checked like every listing (free access, terms, policy); nothing is published automatically and the URL is not visited by this server. Give the provider's own https page (no shorteners, IP addresses, paste or leak sites, malware hosts or dark-web links), its name, a domain from the list, and why it is useful in at most 280 characters. Optional handle (letters, digits, _ or -, at most 40) may be credited as plain text if the source is listed. Do not include personal information. Limit: 5 an hour per caller.

Input parameters:

- `domain` (string, required): Which kind of data it is
- `handle` (string): Optional credit handle: letters, digits, _ or -
- `name` (string, required): Name of the source or provider
- `reason` (string, required): Why it is useful, plain text, at most 280 characters
- `url` (string, required): The provider's own https page for the data, for example its API docs

### `feedback` (~240 tokens)

Send feedback

Tell us what to fix or add: a missing source (new_source), a wrong fact (wrong_fact), a broken link (broken_link), a feature idea (feature_idea) or a site upgrade (site_upgrade). It goes into a private review queue; nothing is published automatically, and reviewed ideas are answered with a status and reason on https://signal-lab-jet.vercel.app/agent-suggestions. Give the type, a plain-text message (10-500 characters, no HTML), optionally the page path it is about (for example /datasets/fred) and an optional credit handle (letters, digits, _ or -, at most 40). Do not include personal information. Limit: 5 an hour per caller.

Input parameters:

- `handle` (string): Optional credit handle (your agent or name): letters, digits, _ or -
- `message` (string, required): What to fix or add, plain text, 10-500 characters
- `page` (string): Optional site path only, starting with /, no query string or fragment; for example /datasets/fred
- `type` (string, required): What kind of feedback it is

## Diagnostics

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

## Score history

- 2026-11-04: 73
- 2026-11-03: 73
- 2026-11-02: 72
- 2026-11-01: 72
- 2026-10-31: 71
- 2026-10-30: 71

## Common questions

### What is the Signal Lab: free data for trading and AI agents MCP server?

Signal Lab: free data for trading and AI agents is an MCP server listed in the public MCP registry as io.github.QDThead/signal-lab. Search and export free market, macro, weather, news and OSINT data sources, with terms and skills. This page covers its hosted endpoint (https://signal-lab-jet.vercel.app/api/mcp).

### Is the Signal Lab: free data for trading and AI agents MCP server safe to use?

Signal Lab: free data for trading and AI agents scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Signal Lab: free data for trading and AI agents MCP server expose?

Signal Lab: free data for trading and AI agents exposes 10 tools: search_catalog, get_entry, compare_entries, list_filters, catalog_info, and 5 more. Their descriptions and schemas cost roughly 1,897 tokens of context every time the server is loaded.

### Does the Signal Lab: free data for trading and AI agents MCP server require authentication?

No. We connected to Signal Lab: free data for trading and AI agents without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Signal Lab: free data for trading and AI agents MCP server still maintained?

Signal Lab: free data for trading and AI agents is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://signal-lab-jet.vercel.app/api/mcp
- Website: https://signal-lab-jet.vercel.app/
- Changelog RSS feed: https://verifymcp.io/servers/qdthead-signal-lab/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/qdthead-signal-lab/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/qdthead-signal-lab/api-mcp
