TechSnif

Agent-first tech news: ranked story clusters, coverage and discussion links, trends, and events.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
94%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,203Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.72% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "@techsnif/mcp-server"
      ]
    }
  }
}

Runnable packages

npm@techsnif/mcp-server3.3.1stdio

Remote endpoints

https://mcp.techsnif.comstreamable-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_top_stories(limit, offset, sort, tier, publisher, ...)

Get tech story clusters from across the web. Each story aggregates coverage from multiple outlets (TechCrunch, The Verge, NYT, TechSnif, etc.) and includes links to social discussion (tweets, Reddit threads, LinkedIn posts). Sort by rank (prominence) or newest (most recently seen). Optionally filter by headline tier (1=standard, 2=major, 3=top story), publisher name, discussion platform, topic, or a "since" timestamp, and paginate with offset. Use get_story when you need full details or article body text.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Number of stories to return (default 20, max 80)",
      "default": 20,
      "minimum": 1,
      "maximum": 80
    },
    "offset": {
      "type": "number",
      "description": "Number of stories to skip (pagination)",
      "minimum": 0
    },
    "sort": {
      "type": "string",
      "description": "Sort order: \"rank\" (prominence, default) or \"newest\" (most recently seen)",
      "enum": [
        "rank",
        "newest"
      ],
      "default": "rank"
    },
    "tier": {
      "type": "number",
      "description": "Filter by headline tier: 1=standard, 2=major, 3=top story",
      "minimum": 1,
      "maximum": 3
    },
    "publisher": {
      "type": "string",
      "description": "Filter by lead publisher name (e.g. \"TechCrunch\", \"The Verge\", \"TechSnif\")"
    },
    "platform": {
      "type": "string",
      "description": "Filter to stories discussed on this platform (e.g. \"x\", \"bluesky\", \"threads\", \"linkedin\", \"forums\", \"mastodon\")"
    },
    "has_discussion": {
      "type": "boolean",
      "description": "Only return stories that have social discussion links"
    },
    "since": {
      "type": "string",
      "description": "ISO 8601 date, only stories seen since this time (e.g. \"2026-07-01\")"
    },
    "topic": {
      "type": "string",
      "description": "Filter by topic slug (e.g. \"ai\", \"security\")"
    },
    "entity": {
      "type": "string",
      "description": "Filter by entity slug: only stories mentioning this company, person, or product (e.g. \"openai\"). Use list_entities to discover slugs."
    }
  }
}
🟢get_story(slug, platform, publisher, brief)

Get full details of a story cluster by slug, including all coverage links from every outlet (TechCrunch, NYT, TechSnif, etc.), direct URLs to social discussion posts (exact tweets, Reddit threads, LinkedIn posts, Bluesky posts), and the full TechSnif article text if available. Use this to answer "show me the tweets about this story" or "what outlets covered this". Filter discussion by platform, coverage by publisher, or use brief mode to skip the article body.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The story cluster slug"
    },
    "platform": {
      "type": "string",
      "description": "Filter discussion links to this platform only (e.g. \"x\", \"bluesky\", \"threads\")"
    },
    "publisher": {
      "type": "string",
      "description": "Filter coverage links by publisher name (e.g. \"TechCrunch\"). Does not affect the lead article or discussion links."
    },
    "brief": {
      "type": "boolean",
      "description": "Show metadata and links only, skip the full TechSnif article body"
    }
  },
  "required": [
    "slug"
  ]
}
🟢search_stories(query, limit, offset, publisher, platform)

Full-text search over story cluster headlines and excerpts, ranked by relevance. Returns matching story clusters with coverage links, discussion link counts, and TechSnif article references when available. Use get_story for full detail and article body text. Optionally filter by publisher and paginate with offset.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query, matches story headlines and excerpts (min 2 characters)",
      "minLength": 2
    },
    "limit": {
      "type": "number",
      "description": "Max results to return (default 10, max 50)",
      "default": 10,
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "type": "number",
      "description": "Number of results to skip (pagination)",
      "minimum": 0
    },
    "publisher": {
      "type": "string",
      "description": "Filter by lead publisher name (e.g. \"TechCrunch\", \"TechSnif\")"
    },
    "platform": {
      "type": "string",
      "description": "Narrow displayed discussion links to this platform (e.g. \"x\", \"bluesky\")"
    }
  },
  "required": [
    "query"
  ]
}
🟢get_tech_events(limit)

Get upcoming tech industry events (conferences, summits, expos) with dates, locations, and URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Number of events to return (default 10, max 50)",
      "default": 10,
      "minimum": 1,
      "maximum": 50
    }
  }
}
🟢get_articles(limit, offset, category, tag)

List TechSnif editorial articles (original coverage written by TechSnif). Filter by category (AI, Startups, Venture, Robotics) or tag, and paginate with offset. Use get_article for the full body text.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Number of articles to return (default 10, max 50)",
      "default": 10,
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "type": "number",
      "description": "Number of articles to skip (pagination)",
      "minimum": 0
    },
    "category": {
      "type": "string",
      "description": "Filter by category (e.g. \"AI\", \"Startups\", \"Venture\", \"Robotics\")"
    },
    "tag": {
      "type": "string",
      "description": "Filter by tag (e.g. \"Security\", \"Fintech\", \"Open Source\")"
    }
  }
}
🟢get_article(slug, brief)

Get a full TechSnif editorial article by slug, including the complete body text.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The article slug"
    },
    "brief": {
      "type": "boolean",
      "description": "Show metadata and excerpt only, skip the full body"
    }
  },
  "required": [
    "slug"
  ]
}
🟡search_articles(query, limit, offset)

Full-text search over TechSnif editorial article titles and excerpts, ranked by relevance. Returns article summaries with category, tags, and publish dates. Use get_article for the full body text, and paginate with offset.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query, matches article titles and excerpts (min 2 characters)",
      "minLength": 2
    },
    "limit": {
      "type": "number",
      "description": "Max results to return (default 20, max 50)",
      "default": 20,
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "type": "number",
      "description": "Number of results to skip (pagination)",
      "minimum": 0
    }
  },
  "required": [
    "query"
  ]
}
🟢get_trending_articles(limit)

Get trending TechSnif editorial articles from the last 48 hours, ranked by coverage heat and recency. Use get_article for the full body text.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Number of articles to return (default 5, max 20)",
      "default": 5,
      "minimum": 1,
      "maximum": 20
    }
  }
}
🟢get_story_timeline(slug)

Get the ranking history of a story cluster by slug: a time series of snapshots with rank, headline tier, commentary count, and coverage count at each point. Use this to see how a story rose, peaked, or faded across the news cycle.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The story cluster slug"
    }
  },
  "required": [
    "slug"
  ]
}
🟡get_changes(since, limit)

Get story cluster changes since a timestamp: newly appeared clusters and updates to existing ones, each with a change type, a change time, and a story summary. Poll this to stay in sync with the TechSnif feed without refetching everything; pass the returned nextCursor as the next "since" value.

Input Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "description": "ISO 8601 timestamp to read changes from (defaults to 24 hours ago)"
    },
    "limit": {
      "type": "number",
      "description": "Max changes to return (default 50, max 100)",
      "default": 50,
      "minimum": 1,
      "maximum": 100
    }
  }
}
🟢get_trending_stories(hours, limit)

Get story clusters gaining momentum right now, ranked by velocity: how quickly coverage and discussion grew within a recent window. Each story includes its velocity score plus commentary and coverage deltas. Use get_story for full detail.

Input Schema

{
  "type": "object",
  "properties": {
    "hours": {
      "type": "number",
      "description": "Look-back window in hours (default 24, max 48)",
      "default": 24,
      "minimum": 1,
      "maximum": 48
    },
    "limit": {
      "type": "number",
      "description": "Number of stories to return (default 20, max 50)",
      "default": 20,
      "minimum": 1,
      "maximum": 50
    }
  }
}
🟢get_leaderboard(tab, window, topic, limit)

Get TechSnif source or author leaderboards: which publications and journalists drive the most tech story coverage. Rank by story count over a 7-day, 30-day, or all-time window, optionally filtered by topic.

Input Schema

{
  "type": "object",
  "properties": {
    "tab": {
      "type": "string",
      "description": "Rank \"sources\" (publications) or \"authors\" (journalists)",
      "enum": [
        "sources",
        "authors"
      ],
      "default": "sources"
    },
    "window": {
      "type": "string",
      "description": "Time window for rankings (default 30d)",
      "enum": [
        "7d",
        "30d",
        "all"
      ],
      "default": "30d"
    },
    "topic": {
      "type": "string",
      "description": "Filter by topic slug (e.g. \"ai\", \"security\")"
    },
    "limit": {
      "type": "number",
      "description": "Number of entries to return (default 50, max 100)",
      "default": 50,
      "minimum": 1,
      "maximum": 100
    }
  }
}
🟢list_entities(type, limit)

List the companies, people, and products TechSnif tracks across story clusters, with story counts. Only entities linked to at least one story are returned, most-covered first. Pass a returned slug as the entity param of get_top_stories to pull every story about that entity.

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "Filter by entity type: company, person, or product",
      "enum": [
        "company",
        "person",
        "product"
      ]
    },
    "limit": {
      "type": "number",
      "description": "Number of entities to return (default 100, max 500)",
      "default": 100,
      "minimum": 1,
      "maximum": 500
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools
verifiedversion not recorded13 tools