{
  "id": "surf.news.feed",
  "object": "tool",
  "name": "Crypto News Feed",
  "summary": "Returns crypto news from major sources.",
  "description": "Returns crypto news from major sources. Filters: source (enum), project, and time range (from/to). Sort: recency (default) or trending. Use the detail endpoint with article id for full content.\n\nRaw surf#news/feed endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.asksurf.ai/data-api/news/feed).",
  "category": "web",
  "hosted_by": "Surf",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "surf",
      "name": "Surf",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "surf_news_feed",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "enum": [
              "coindesk",
              "cointelegraph",
              "theblock",
              "decrypt",
              "dlnews",
              "blockbeats",
              "bitcoincom",
              "coinpedia",
              "ambcrypto",
              "cryptodaily",
              "cryptopotato",
              "phemex",
              "panews",
              "odaily",
              "tradingview",
              "chaincatcher",
              "techflow"
            ],
            "description": "Filter by news source. Example: coindesk."
          },
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated project names to filter by. Example: bitcoin,ethereum."
          },
          "from": {
            "type": "string",
            "minLength": 1,
            "description": "Filter articles published on or after this time. Accepts Unix seconds or date string (2024-01-01). Example: 2024-01-01."
          },
          "to": {
            "type": "string",
            "minLength": 1,
            "description": "Filter articles published on or before this time. Accepts Unix seconds or date string (2024-02-01). Example: 2024-02-01."
          },
          "sort_by": {
            "default": "recency",
            "type": "string",
            "enum": [
              "recency",
              "trending"
            ],
            "description": "Sort order: recency (newest first) or trending (deterministic newest-first alias until engagement ranking is available). Example: recency. Defaults to \"recency\"."
          },
          "limit": {
            "default": 20,
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Results per page (max 50). Example: 20. Defaults to 20."
          },
          "offset": {
            "default": 0,
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Pagination offset. Example: 0. Defaults to 0."
          }
        },
        "additionalProperties": false
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}