Detect an incident from a corroborated cross-platform complaint surge minutes before the support queue floods
https://apidirect.io/mcp?token=YOUR_API_KEY
Use the outage-early-warning-siren skill: Watch X and alert me the moment {brand} looks like it's having an outage.
outage-early-warning-siren) makes your agent run this exact playbook instead of improvising its own searches.
In clients that support MCP prompts (Claude Desktop, Claude Code, Cursor) it also appears as a prompt named
outage-early-warning-siren, and any agent can call
get_skill(skill_id="outage-early-warning-siren") directly.
Customers complain publicly long before they open a ticket. This skill watches real-time complaint volume on X — and optionally Reddit, forums, and the open web (Downdetector-style trackers and status pages) — against normal background noise, weights it by complainer reach, and fires the siren only when a corroborated surge across the sources you enabled looks like a genuine outage rather than one-off gripes.
Who it's for: Support leads and on-call/reliability teams
| Input | Required | Description | Example |
|---|---|---|---|
brand |
Yes | Brand, app, or service name people would mention when it breaks | Figma |
platforms |
No | Comma-separated list of platforms to run — options: twitter, reddit, forums, web. Omit to run all of them; name specific platforms to limit the run. | reddit, forums, web |
depth |
No | How many result pages to pull per source. Higher means broader coverage and a more reliable volume read, but slower. Maps to the pages/page param on each search. | 10 |
time_window |
No | Freshness window for the forums and web sweeps (the only two sources that accept a time filter). Use a tight window like 'hour' for a true early-warning siren. Allowed values: hour, day, week, month, year, any. | hour |
country |
No | Optional region to narrow the forums and web sweeps when you suspect a geo-localized outage (e.g. a single cloud region). Leave blank for a global read. | us |
search_twitter(query='{brand} down OR broken OR "not working" OR outage', sort_by=most_recent, pages=10, get_sentiment=true)
Always-on real-time base. Count fresh complaints and keep only items with polarity==negative or dominant_emotion in anger/fear. Judge the rate against normal background chatter for {brand} so isolated gripes don't trip the siren, and capture the earliest complaint timestamps plus the loudest tweet_id and complainant_username for later steps.
search_reddit(query='{brand} down OR outage OR "not working"', sort_by=most_recent, page=10, get_sentiment=true)
Only run if {platforms} includes reddit: sweep fresh subreddit threads (the classic 'is {brand} down?' posts) and keep negative/anger items. A simultaneous spike here corroborating X is strong evidence of a real shared incident rather than noise.
search_forums(query='{brand} down OR outage OR "not working"', time=hour, page=10, get_sentiment=true)
Only run if {platforms} includes forums: pull forum threads within {time_window} reporting {brand} failures. Treat a cluster of fresh negative posts as independent corroboration of an active outage, especially for B2B/technical products whose users live on forums before they tweet.
search_web(query='is {brand} down', time=hour, include_ai_overview=true, pages=10)
Only run if {platforms} includes web: catch Downdetector-style outage trackers, third-party status reports, and aggregator pages for {brand} within {time_window}. The AI overview gives a fast human-readable 'is it down right now' verdict to gut-check the social signal.
twitter_user_profile(username=<loudest_complainant_username>)
For the top recent complainers surfaced in step 1, pull followers_count and verified to weight blast radius by reach. A verified or high-follower complainer means a far larger audience already sees the problem, raising the alert severity.
twitter_tweet_comments(tweet_id=<loudest_complaint_id>, get_sentiment=true)
Check the pile-on replies on the loudest tweet from step 1 to confirm a real shared incident (many users echoing the same failure) versus an isolated account issue, then emit the final go/no-go alert combining this with any corroborating sources you enabled.
This is exactly what the MCP returns to your agent (via the outage-early-warning-siren prompt or get_skill tool), with your inputs filled in.
SKILL: Outage Early-Warning Siren
Customers complain publicly long before they open a ticket. This skill watches real-time complaint volume on X — and optionally Reddit, forums, and the open web (Downdetector-style trackers and status pages) — against normal background noise, weights it by complainer reach, and fires the siren only when a corroborated surge across the sources you enabled looks like a genuine outage rather than one-off gripes.
You are running this skill on API Direct via its MCP tools. Execute the steps below yourself by calling the named tools in order — values in <angle brackets> come from a previous step. Then deliver the result described at the end.
INPUTS:
- brand (required): <brand — ASK THE USER>
Brand, app, or service name people would mention when it breaks
- platforms (optional): (optional — e.g. reddit, forums, web)
Comma-separated list of platforms to run — options: twitter, reddit, forums, web. Omit to run all of them; name specific platforms to limit the run.
- depth (optional): 10 (default — override if you like)
How many result pages to pull per source. Higher means broader coverage and a more reliable volume read, but slower. Maps to the pages/page param on each search.
- time_window (optional): hour (default — override if you like)
Freshness window for the forums and web sweeps (the only two sources that accept a time filter). Use a tight window like 'hour' for a true early-warning siren. Allowed values: hour, day, week, month, year, any.
- country (optional): (optional — e.g. us)
Optional region to narrow the forums and web sweeps when you suspect a geo-localized outage (e.g. a single cloud region). Leave blank for a global read.
PLATFORM SELECTION: some steps are gated with "Only run if {platforms} includes X". If the user supplied a `platforms` value, run only the steps whose platform is listed. If the user did NOT supply `platforms`, run ALL steps — every platform the skill supports.
STEPS:
1. Tool `search_twitter` — search_twitter(query='{brand} down OR broken OR "not working" OR outage', sort_by=most_recent, pages=10, get_sentiment=true)
Always-on real-time base. Count fresh complaints and keep only items with polarity==negative or dominant_emotion in anger/fear. Judge the rate against normal background chatter for {brand} so isolated gripes don't trip the siren, and capture the earliest complaint timestamps plus the loudest tweet_id and complainant_username for later steps.
2. Tool `search_reddit` — search_reddit(query='{brand} down OR outage OR "not working"', sort_by=most_recent, page=10, get_sentiment=true)
Only run if {platforms} includes reddit: sweep fresh subreddit threads (the classic 'is {brand} down?' posts) and keep negative/anger items. A simultaneous spike here corroborating X is strong evidence of a real shared incident rather than noise.
3. Tool `search_forums` — search_forums(query='{brand} down OR outage OR "not working"', time=hour, page=10, get_sentiment=true)
Only run if {platforms} includes forums: pull forum threads within hour reporting {brand} failures. Treat a cluster of fresh negative posts as independent corroboration of an active outage, especially for B2B/technical products whose users live on forums before they tweet.
4. Tool `search_web` — search_web(query='is {brand} down', time=hour, include_ai_overview=true, pages=10)
Only run if {platforms} includes web: catch Downdetector-style outage trackers, third-party status reports, and aggregator pages for {brand} within hour. The AI overview gives a fast human-readable 'is it down right now' verdict to gut-check the social signal.
5. Tool `twitter_user_profile` — twitter_user_profile(username=<loudest_complainant_username>)
For the top recent complainers surfaced in step 1, pull followers_count and verified to weight blast radius by reach. A verified or high-follower complainer means a far larger audience already sees the problem, raising the alert severity.
6. Tool `twitter_tweet_comments` — twitter_tweet_comments(tweet_id=<loudest_complaint_id>, get_sentiment=true)
Check the pile-on replies on the loudest tweet from step 1 to confirm a real shared incident (many users echoing the same failure) versus an isolated account issue, then emit the final go/no-go alert combining this with any corroborating sources you enabled.
DELIVER: A go/no-go outage alert with estimated blast radius (a cross-platform complaint surge weighted by complainer reach) plus links to the earliest complaints across every source you enabled, so on-call can confirm and respond before the support queue floods.
Note: each underlying tool call is billed at its normal endpoint price; get_sentiment adds a small per-page surcharge. Page through results as needed but stop once you have enough to deliver the outcome.
Score a key B2B account's churn risk from employee posts, rival-tool job reqs, risk-event news, and public switching chatter.
Catch 'I'm cancelling / switching' posts across X, Reddit and forums and prioritize the loudest accounts for a save.
Turn scattered "I wish it could" chatter across Reddit, forums, X, YouTube and Facebook into a ranked, evidence-backed feature backlog