# MCP Trend Detector (`knotless_cadence/mcp-trend-detector`) Actor

Detect trending topics across HN, Reddit, Twitter in real-time. 5+ runs for content strategy. AI-powered. Custom AI tool in 48h, $100 pilot. Email: spinov001@gmail.com • Tips: t.me/scraping\_ai

- **URL**: https://apify.com/knotless\_cadence/mcp-trend-detector.md
- **Developed by:** [Alex](https://apify.com/knotless_cadence) (community)
- **Categories:** Marketing, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## MCP Trend Detector -- Scan Emerging Tech Trends from 5 Signals: HN, arXiv, npm, Stack Overflow & Google News

**Is the technology you are betting on actually growing -- or are you chasing yesterday's hype?** Trend reports are published quarterly, but markets move daily. MCP Trend Detector scans 5 independent data sources in real time and gives you a 0-100 trend score with a clear level: HOT, GROWING, EMERGING, or NICHE. Know where the market is heading before your competitors do.

### What It Does

Enter any technology topic, framework, or market category. The detector queries Hacker News discussions, arXiv research papers, npm package ecosystem, Stack Overflow questions, and Google News articles. It aggregates the signals into a composite trend score and returns detailed per-source metrics so you can see exactly where the signal is strongest.

### Features

- :white_check_mark: **5-Signal Trend Analysis** -- HN discussions, arXiv papers, npm packages, Stack Overflow questions, Google News articles
- :white_check_mark: **Composite Trend Score 0-100** -- weighted across all 5 sources with clear level classification
- :white_check_mark: **4 Trend Levels** -- HOT (80+), GROWING (50-80), EMERGING (25-50), NICHE (0-25)
- :white_check_mark: **Per-Source Metrics** -- see exact counts for each signal: total HN stories, arXiv paper count, npm package count, news article count
- :white_check_mark: **Top Results** -- surfaces the top HN story (with points) and top npm package for context
- :white_check_mark: **Latest News Date** -- shows when the most recent Google News article was published to assess recency
- :white_check_mark: **MCP-Native** -- designed for AI agents tracking market shifts and tech adoption autonomously
- :white_check_mark: **No API Keys Required** -- all 5 sources use public endpoints
- :white_check_mark: **Instant Results** -- all signals checked in seconds, not hours

### Input Parameters

| Parameter | Type | Required | Description | Example |
|-----------|------|----------|-------------|---------|
| `topic` | string | Yes | Technology, framework, or market category to analyze | `"MCP Model Context Protocol"` |

### Output Data Example

```json
{
  "topic": "MCP Model Context Protocol",
  "hackerNews": {
    "totalStories": 342,
    "topStory": "Anthropic's MCP Protocol is Changing How AI Agents Access Data",
    "topPoints": 891
  },
  "arxiv": {
    "totalPapers": 156
  },
  "npm": {
    "totalPackages": 87,
    "topPackage": "@modelcontextprotocol/sdk"
  },
  "stackoverflow": {
    "hasMore": true,
    "quotaRemaining": 285
  },
  "googleNews": {
    "articleCount": 45,
    "latestDate": "Mon, 18 Mar 2026 09:30:00 GMT"
  },
  "trendScore": 68,
  "trendLevel": "GROWING",
  "scrapedAt": "2026-03-19T12:00:00.000Z"
}
````

### How It Works

1. **You provide** a technology topic or market keyword
2. **Signal 1 -- Hacker News:** Queries HN Algolia API for story count and surfaces the top story by points. 1,000+ stories = massive developer interest
3. **Signal 2 -- arXiv Papers:** Searches the arXiv API for academic research volume. 10,000+ papers = well-established research field
4. **Signal 3 -- npm Ecosystem:** Searches the npm registry for related packages. 1,000+ packages = mature developer ecosystem
5. **Signal 4 -- Stack Overflow:** Checks the Stack Exchange API for question volume. Active Q\&A = real adoption and usage
6. **Signal 5 -- Google News:** Parses Google News RSS for article count and latest publication date. 50+ articles = strong media coverage
7. **Scoring Engine** -- each signal contributes weighted points to the composite score (max 100). The score maps to a trend level

### Scoring Breakdown

| Signal | HIGH Threshold | Points (HIGH) | MEDIUM Threshold | Points (MED) | LOW | Points (LOW) |
|--------|---------------|---------------|-------------------|--------------|-----|-------------|
| Hacker News | 1,000+ stories | 25 | 100+ stories | 15 | <100 | 5 |
| arXiv | 10,000+ papers | 25 | 1,000+ papers | 15 | <1,000 | 5 |
| npm | 1,000+ packages | 20 | 100+ packages | 10 | <100 | 3 |
| Google News | 50+ articles | 20 | 10+ articles | 10 | <10 | 3 |
| Stack Overflow | hasMore = true | 10 | -- | -- | hasMore = false | 3 |

| Total Score | Level | Interpretation |
|-------------|-------|----------------|
| 80-100 | HOT | Mainstream technology with massive adoption. Market is validated. |
| 50-79 | GROWING | Significant traction across multiple signals. Strong investment opportunity. |
| 25-49 | EMERGING | Early signs of growth. Worth watching, too early for mass market. |
| 0-24 | NICHE | Very limited signals. Either too new or too specialized. |

### Use Cases

1. **Technology scouting** -- evaluate emerging technologies before committing engineering resources. Compare "Rust vs Go vs Zig" trend scores side by side
2. **Investment research** -- VCs can scan potential investment themes across 5 data sources in seconds instead of commissioning analyst reports
3. **Product roadmap decisions** -- should you add WebAssembly support? Check if the trend is HOT or still NICHE before allocating a sprint
4. **Content strategy** -- identify GROWING topics to write about while they are still rising, not after they peak. Publish when the wave is building
5. **Competitive positioning** -- track which technologies your competitors are adopting by monitoring related trend signals
6. **AI agent pipelines** -- build autonomous research workflows that scan 50+ topics daily and surface only the ones trending upward
7. **Academic research planning** -- gauge how crowded a research area is (arXiv count) before choosing your PhD topic or grant application

### Example Queries to Try

- `"MCP Model Context Protocol"` -- how fast is the AI agent ecosystem growing?
- `"WebAssembly"` -- is WASM still niche or going mainstream?
- `"Rust programming"` -- developer adoption trajectory
- `"quantum computing"` -- academic vs commercial maturity
- `"Bluesky AT Protocol"` -- is the decentralized social movement gaining traction?

### Related Tools

- [Browse all our MCP tools on Apify Store](https://apify.com/store?search=knotless_cadence)
- [MCP Servers Collection on GitHub](https://github.com/spinov001-art/mcp-servers-collection)
- [Full Market Research Reports (50+ pages, verified data)](https://payhip.com/aimarketintel)

***

Trends do not wait for quarterly reports. Detect them in real time. Built for AI agents. Works for humans too.

# Actor input Schema

## `topic` (type: `string`):

Technology or topic to detect trend for

## Actor input object example

```json
{
  "topic": "MCP Model Context Protocol"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "topic": "MCP Model Context Protocol"
};

// Run the Actor and wait for it to finish
const run = await client.actor("knotless_cadence/mcp-trend-detector").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "topic": "MCP Model Context Protocol" }

# Run the Actor and wait for it to finish
run = client.actor("knotless_cadence/mcp-trend-detector").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "topic": "MCP Model Context Protocol"
}' |
apify call knotless_cadence/mcp-trend-detector --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=knotless_cadence/mcp-trend-detector",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "MCP Trend Detector",
        "description": "Detect trending topics across HN, Reddit, Twitter in real-time. 5+ runs for content strategy. AI-powered. Custom AI tool in 48h, $100 pilot. Email: spinov001@gmail.com • Tips: t.me/scraping_ai",
        "version": "1.0",
        "x-build-id": "B2es2bt4edR48MYdL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/knotless_cadence~mcp-trend-detector/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-knotless_cadence-mcp-trend-detector",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/knotless_cadence~mcp-trend-detector/runs": {
            "post": {
                "operationId": "runs-sync-knotless_cadence-mcp-trend-detector",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/knotless_cadence~mcp-trend-detector/run-sync": {
            "post": {
                "operationId": "run-sync-knotless_cadence-mcp-trend-detector",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "topic"
                ],
                "properties": {
                    "topic": {
                        "title": "Topic",
                        "type": "string",
                        "description": "Technology or topic to detect trend for"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
