{
  "schema_version": 1,
  "providers": {
    "exa": {
      "label": "Exa",
      "url": "https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa",
      "search_tools": [
        "web_search_exa"
      ],
      "fetch_tools": [
        "web_fetch_exa"
      ],
      "direct_client": true,
      "optional_header_env": {
        "x-api-key": "EXA_API_KEY"
      },
      "authentication": "Anonymous rate-limited search/extraction, or optional EXA_API_KEY header. This plugin does not implement OAuth.",
      "native_research": {
        "url": "https://mcp.exa.ai/mcp?tools=agent_run",
        "tools": ["agent_run"],
        "required_tools": ["agent_run"],
        "workflow_tools": ["agent_run"],
        "authentication_required": true,
        "mode": "host_native_mcp",
        "note": "Opt-in Exa Agent; resumable with runId. Not part of the default search/extraction catalog."
      },
      "docs": "https://exa.ai/docs/reference/exa-mcp"
    },
    "parallel": {
      "label": "Parallel",
      "url": "https://search.parallel.ai/mcp",
      "search_tools": [
        "web_search"
      ],
      "fetch_tools": [
        "web_fetch"
      ],
      "direct_client": true,
      "optional_bearer_env": "PARALLEL_API_KEY",
      "authentication": "Anonymous rate-limited search/extraction, or optional PARALLEL_API_KEY Bearer header. OAuth endpoint is host-managed.",
      "native_research": {
        "url": "https://task-mcp.parallel.ai/mcp",
        "tools": ["createDeepResearch", "createTaskGroup", "getStatus", "getResultMarkdown"],
        "required_tools": ["createDeepResearch", "getStatus", "getResultMarkdown"],
        "workflow_tools": ["createDeepResearch", "getStatus", "getResultMarkdown"],
        "authentication_required": true,
        "mode": "host_native_mcp",
        "docs": "https://docs.parallel.ai/integrations/mcp/task-mcp",
        "note": "A separate authenticated asynchronous Task MCP; Search MCP capability probes do not contact it."
      },
      "docs": "https://docs.parallel.ai/integrations/mcp/search-mcp"
    },
    "jina": {
      "label": "Jina Reader / Search",
      "url": "https://r.jina.ai/",
      "search_url": "https://s.jina.ai/",
      "transport": "http",
      "search_tools": ["jina_search"],
      "fetch_tools": ["jina_reader"],
      "direct_client": true,
      "optional_bearer_env": "JINA_API_KEY",
      "required_env": {"search": "JINA_API_KEY"},
      "authentication": "Reader supports anonymous rate-limited webpage/PDF extraction. Search requires JINA_API_KEY. Uses the HTTP APIs, not the hosted Jina MCP, whose anonymous reading is not established.",
      "docs": "https://jina.ai/reader/"
    },
    "tavily": {
      "label": "Tavily",
      "url": "https://mcp.tavily.com/mcp/",
      "search_tools": [
        "tavily_search",
        "tavily-search"
      ],
      "fetch_tools": [
        "tavily_extract",
        "tavily-extract"
      ],
      "direct_client": true,
      "optional_bearer_env": "TAVILY_API_KEY",
      "keyless_headers": {
        "X-Tavily-Access-Mode": "keyless"
      },
      "authentication": "Optional TAVILY_API_KEY Bearer header; otherwise explicitly selects keyless search/extraction. OAuth is host-managed.",
      "keyless_docs": "https://docs.tavily.com/documentation/keyless",
      "native_research": {
        "url": "https://mcp.tavily.com/mcp/",
        "tools": ["tavily_research", "tavily-research"],
        "authentication_required": true,
        "mode": "host_native_mcp",
        "note": "May be advertised to keyless clients but requires an API key to execute. The aggregator routes search and extraction only."
      },
      "docs": "https://docs.tavily.com/documentation/mcp"
    },
    "deepseek": {
      "label": "DeepSeek Search / Fetch",
      "url": "https://api.deepseek.com",
      "transport": "http",
      "client": "deepseek",
      "search_url": "https://api.deepseek.com/v1/tools/search",
      "fetch_url": "https://api.deepseek.com/v1/tools/fetch",
      "search_tools": ["deepseek_search"],
      "fetch_tools": ["deepseek_fetch"],
      "direct_client": true,
      "optional_bearer_env": "DEEPSEEK_API_KEY",
      "required_env": {"search": "DEEPSEEK_API_KEY", "fetch": "DEEPSEEK_API_KEY"},
      "authentication": "Bearer DEEPSEEK_API_KEY. Raw JSON Search/Fetch API; OpenAI-compatible error shape. Search costs $0.75 per 1,000 successful requests (official docs).",
      "docs": "https://api-docs.deepseek.com/guides/search/"
    }
  },
  "default_providers": [
    "exa",
    "parallel"
  ]
}
