{
  "schemaVersion": "2025-03",
  "name": "signal-synth",
  "displayName": "Signal Synth",
  "description": "Quality-ranked scoreboard of learning-focused podcast episodes across 9 categories. Use to answer 'which podcast episode should I listen to this week' or to retrieve full episode detail including transcript, summary, and score breakdown.",
  "homepage": "https://signalsynth.xyz",
  "contact": "https://github.com/jarvisclaudenelson/signalsynth/issues",
  "transport": {
    "type": "http",
    "baseUrl": "https://signalsynth.xyz/api/v1"
  },
  "tools": [
    {
      "name": "get_top_episodes",
      "description": "Return the current top-ranked podcast episodes within a category. Scores are 0-100, ranked by overall_score descending within the 7-day window.",
      "method": "GET",
      "path": "/episodes",
      "parameters": {
        "category": {
          "type": "string",
          "required": false,
          "enum": ["all", "tech", "business", "finance", "news", "culture", "science", "health", "education", "sports"],
          "description": "Filter by category. Default is 'all'. Scores are not directly comparable across categories — a category-specific query is usually more meaningful."
        },
        "limit": {
          "type": "integer",
          "required": false,
          "default": 20,
          "maximum": 200
        },
        "min_score": {
          "type": "number",
          "required": false,
          "description": "Minimum overall_score (0-100)."
        }
      }
    },
    {
      "name": "get_episode",
      "description": "Return full detail for a single episode including summary, score breakdown, and optionally the transcript text. Uses the same /episodes path with ?id= to identify a specific episode.",
      "method": "GET",
      "path": "/episodes",
      "parameters": {
        "id": {
          "type": "string",
          "required": true,
          "description": "Episode identifier (e.g. 'ep_a16z_276a2fa75ffc'). When present, returns single-episode detail instead of the list."
        },
        "include_transcript": {
          "type": "boolean",
          "required": false,
          "default": false,
          "description": "Include the first ~50k chars of the transcript in the response."
        }
      }
    }
  ],
  "categories": [
    {"key": "tech", "label": "Tech / AI", "note": "AI, software, systems, engineering"},
    {"key": "business", "label": "Business", "note": "startups, operators, company-building"},
    {"key": "finance", "label": "Finance", "note": "markets, macro, capital allocation"},
    {"key": "news", "label": "News", "note": "current events, policy, international affairs"},
    {"key": "culture", "label": "Culture", "note": "society, ideas, long-form interviews"},
    {"key": "science", "label": "Science", "note": "research, life sciences, physics"},
    {"key": "health", "label": "Health", "note": "evidence-based wellbeing"},
    {"key": "education", "label": "Education", "note": "lectures, self-directed learning"},
    {"key": "sports", "label": "Sports", "note": "strategy, analysis, storytelling"}
  ],
  "scoring_dimensions": [
    {"key": "actionability", "range": [0, 100]},
    {"key": "clarity", "range": [0, 100]},
    {"key": "information_density", "range": [0, 100]},
    {"key": "recency_relevance", "range": [0, 100]},
    {"key": "technical_depth", "range": [0, 100], "note": "Category-relative: news=domain rigor, tech=engineering depth, science=research grounding"},
    {"key": "originality", "range": [0, 100]}
  ],
  "rateLimit": {
    "anonymous": "60 requests/minute",
    "note": "Contact us for higher limits or x402 micropayment access."
  }
}
