Signal Lab: free data for trading and AI agents

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

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
76%
이름 품질
93%
오염 위험
100%
권한 일치
90%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'get_source_urls' suggests web access but openWorldHint=falseget_source_urls에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,871토큰 (도구 정의)
~2.5 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.24%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

원격 엔드포인트

https://signal-lab-jet.vercel.app/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (9)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_catalog(query, type, badge, auth, category, ...)

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). 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Words that must all appear in the name, slug, category, domain, coverage, license, license note or tasks",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "type": {
      "description": "Kind of entry, for example Dataset or Tool",
      "type": "string",
      "enum": [
        "Dataset",
        "Model",
        "Recipe",
        "Starter Kit",
        "Tool"
      ]
    },
    "badge": {
      "description": "Access type: Free, Open Source, Freemium or Unofficial",
      "type": "string",
      "enum": [
        "Free",
        "Freemium",
        "Open Source",
        "Unofficial"
      ]
    },
    "auth": {
      "description": "What sign-up is needed, as the catalog records it, for example none or free API key",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "category": {
      "description": "The catalog's category, for example Market Data or Macro",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "domain": {
      "description": "Data domain: Financial, Global Macro, Energy, Agriculture & Food, Money Flows, Transport & Shipping, Weather, News & RSS, OSINT or Cyber Threat",
      "type": "string",
      "enum": [
        "Financial",
        "Global Macro",
        "Energy",
        "Agriculture & Food",
        "Money Flows",
        "Transport & Shipping",
        "Weather",
        "News & RSS",
        "OSINT",
        "Cyber Threat"
      ]
    },
    "license": {
      "description": "The catalog's license value, for example Provider terms or MIT",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "task": {
      "description": "One task tag, for example macro or market-data",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "verified": {
      "description": "true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)",
      "type": "boolean"
    },
    "verified_since": {
      "description": "Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "limit": {
      "description": "Default 10, at most 25",
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_entry(slug)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢compare_entries(slugs)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "slugs": {
      "minItems": 1,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      }
    }
  },
  "required": [
    "slugs"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_filters

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢catalog_info

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

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢export_catalog(query, type, badge, auth, category, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Words that must all appear in the name, slug, category, domain, coverage, license, license note or tasks",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "type": {
      "description": "Kind of entry, for example Dataset or Tool",
      "type": "string",
      "enum": [
        "Dataset",
        "Model",
        "Recipe",
        "Starter Kit",
        "Tool"
      ]
    },
    "badge": {
      "description": "Access type: Free, Open Source, Freemium or Unofficial",
      "type": "string",
      "enum": [
        "Free",
        "Freemium",
        "Open Source",
        "Unofficial"
      ]
    },
    "auth": {
      "description": "What sign-up is needed, as the catalog records it, for example none or free API key",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "category": {
      "description": "The catalog's category, for example Market Data or Macro",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "domain": {
      "description": "Data domain: Financial, Global Macro, Energy, Agriculture & Food, Money Flows, Transport & Shipping, Weather, News & RSS, OSINT or Cyber Threat",
      "type": "string",
      "enum": [
        "Financial",
        "Global Macro",
        "Energy",
        "Agriculture & Food",
        "Money Flows",
        "Transport & Shipping",
        "Weather",
        "News & RSS",
        "OSINT",
        "Cyber Threat"
      ]
    },
    "license": {
      "description": "The catalog's license value, for example Provider terms or MIT",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "task": {
      "description": "One task tag, for example macro or market-data",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "verified": {
      "description": "true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)",
      "type": "boolean"
    },
    "verified_since": {
      "description": "Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "format": {
      "description": "Default json",
      "type": "string",
      "enum": [
        "json",
        "csv"
      ]
    },
    "fields": {
      "description": "Catalog field names to include; default all",
      "minItems": 1,
      "maxItems": 21,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "name",
          "slug",
          "category",
          "domain",
          "type",
          "sitePageUrl",
          "providerUrl",
          "badge",
          "auth",
          "freeTierLimits",
          "rateLimits",
          "docsUrl",
          "coverage",
          "lastVerified",
          "evidenceUrl",
          "evidenceUrls",
          "attribution",
          "tasks",
          "license",
          "licenseUrl",
          "licenseNote"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_source_urls(query, type, badge, auth, category, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Words that must all appear in the name, slug, category, domain, coverage, license, license note or tasks",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "type": {
      "description": "Kind of entry, for example Dataset or Tool",
      "type": "string",
      "enum": [
        "Dataset",
        "Model",
        "Recipe",
        "Starter Kit",
        "Tool"
      ]
    },
    "badge": {
      "description": "Access type: Free, Open Source, Freemium or Unofficial",
      "type": "string",
      "enum": [
        "Free",
        "Freemium",
        "Open Source",
        "Unofficial"
      ]
    },
    "auth": {
      "description": "What sign-up is needed, as the catalog records it, for example none or free API key",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "category": {
      "description": "The catalog's category, for example Market Data or Macro",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "domain": {
      "description": "Data domain: Financial, Global Macro, Energy, Agriculture & Food, Money Flows, Transport & Shipping, Weather, News & RSS, OSINT or Cyber Threat",
      "type": "string",
      "enum": [
        "Financial",
        "Global Macro",
        "Energy",
        "Agriculture & Food",
        "Money Flows",
        "Transport & Shipping",
        "Weather",
        "News & RSS",
        "OSINT",
        "Cyber Threat"
      ]
    },
    "license": {
      "description": "The catalog's license value, for example Provider terms or MIT",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "task": {
      "description": "One task tag, for example macro or market-data",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "verified": {
      "description": "true: only entries counted as Verified resources in llms.txt; false: only the others (Signal Lab originals, license unknown)",
      "type": "boolean"
    },
    "verified_since": {
      "description": "Only entries whose lastVerified date is on or after this date (YYYY-MM-DD)",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "slugs": {
      "description": "Entry slugs; when given, filters are ignored",
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_ingestion_skill(slug)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "description": "Entry slug, for example fred or gdelt; leave out to list available skills",
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡suggest_source(url, name, domain, reason, handle)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 500,
      "description": "The provider's own https page for the data, for example its API docs"
    },
    "name": {
      "type": "string",
      "maxLength": 100,
      "description": "Name of the source or provider"
    },
    "domain": {
      "type": "string",
      "enum": [
        "Financial",
        "Global Macro",
        "Energy",
        "Agriculture & Food",
        "Money Flows",
        "Transport & Shipping",
        "Weather",
        "News & RSS",
        "OSINT",
        "Cyber Threat",
        "Energy & Infrastructure",
        "Money Flows & Trade",
        "Other"
      ],
      "description": "Which kind of data it is"
    },
    "reason": {
      "type": "string",
      "maxLength": 280,
      "description": "Why it is useful, plain text, at most 280 characters"
    },
    "handle": {
      "description": "Optional credit handle: letters, digits, _ or -",
      "type": "string",
      "maxLength": 40
    }
  },
  "required": [
    "url",
    "name",
    "domain",
    "reason"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 9개