TechSnif
Agent-first tech news: ranked story clusters, coverage and discussion links, trends, and events.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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
3.3.1stdioRemote endpoints
https://mcp.techsnif.comstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢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
Evidence