MCP Server
Connect AI assistants to the Virlo API with our native Model Context Protocol (MCP) server. Supports Cursor, Claude Cowork, claude.ai, VS Code, Claude Code, Claude Desktop, and Windsurf with one-click or copy-paste setup.
The server exposes 46 tools that cover every capability of the public API — Content Research Agents (one-shot + recurring), Satellite creator/video/sound intel, long-term Tracking, Audience demographics, Sounds, Trends, and account utilities.
Claude Desktop, claude.ai, and Claude Code connect via OAuth — sign in to
Virlo when prompted and a dedicated API key is minted for you automatically.
Cursor, VS Code, and Windsurf need an existing API key — grab one at
dev.virlo.ai/dashboard (keys start with virlo_tkn_).
Quick Setup
Enter your API key below to get personalized, ready-to-use configuration for your AI client. Cursor users get a one-click install button.
Paste your virlo_tkn_ key to get ready-to-use configs with one-click install for Cursor. Claude Desktop, claude.ai, and Claude Code users can skip this — they connect via OAuth and a key is created automatically.
Enter your API key above to enable one-click Cursor install.
Or add to .cursor/mcp.json:
{
"mcpServers": {
"virlo": {
"url": "https://dev.virlo.ai/api/mcp/mcp",
"headers": {
"Authorization": "Bearer virlo_tkn_YOUR_KEY"
}
}
}
}How research tools map to Agents
Under the hood, keyword search and niche monitoring are the same product: Content Research Agents (/v1/agents). MCP keeps the legacy tool names (search_keywords, create_niche_monitor, …) as a stable public contract so existing Cursor / Claude / OpenClaw setups keep working — every call creates or reads a CRA.
| Intent | MCP tools (stable names) | REST equivalent |
|---|---|---|
| One-shot research — “what works in X?” | search_keywords, list_keyword_searches, get_keyword_search_results | POST/GET /v1/agents with is_recurring: false |
| Recurring monitor — “keep watching X” | create_niche_monitor, list_niche_monitors, get_niche_monitor_data, … | POST/GET /v1/agents with is_recurring: true + cadence |
| Self-optimizing autonomy | get_niche_monitor_proposals, get_niche_monitor_activity, review_niche_monitor_proposal, set_niche_monitor_autonomy | /v1/agents/:id/proposals, /activity, autonomy |
You no longer pick a min_views floor or time_range at creation — collection is system-managed. Filter at read time (min_views, start_date, end_date, platforms, order_by, region) for free. Prefer intent on create (required upstream; MCP synthesizes one from keywords if omitted).
For full REST schemas, migration notes from Orbit/Comet, and autonomy details, see Content Research Agents. For how an assistant should use these tools (virality scoring, intelligence fields, spend discipline), load the Agent Playbook or the MCP resource virlo://docs/agent-playbook.
Available Tools
Tools are named for what they do. Creation costs credits; reads are free.
Analytics (instant)
| Tool | Credits | What it does |
|---|---|---|
search_hashtags | 5 | Search trending hashtags across platforms or filter by YouTube/TikTok/Instagram |
get_hashtag_performance | 5 | Detailed performance metrics (views, likes, comments) for a specific hashtag |
get_trending_videos | 25 | Top viral videos from the last ~48 hours |
get_trends | 25 | Trend groups with optional date range / region |
get_trends_digest | 25 | Today's curated trend digest (editorially ordered; region-aware) |
get_emerging_trends | Free | Momentum-ranked early-stage trends (new / rising) — “what's about to take off” |
Prefer get_emerging_trends when the user asks what is breaking, rising, or emerging; use get_trends / get_trends_digest for broader or editorial digests.
Content Research Agents — one-shot (async)
Legacy MCP names: Orbit / keyword search. Creates is_recurring: false agents.
| Tool | Credits | What it does |
|---|---|---|
search_keywords | 50 (+100 DI) | Queue a one-shot research run. Auto-polls briefly (~25s); typical runs take 15–20 minutes (up to ~45). Expect a job_id and check later. |
list_keyword_searches | Free | List previous one-shot agents |
get_keyword_search_results | Free | Read slices by data_type: status (default), videos, slideshows, ads, outliers, analysis, trends, sounds |
Keywords & filtering. Send 3–7 specific multi-word phrases covering synonyms of the same concept. english_only defaults to true; set false for all languages (write keywords in the target language). data_intelligence_enabled adds +$1.00 for 43 AI fields per video/slideshow. At retrieval, filter with min_views / start_date / end_date / platforms / region (ISO-3166-1 alpha-2, beta) — never by narrowing collection at create time. Treat the run as fully ready only when finalized: true. Status partial_failure is usable data.
Content Research Agents — recurring (async)
Legacy MCP names: Comet / niche monitor. Creates is_recurring: true agents with a cadence.
| Tool | Credits | What it does |
|---|---|---|
create_niche_monitor | 50/run (+100 DI) | Create a scheduled agent (daily / weekly / monthly). First run starts immediately. |
list_niche_monitors | Free | List recurring agents |
get_niche_monitor_data | Free | Read by data_type: overview (default), videos, slideshows, ads, outliers, analysis, trends, sounds, hashtags, benchmarks, affinity (beta), similar (beta) |
update_niche_monitor | Free | Update name, keywords, cadence, platforms, intent, data intelligence, english_only, or reactivate |
delete_niche_monitor | Free | Soft-delete (reactivate via update_niche_monitor with is_active: true) |
get_niche_monitor_proposals | Free | List self-optimization proposals (keyword refreshes, collection widenings) |
get_niche_monitor_activity | Free | Decision / reflection log over time |
review_niche_monitor_proposal | Free | apply / dismiss / revert a proposal (first manual apply unlocks autopilot for the team) |
set_niche_monitor_autonomy | Free | suggest vs autopilot, or pause with cognition_enabled: false |
Recurring extras. Same language/region rules as one-shot. get_niche_monitor_data also serves niche-discovery slices (sounds, hashtags, benchmarks, affinity, similar) that one-shot reads don't. For outliers prefer order_by=weighted_score (or rising for velocity). Trends carry lifecycle status (new | rising | steady | fading) and a stable key across cycles.
Satellite — Creator, Video & Sound Intelligence (async)
| Tool | Credits | What it does |
|---|---|---|
lookup_creator | 50 (+50 for trends) | Full creator profile + analytics. Optional trend_analysis (forces deep fetch). Optional audience enrichment. |
batch_lookup_creators | 50 per creator | Look up up to 25 creators; returns per-creator job IDs |
analyze_video | 50 | Video outlier analysis against the creator's typical metrics |
lookup_sound | 50 (+50 for trends) | TikTok + Instagram sound deep-dive (YouTube not supported); optional AI trends |
get_satellite_run | Free | Re-read any paid satellite run by run_id — durable, never re-charged |
list_satellite_runs | Free | List past runs (filter by type, platform, date) |
Every paid Satellite run persists a run_id. Prefer listing / re-reading before spending again.
Tracking — Long-term Monitoring
| Tool | Credits | What it does |
|---|---|---|
track_creator | 25/cycle | Start recurring metrics collection + AI reports |
track_video | 25/cycle | Start recurring video tracking + AI reports |
list_tracked_items | Free | List tracked creators and/or videos |
get_tracking_report | Free | Latest AI report, metric snapshots, or full details |
list_creator_posts | Free | Posts with per-post metrics (TikTok duet/stitch flags) |
collect_creator_posts | Varies | On-demand collect: standard ($0.50 / 50), deep ($1.00 / 200), full ($2.00 / 500) |
get_posting_cadence | Free | Avg gap, posts per week/month, day-of-week distribution |
update_tracking_settings | Free | Pause / resume cycles, or change scrape_cadence (keeps history) |
untrack_creator | Free | Deactivate creator tracking (history kept; re-track restores) |
untrack_video | Free | Deactivate video tracking |
Pause with update_tracking_settings when you want to stop charges without losing the row; use untrack_* to deactivate entirely.
Audience — Demographics & Geography (cache-first)
| Tool | Credits | What it does |
|---|---|---|
get_creator_audience_demographics | Free | Cached age + gender + language for a tracked creator |
get_creator_audience_geography | Free | Cached top countries + cities |
refresh_creator_audience | 50 on cache miss | Cache-first refresh; charged only on miss. Auto-refunded on profile_only / INSUFFICIENT_SAMPLE |
Snapshots profile the creator's engaged audience (commenters), not raw followers. Every snapshot carries data_source, signal_breakdown, and confidence_level. Default cache window: 30 days. lookup_creator also accepts audience_demographics, audience_geography, and freshness_days for one-shot enrichment of untracked creators.
Sounds — Audio Intelligence
| Tool | Credits | What it does |
|---|---|---|
get_trending_sounds | 25 | Velocity-ranked sounds (videos_7d default). Filter by platform or commerce-safe |
get_breakout_sounds | 25 | Fastest-accelerating sounds off a small base (distinct from absolute volume) |
search_sounds | 10 | Fuzzy title search |
get_sound_details | 5 (+10) | Metadata + aggregate stats; resolve=true maps to canonical track via ISRC/Spotify (+$0.10 first time) |
get_sound_videos | 25 | Videos using a sound, sorted by views or publish date |
get_sound_usage_history | 5 | Daily usage time-series with deltas |
get_creator_sounds | 25 | Sounds owned by a creator with UGC metrics |
Sound data is also free via get_keyword_search_results / get_niche_monitor_data with data_type: "sounds". Use breakout for “what just took off,” trending for “what's biggest this week.”
Platform field availability: TikTok is richest (title, duration, cover, usage_count, commerce flag). YouTube has title, cover, owner. Instagram has title and owner_nickname. Unavailable fields return null.
Utility
| Tool | Credits | What it does |
|---|---|---|
check_job_status | Free | Poll any async job (agents, Satellite, batch, post collect) |
get_credit_balance | Free | Remaining balance and credit pricing |
Async Operations
Agent runs, Satellite lookups, video analysis, and post collection queue background work. MCP tools auto-poll for roughly 25 seconds, then hand back control:
- The tool queues the job and polls briefly
- If it finishes quickly, you get full results in one call
- If still running, you get a
job_id/job_type(and often a results-tool hint) - Use
check_job_statusor the matchingget_*tool later — the assistant should not busy-wait
Canonical done signal: finalized: true. Status "completed" alone can mean secondary AI jobs (analysis, intelligence) are still running — null analysis/intelligence fields mean “not yet,” not “no data.” Agent runs take ~15–20 minutes median (up to ~45 for broad runs with Meta ads). Treat partial_failure as usable data.
Webhook for agent completion: content_research_agent.run.completed (legacy orbit.run.completed / comet.run.completed still fire during the REST migration window).
Resources & Playbook
The MCP server exposes three read-only resources:
| URI | What it is |
|---|---|
virlo://docs/agent-playbook | Intent routing, virality scoring, intelligence semantics, audience trust, spend discipline — read before substantial research |
virlo://docs/api-overview | Tool catalog + recommended workflows |
virlo://docs/credit-costs | Per-tool credit table |
Same playbook on the web: Agent Playbook · plain text at /agent-playbook.txt.
Workflow Prompts
Four pre-built prompts guide multi-step research (tool names stay as above):
full_niche_analysis
- One-shot agent via
search_keywords - Review videos, outliers, analysis, trends
- Deep-dive top creators with
lookup_creator - Recurring agent via
create_niche_monitor - Actionable summary
Example: "Use the full_niche_analysis prompt for viral cooking content"
creator_deep_dive
lookup_creatorwith videos / outliers- Content pattern analysis
- Optional
track_creator
Example: "Run creator_deep_dive for @khaby.lame on TikTok"
trend_scout
get_emerging_trends+get_trends_digest- Top viral videos (optional
get_breakout_sounds) - Rising hashtags
- Actionable trend report
Example: "Use trend_scout to see what's trending across all platforms"
genre_monitor
- Recurring TikTok agent via
create_niche_monitor - Wait for
finalized: true - Free discovery slices: sounds / hashtags / rising outliers / benchmarks / affinity
- Genre brief
Example: "Use genre_monitor for progressive house"
Credit Costs
Creation costs credits; reads are free. Per-tool rates match the REST API — see Billing & Pricing and the MCP resource virlo://docs/credit-costs.
