Search and export a catalog of free financial data sources, with terms URLs and ingestion skills.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Return the catalog's notice, schemaVersion, generated time, entry count and the download URLs of the full catalog as JSON and CSV.
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http signal-lab https://signal-lab-jet.vercel.app/api/mcp
Tool list last changed Oct 30, 2026.
Return the catalog's notice, schemaVersion, generated time, entry count and the download URLs of the full catalog as JSON and CSV.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| slugs* | array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slugs"
],
"properties": {
"slugs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 5,
"minItems": 1
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| auth | string | What sign-up is needed, as the catalog records it, for example none or free API key |
| task | string | One task tag, for example macro or market-data |
| type | string | Kind of entry, for example Dataset or Tool |
| badge | string | Access type: Free, Open Source, Freemium or Unofficial |
| query | string | Words that must all appear in the name, slug, category, coverage, license, license note or tasks |
| 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 |
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.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
}
}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, 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.
| Argument | Type | Description |
|---|---|---|
| slug | string | Entry slug, for example fred or gdelt; leave out to list available skills |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Entry slug, for example fred or gdelt; leave out to list available skills"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| auth | string | What sign-up is needed, as the catalog records it, for example none or free API key |
| task | string | One task tag, for example macro or market-data |
| type | string | Kind of entry, for example Dataset or Tool |
| badge | string | Access type: Free, Open Source, Freemium or Unofficial |
| query | string | Words that must all appear in the name, slug, category, coverage, license, license note or tasks |
| slugs | array | Entry slugs; when given, filters are ignored |
| license | string | The catalog's license value, for example Provider terms or MIT |
| category | string | The catalog's category, for example Market Data or Macro |
List the values the catalog uses for type, badge, auth, category, license, task, verified and lastVerified, with how many entries have each. Call this first to pick exact filter values.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Find free and free-to-start financial data sources, tools and models in the Signal Lab catalog by text and by filters (category, type, access badge, sign-up needed, license, task, verified, verified_since; see list_filters for the values). Returns up to 25 summary rows in name order, each with 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.
| Argument | Type | Description |
|---|---|---|
| auth | string | What sign-up is needed, as the catalog records it, for example none or free API key |
| task | string | One task tag, for example macro or market-data |
| type | string | Kind of entry, for example Dataset or Tool |
| badge | string | Access type: Free, Open Source, Freemium or Unofficial |
| limit | integer | Default 10, at most 25 |
| query | string | Words that must all appear in the name, slug, category, coverage, license, license note or tasks |
| license | string | The catalog's license value, for example Provider terms or MIT |
| category |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.
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, 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.
| category |
| string |
| The catalog's category, for example Market Data or Macro |
| 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) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"auth": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "What sign-up is needed, as the catalog records it, for example none or free API key"
},
"task": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "One task tag, for example macro or market-data"
},
"type": {
"enum": [
"Dataset",
"Model",
"Recipe",
"Starter Kit",
"Tool"
],
"type": "string",
"description": "Kind of entry, for example Dataset or Tool"
},
"badge": {
"enum": [
"Free",
"Freemium",
"Open Source",
"Unofficial"
],
"type": "string",
"description": "Access type: Free, Open Source, Freemium or Unofficial"
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Words that must all appear in the name, slug, category, coverage, license, license note or tasks"
},
"fields": {
"type": "array",
"items": {
"enum": [
"name",
"slug",
"category",
"type",
"sitePageUrl",
"providerUrl",
"badge",
"auth",
"freeTierLimits",
"rateLimits",
"docsUrl",
"coverage",
"lastVerified",
"evidenceUrl",
"evidenceUrls",
"attribution",
"tasks",
"license",
"licenseUrl",
"licenseNote"
],
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "Catalog field names to include; default all"
},
"format": {
"enum": [
"json",
"csv"
],
"type": "string",
"description": "Default json"
},
"license": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The catalog's license value, for example Provider terms or MIT"
},
"category": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The catalog's category, for example Market Data or Macro"
},
"verified": {
"type": "boolean",
"description": "true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)"
},
"verified_since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)"
}
}
}| 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) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"auth": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "What sign-up is needed, as the catalog records it, for example none or free API key"
},
"task": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "One task tag, for example macro or market-data"
},
"type": {
"enum": [
"Dataset",
"Model",
"Recipe",
"Starter Kit",
"Tool"
],
"type": "string",
"description": "Kind of entry, for example Dataset or Tool"
},
"badge": {
"enum": [
"Free",
"Freemium",
"Open Source",
"Unofficial"
],
"type": "string",
"description": "Access type: Free, Open Source, Freemium or Unofficial"
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Words that must all appear in the name, slug, category, coverage, license, license note or tasks"
},
"slugs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 25,
"minItems": 1,
"description": "Entry slugs; when given, filters are ignored"
},
"license": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The catalog's license value, for example Provider terms or MIT"
},
"category": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The catalog's category, for example Market Data or Macro"
},
"verified": {
"type": "boolean",
"description": "true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)"
},
"verified_since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)"
}
}
}| string |
| The catalog's category, for example Market Data or Macro |
| 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) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"auth": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "What sign-up is needed, as the catalog records it, for example none or free API key"
},
"task": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "One task tag, for example macro or market-data"
},
"type": {
"enum": [
"Dataset",
"Model",
"Recipe",
"Starter Kit",
"Tool"
],
"type": "string",
"description": "Kind of entry, for example Dataset or Tool"
},
"badge": {
"enum": [
"Free",
"Freemium",
"Open Source",
"Unofficial"
],
"type": "string",
"description": "Access type: Free, Open Source, Freemium or Unofficial"
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Default 10, at most 25"
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Words that must all appear in the name, slug, category, coverage, license, license note or tasks"
},
"license": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The catalog's license value, for example Provider terms or MIT"
},
"category": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The catalog's category, for example Market Data or Macro"
},
"verified": {
"type": "boolean",
"description": "true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)"
},
"verified_since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)"
}
}
}