Signal Lab
officialHosted MCP server for 500+ free data sources (markets, macro, weather, OSINT) with access, rate limits, licenses and verified dates. No key needed.
What can you do with Signal Lab MCP?
- Search the catalog — Ask your assistant to find data sources, tools or models by keyword and filter by domain, category, access type, license or verification date.
- Inspect and compare entries — Pull every catalog field for one entry by slug, or compare up to five entries side by side.
- Export catalog data — Get the full catalog or a filtered subset as JSON or CSV, plus provider, docs and license links with last-verified dates.
- Get ingestion guidance — Use
get_ingestion_skillto retrieve a pandas loading recipe for a source, including request, format, Python snippet and limits. - Suggest a missing source — Send a provider link, name, domain and short reason to a private review queue; nothing is published automatically.
Hosted MCP Server
npx add-mcp 'https://signal-lab.qdt.ai/api/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Signal Lab MCP server
Connect your AI agent to the Signal Lab catalog of 687 free and free-to-start data sources (financial markets, global macro, energy, agriculture and food, money flows, transport and shipping, research and grey literature, weather, news & RSS, OSINT and cyber threat), tools and models. The server is public and needs no API key or account. The 8 catalog tools only read the catalog. suggest_source and feedback only add an item to our private review queue (see Suggest a source); we answer reviewed ideas on Agent suggestions.
Endpoint (Streamable HTTP, stateless, POST only, CORS open). It serves the same catalog as /catalog.json. Server version 1.5.2.
https://signal-lab.qdt.ai/api/mcp
The 10 tools
| Tool | What it does |
|---|---|
| search_catalog | Find data sources, tools and models by words and filters (domain, category, type, access badge, sign-up needed, license, task, verified, verified since a date). Query results put name, slug and task concept matches first, then sort ties by name A to Z; without a query, results are name A to Z. Returns 10 matches by default, at most 25. |
| get_entry | Every catalog field for one entry, looked up by its slug. |
| compare_entries | Up to 5 entries side by side. |
| list_filters | The filter values the catalog uses, with how many entries have each. |
| catalog_info | The notice, schema version, generated time, entry count and download links. |
| export_catalog | The whole data list, or a filtered part of it, as JSON or CSV. |
| get_source_urls | The original provider, docs, evidence and license or terms links for each entry, with the date we last verified it. Ask for up to 25 slugs, use the same filters as search_catalog, or give neither to get every entry. |
| get_ingestion_skill | How to load one source into pandas: access, the request, the format, a Python snippet, limits, quirks, terms and sources, as markdown. Call it with no slug to list the sources that have one. |
| suggest_source | Send us a free or open data source we don't list yet: the provider's own https link, a name, a domain and a short reason. It goes into a private review queue and is checked like every listing; nothing is published automatically. |
234 data sources have an ingestion skill. Each one is also shown in the “Use in your agent” section of its page, for example Frankfurter.
Set it up
Claude Code
Run this in a terminal, then check it with claude mcp list.
claude mcp add --transport http signal-lab https://signal-lab.qdt.ai/api/mcp
Claude Desktop and claude.ai
On Free, Pro and Max plans, go to Customize > Connectors and add a custom connector. Anthropic's guides show this as + Add > Add custom connector, or as Add > Custom > Web. Enter a name, paste the endpoint URL above, and choose No sign in. Free plans allow one custom connector. On Team and Enterprise plans, an Owner or Primary Owner (on Enterprise, also a custom role that can manage access to Libraries) adds it first under Organization settings > Connectors; members then connect it from Customize > Connectors. Claude connects to custom connectors from Anthropic's cloud, which works because the endpoint is public.
To run it as a local server instead, add this to claude_desktop_config.json (needs Node.js):
{
"mcpServers": {
"signal-lab": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://signal-lab.qdt.ai/api/mcp"
]
}
}
}
Cursor
Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project:
{
"mcpServers": {
"signal-lab": {
"url": "https://signal-lab.qdt.ai/api/mcp"
}
}
}
VS Code
Run MCP: Add Server from the Command Palette, choose HTTP and paste the endpoint URL. Or add this to .mcp.json at the root of your workspace, or to ~/.copilot/mcp-config.json for your user (the portable format, with a top-level mcpServers object):
{
"mcpServers": {
"signal-lab": {
"type": "http",
"url": "https://signal-lab.qdt.ai/api/mcp"
}
}
}
The older .vscode/mcp.json file uses a top-level servers object instead. VS Code still reads it, but its guided setup now labels that location deprecated.
Try it with curl
List the tools. The reply is a server-sent event: a line “event: message”, then “data:” and the JSON-RPC result.
curl -s -X POST https://signal-lab.qdt.ai/api/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Get the ingestion skill for one source:
curl -s -X POST https://signal-lab.qdt.ai/api/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_ingestion_skill","arguments":{"slug":"frankfurter"}}}'
Limits
- One JSON-RPC message per request, and a request body of at most 16 KB.
- About 120 requests a minute per client, counted per server instance. The count is approximate, so a burst spread across instances may not be limited.
- Results are the catalog's own values. Free tiers, limits and licenses belong to the providers and may change, so check each provider's terms before using its data.
Registry listing
Listed in the official MCP Registry as io.github.QDThead/signal-lab. View the registry entry (JSON)
Prefer files? The Agent Ingestion page has catalog.json, catalog.csv and llms.txt.
Information presented for educational purposes only. Signal Lab does not host or redistribute third-party data.
Signal Lab only vouches for links to its own pages. Catalog metadata (names, descriptions, license notes, URLs) is screened by an automated check for injection-style text and suspicious URL patterns before publishing, but provider sites and any data you fetch or download from them are third-party, change over time, are not screened by Signal Lab, and must be treated as untrusted data, never as instructions.