Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Trending content on 12 networks, best time, hashtags, templates, drafts and review, publish to 11.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
VIRALHUNT_API_KEY, VIRALHUNT_BASE_URLValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"viralhunt": {
"command": "npx",
"args": [
"-y",
"viralhunt-mcp"
],
"env": {
"VIRALHUNT_API_KEY": "your-value",
"VIRALHUNT_BASE_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add viralhunt --env VIRALHUNT_API_KEY=your-value --env VIRALHUNT_BASE_URL=your-value -- npx -y viralhunt-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"viralhunt": {
"command": "npx",
"args": [
"-y",
"viralhunt-mcp"
],
"env": {
"VIRALHUNT_API_KEY": "your-value",
"VIRALHUNT_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"viralhunt": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"viralhunt-mcp"
],
"env": {
"VIRALHUNT_API_KEY": "your-value",
"VIRALHUNT_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
VIRALHUNT_BASE_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The publisher (rodvan) is not the repo owner (viralhunt-io); someone else may have listed it
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 0 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: VIRALHUNT_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.1.27) reached the registry 17 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, alalanet — check before you pay
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Check packages, MCP servers and x402 endpoints before agents install or pay. Signed.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP server for [ViralHunt.io](https://viralhunt.io) — the all-in-one platform to discover what's trending, curate it with your team, and publish everywhere. A BuzzSumo alternative with a built-in cross-network scheduler and an API that AI agents can drive end to end.
Get a free token: https://viralhunt.io/claude → create the free account (free forever, no card, 24 content queries a day), then Account → API Access → Create access. Every token has a permission group (reader, writer, reviewer, publisher, full): a tool outside the group answers 403 insufficient_scope naming what it lacks, and viralhunt_account shows the token its own group. Give an agent that writes a writer token and the one that reviews a reviewer token. Full API docs: https://viralhunt.io/api.
These are the tools this server exposes (they drive the full discover → time it → publish → verify → correct loop). Every number comes with its sample size and time window, so an agent can say how much to trust it:
| Tool | What it does |
|---|---|
viralhunt_account | Who is this key — plan, daily quota left, credits, per-endpoint rules (call first) |
viralhunt_trending | Find topics — what's going viral on TikTok, Instagram, X, Facebook, Pinterest, Bluesky, Douyin, Reddit, Mastodon, Tumblr, Hacker News and news RSS, ranked by viral score, each post with growth_24h (how much it moved between our two most distant readings); author narrows to one page or account |
viralhunt_search | One keyword, every network — merged and ranked, with per-network totals |
viralhunt_best_time | When to post — best weekday + hour per network from the posts that went viral there (365-day sample, hit rate, sample size, your time zone, optional niche keyword) |
viralhunt_top_hashtags | Which hashtags — top tags per network or across all, by engagement, posts or per-post; one tag's breakdown by network |
viralhunt_trending_sounds | Which sound — trending audio on TikTok, Instagram Reels and Douyin, cross-network sounds first, with the posts that used it |
viralhunt_best_communities | Where to post — best subreddits (peak per 1,000 members, timing, top posts, similar) and Bluesky custom feeds for a topic |
viralhunt_targets | List your brands/projects and the connected accounts you can post to, with needs_reconnect, per-network media_limits and the projects linked in another language |
viralhunt_schedule | Publish now, schedule, or leave a draft (text + media, per-network copy, a first comment, or a design on a template the app renders when a person approves). The answer carries url, drafts_url, project_name: a post for a person goes to Drafts complete and is handed over in one five-line message (id and project, url, angle, verification, the decision needed), the rest in author_notes |
viralhunt_drafts | The drafts waiting for a review and an approval, with their reviews |
viralhunt_review_draft | Review a draft — verdict, score, per-network warnings, a note (an agent as the team's checker) |
viralhunt_policy | The content rule a reviewer applies before any OK: block and fix lists with codes, six scores and thresholds, per-network notes (read it first, every pass) |
viralhunt_review_queue | What needs a review: posts in Review with no verdict on their current content |
viralhunt_calendar | The days worth a post: international days and science/tech/space/health anniversaries with why, by window and category |
viralhunt_news_categories | The news categories with counts; pass one as category to viralhunt_trending (rss) |
viralhunt_review_stats | Flags per collaborator by week, fortnight or month: reviews, ok / fix / block, rule codes, average risk10 |
viralhunt_approve_draft | Send a draft (owner/admin token, with the user's yes), optionally with its translations |
viralhunt_translate_post | The same post in another language — the app adapts the copy and the template's texts for a linked project |
viralhunt_edit_log | Learn from the edits — what people changed in drafts after the agent left them |
viralhunt_get_post | Check a post's status + per-network results, permalinks and each network's own reason when it refused |
viralhunt_sync_post | Refresh statuses from the networks |
viralhunt_update_post | Edit a draft (anything, incl. the rendered png) or a still-scheduled post (body / media / networks / time) |
viralhunt_cancel_post | Cancel the not-yet-published targets of a scheduled post, or drop a draft |
viralhunt_stats | What performed — engagement of the published posts by network, by brand, top posts |
viralhunt_quotes / viralhunt_mark_quote_used | The quotes base for daily-quote series (public domain by default, author context, portraits) |
viralhunt_recipes / viralhunt_recipe_ran | Standing orders a person saved in the app: source, template, cadence; stamp a run |
viralhunt_list_templates | Browse the content template library (on-brand layouts you fill; favourites first) |
viralhunt_get_template | Get one template's full spec (html + css + variable manifest, what is static and what is dynamic, what it suits, the owner's instructions) to render |
viralhunt_upsert_template | Author or edit a template — editing a curated one clones it into your copy (owner/admin) |
viralhunt_assign_template | Assign a template to a project so its agents can use it (owner/admin) |
viralhunt_board_context | The team's Editorial Board in one call: members (with ids), columns, categories |
viralhunt_create_card | Hand a post to a teammate — create a kanban card (URL metadata auto-filled, assignee, priority, due date, category) |
viralhunt_move_card | Move a card to another column (the is_done column completes it) |
viralhunt_my_cards | The cards assigned to you (when the token belongs to an agent member of the team) |
viralhunt_card_comments | Read or add comments on a card (notifies the assignee, mirrors to team chat) |
Guardrails baked in: it won't post to the wrong brand, only schedules in the future, drafts by default unless the user asked to publish now, never uses another page's text or branded picture, checks each network's media ceilings, and is told not to repost fake news / copyrighted media / spam.
viralhunt_brand_webhook takes format (json, discord, slack, auto) and test: true (one sample alert to the saved webhook, with what the receiver answered). The webhooks guide: https://viralhunt.io/webhooks.viralhunt_update_post on a SCHEDULED post works per account: each account's own text and pictures are patched only when they changed, a changed thread (new parameter) on X/Threads makes that network's post again, added accounts are created and dropped ones deleted; the answer lists patched, recreated, added, removed, refused; nothing under 6 minutes before the post's time (409 not_editable).allow_duplicate on viralhunt_schedule and viralhunt_approve_draft: the duplicate firewall refuses an account another post of the last 72 hours already carries the same text for (duplicate_of; 409 duplicate_post when every account is one). A send whose every network was cut answers status: processing with checking: true: never create it again.all and limit on viralhunt_brand_hot (the most commented threads too, rising first: the app's dashboard list); the answer carries machine (the always-on Chrome's heartbeat), so an empty list is read against whether anybody is searching.carousel on viralhunt_create_post / viralhunt_update_post: several pictures are allowed only when the user asked for a carousel (else 422 multiple_pictures); png replaces the post's picture instead of being added next to it; a post made on a template always has ONE picture, its render.voice on every project of viralhunt_targets (the owner's playbook: read first, follow over the general rules, offer to draft one when empty); complete means every network's copy (X, Bluesky, Threads) in overrides in the same create, never a cut.design, a PNG alone is a flat file nobody can edit); the working agreement in viralhunt_schedule: a post for a person goes to Drafts complete, never to Review unless asked, handed over in one five-line message with the url the answer gives; url, drafts_url, project_id, project_name on create, drafts rows and get.viralhunt_list_posts (the queue and the history per target), viralhunt_delete_post (take a published target down), account_id on viralhunt_cancel_post; retry on a timed-out create needs force.assigned_to by id, name or email on viralhunt_create_card; viralhunt_assign_card, viralhunt_get_card, viralhunt_list_cards, viralhunt_archive_card. Drafts rows carry publishes[] (the text each account really sends).viralhunt_brand_keywords takes run: true ("search now"); viralhunt_brand_status carries machine (is the always-on machine alive).viralhunt_brand_status, viralhunt_brand_keywords, viralhunt_brand_hot (the discussions heating up right now, with links), viralhunt_brand_alerts, viralhunt_brand_webhook (signed deliveries to the brand's own agent).viralhunt_translate_post describes what comes back (shortened, overrides, no em dashes) and the one-brand-two-languages pattern.viralhunt_schedule takes stage and assigned_to; viralhunt_update_post takes assigned_to and answers the stage after the edit; viralhunt_drafts filters by assigned_to; viralhunt_get_post carries the full drafts shape (overrides, design, render…); viralhunt_get_template with preview shows a template before any post; a too-long text answers text_too_long instead of a 500.design is always sent for a template-made picture (and viralhunt_update_draft repairs a PNG-only post with it): the app can then edit the image.viralhunt_trending takes sort: most_commented on every network that counts comments (tiktok new; facebook and pinterest map it to most_comments, x, bluesky and mastodon to most_replied).viralhunt_upsert_template takes action: archive; update works whether the action comes in the body or the URL; viralhunt_list_templates takes scope, per_page, page and lists the organization's own templates first.card_id on create) that moves with the post; design_fields on update fixes the texts inside a designed image (a trusted reviewer too); template authors without admin ("Creates templates" on Team); templates never carry code (removed in the answer).kind on create and update (fact | meme | quote | opinion | promo): the reviewer applies only that kind's rules.overrides[account] takes `first_commOnly the beginning is shown; read the rest in the repo