{
  "id": "research-agent",
  "title": "Personal research agent",
  "category": "agents",
  "job": "Ask a question, get a sourced brief with links, in your terminal.",
  "difficulty": "Intermediate",
  "tools": [
    {
      "id": "claude-code",
      "name": "Claude Code",
      "url": "https://claude.com/product/claude-code",
      "kind": "coding-agent",
      "summary": "Anthropic's agentic coding tool for the terminal and IDEs. Included in paid Claude plans.",
      "open_source": false,
      "pricing": {
        "plans": [
          {
            "name": "Pro",
            "usd_month": 20,
            "note": "$17/mo billed yearly; 5-hour and weekly usage limits"
          },
          {
            "name": "Max 5x",
            "usd_month": 100,
            "note": "5x Pro usage per session"
          },
          {
            "name": "Max 20x",
            "usd_month": 200,
            "note": "20x Pro usage per session"
          }
        ],
        "source": "https://claude.com/pricing?mode=code",
        "status": "verified",
        "notes": "Free Claude plan does not include Claude Code."
      },
      "last_checked": "2026-10-21"
    },
    {
      "id": "exa",
      "name": "Exa",
      "url": "https://exa.ai",
      "kind": "web-data",
      "summary": "Search API built for AI, with a hosted MCP server that works without a key (rate limited).",
      "open_source": false,
      "pricing": {
        "plans": [
          {
            "name": "Pay as you go",
            "usd_month": 0,
            "note": "Search from $4 per 1,000 requests (Instant); $7 per 1,000 (Fast/Auto)"
          }
        ],
        "source": "https://exa.ai/pricing",
        "status": "verified",
        "notes": null
      },
      "last_checked": "2026-10-21"
    },
    {
      "id": "firecrawl",
      "name": "Firecrawl",
      "url": "https://www.firecrawl.dev",
      "kind": "web-data",
      "summary": "Turns any URL into clean markdown or structured data; has an MCP server.",
      "open_source": false,
      "pricing": {
        "plans": [
          {
            "name": "Free",
            "usd_month": 0,
            "note": "1,000 credits/month"
          },
          {
            "name": "Hobby",
            "usd_month": 19,
            "note": "5,000 credits ($16/mo yearly)"
          },
          {
            "name": "Standard",
            "usd_month": 99,
            "note": "100,000 credits"
          }
        ],
        "source": "https://www.firecrawl.dev/pricing",
        "status": "verified",
        "notes": null
      },
      "last_checked": "2026-10-21"
    }
  ],
  "model": "Claude Sonnet 5.5",
  "mcp_servers": [
    "Exa MCP (https://mcp.exa.ai/mcp, keyless with rate limits)",
    "Firecrawl MCP (npx -y firecrawl-mcp)"
  ],
  "config": {
    "filename": ".mcp.json",
    "language": "json",
    "code": "{\n  \"mcpServers\": {\n    \"exa\": { \"type\": \"http\", \"url\": \"https://mcp.exa.ai/mcp\" },\n    \"firecrawl-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"firecrawl-mcp\"],\n      \"env\": { \"FIRECRAWL_API_KEY\": \"fc-YOUR_API_KEY\" }\n    }\n  }\n}"
  },
  "starter_prompt": "Research: <question>. Search with Exa, read the 5-10 best primary sources with Firecrawl, and write research/<slug>.md with: a 5-bullet summary, key numbers with the source next to each, points where sources disagree, and a list of links. Mark anything you couldn't confirm as unverified.",
  "monthly_cost": {
    "min_usd": 20,
    "max_usd": 39,
    "note": "Claude Pro $20. Exa's hosted MCP works without a key (rate limited). Firecrawl Free has 1,000 credits/month; Hobby is $19."
  },
  "steps": [
    "Add both MCP servers.",
    "Run the prompt with one concrete question.",
    "Save good outputs as templates for recurring research."
  ],
  "why_this_works": "Search and page reading are separate tools, so the agent can find sources and then read them in full instead of trusting snippets.",
  "watch_out": "Never paste API keys into chat. Keep them in the config or environment.",
  "unverified": [],
  "tested": false,
  "last_checked": "2026-10-21"
}