MCP server
VarynForge Official
com.varynforge/server
Checked 25 Oct 2026, 20:29 UTC · Connected to it and listed its tools
SEO research SaaS exposed as 30+ MCP tools. Forge niche analysis, plans, and writer-ready briefs.
Working at last checkVerified publisher: varynforge.comAbout 19,465 tokens per request once connected57 tools
https://app.varynforge.com/api/mcp
At a glance
- Type
- MCP server
- Publisher
- varynforge.com (verified by the MCP Registry)
- Status
- Working at last check
- Tools
- 57
- Token cost
- About 19,465 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 25 Oct 2026, 20:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http varynforge https://app.varynforge.com/api/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.varynforge] url = "https://app.varynforge.com/api/mcp"
Gemini CLI
{"mcpServers":{"varynforge":{"httpUrl":"https://app.varynforge.com/api/mcp"}}}
Cursor
{"mcpServers":{"varynforge":{"url":"https://app.varynforge.com/api/mcp"}}}
VS Code
{"servers":{"varynforge":{"type":"http","url":"https://app.varynforge.com/api/mcp"}}}
Antigravity
agy mcp add varynforge https://app.varynforge.com/api/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"varynforge","server_url":"https://app.varynforge.com/api/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"varynforge","server_url":"https://app.varynforge.com/api/mcp"}
Tools
accept_idea~389 tokens
Commit an expanded idea (from expand_idea) to the content plan as a brief-ready article suggestion. Stores the verbatim idea as provenance, lands the suggestion in generating_brief, and forges its brief automatically (free tier: queues past the daily cap). Returns the new suggestionId.add_article_suggestion~296 tokens
Add a bare article suggestion to a content plan (title + optional intent and reasoning). For richer input that produces a brief-ready suggestion, use create_article_suggestion_with_input.add_competitor_by_domain~238 tokens
Add a competitor to a project by domain (e.g. example.com). Marks the competitor as important or ignored on creation.add_destination~392 tokens
Add a destination to a project — where the operator publishes. Pass `type` (website | youtube_channel | instagram | tiktok | x | linkedin | local_business) and `name` with `state: 'detected'` for a destination that already exists and belongs to the operator (website name = the domain like yourdomainadd_radar_topic~535 tokens
Add selected angles from a radar topic to the content plan as radar-born article suggestions (provenance preserved; exact-title duplicates skipped). Angles come from expand_radar_topic; call list_radar_topics first to get signalObservationId + topicIndex. Auto-creates the content plan when the projecheck_idea~404 tokens
Attach real search data to one article idea that is already in the project — runs one live Google search per target keyword and returns volume bands and the pages currently ranking for each. Use after create_article_suggestion_with_input, or on any existing suggestion the operator wants judged on dacreate_article_suggestion_with_input~381 tokens
Create a brief-ready article suggestion from the operator's own input. Auto-resolves a default content plan; creates/links search-query rows for the keywords; returns suggestionId + contentPlanId. Free-tier compatible (no research run required).create_content_plan_from_opportunities~275 tokens
Create a content plan by harvesting the top-30 opportunity clusters from a completed research run. Auto-creates article suggestions linked to each cluster. Left out of the harvest: dismissed clusters (set_opportunity_status), keywords matching the project exclusion terms (set_excluded_terms), and clcreate_project~458 tokens
Create a new project — pass either a website URL or a niche description (or both). Returns projectId immediately; niche analysis and asset mapping run async. Poll get_project until niche.analysisStatus is ready. When the operator says whose site this is, pass siteRelation: mine (their own), client (delete_article_suggestionDeletes data · ~170 tokens
Delete an article suggestion and its associated brief. Cascades to keyword and cluster links.download_brief_markdown~367 tokens
Get a brief as inline markdown the host agent can use as a writing prompt. Pass format=markdown_inline, and `channel` (article default) to pick which of the suggestion’s per-channel briefs to render. Returns the brief assembled into a single markdown string capped at ~8K chars — markdown only; the sexpand_idea~246 tokens
Score a raw article idea against the project's niche without writing anything to the plan. Returns a title, angle, search intent, related queries, a coarse demand estimate, and a 0-100 niche-fit score. Pass the returned fields to accept_idea to commit the idea as a brief-ready suggestion.expand_radar_topic~364 tokens
Expand one radar topic (by signalObservationId + topicIndex from list_radar_topics) into 3-6 candidate article angles with title, intent, and editorial positioning; each angle is flagged when a near-duplicate already exists in the content plan. Optionally pass customPov for angles from a specific pogenerate_article_brief~570 tokens
Forge a writer-ready brief from an article suggestion. `channel` picks the brief template: article (default, SEO article outline), reels (hook/beats/shot list), youtube (retention beats/chapters), x (thread posts), linkedin (carousel slide deck: cover hook, one-idea slides, recap, CTA). A suggestionget_account_status~324 tokens
Get the operator account status — the organization whose plan/credits/limits this payload describes (plans and usage limits are per-organization; see list_organizations), current plan, available credits, brief quota state, the lint_draft daily verification cap (applies on every tier; check lint_drafget_article_brief~405 tokens
Get the full content brief for an article suggestion. A suggestion holds one brief per channel — pass `channel` (article default | reels | youtube | x | linkedin) to pick which. Every brief carries hookStatement (one verbatim-usable hook sentence naming the reader payoff); article briefs also carryget_article_suggestion~260 tokens
Get article suggestion details — metadata, cluster context, brief availability, registered derived assets (carousels, social posts), target keywords with volumes. Call get_article_brief for the full brief. Status semantics: generating_brief with briefQueuedAt set means the brief is QUEUED behind theget_changelog~160 tokens
Get the URL of the VarynForge product changelog — what shipped, newest first, in plain markdown. Fetch it when the operator asks what is new, and in the days after a send_feedback report to check whether the gap they hit has been closed.get_competitor_detail~255 tokens
Get a competitor company detail in a project context — domain, name, importance, top pages in the project SERPs, and top keywords they rank for.get_draft_status~382 tokens
Re-read an article suggestion's verification state without re-linting: the suggestion's single pipeline status plus, per destination `format`, the stored draft and the latest gate receipt (verdict, per-check detail, thresholds) from its last lint_draft submission. Free and uncapped — always use thisget_instructions~138 tokens
Get the VarynForge agent guide — workflow paths (free vs paid), token-economy rules, walls and upgrade conversation conventions. Read this at session start.get_keyword_detail~194 tokens
Get a keyword detail — pages ranking for it with positions and ownership, plus related keywords already tracked in the project.get_lint_rubric~324 tokens
Get the verification rubric for an article suggestion: the submission format for the channel (markdown | --- separated thread | post-with-slides | production script), required vs advisory checks, the exact numeric limits each check grades against (checkParams), plus the brief fields lint_draft readsget_onboarding_guide~238 tokens
Diagnose where the operator is in their VarynForge journey and get a guided setup path. Call when the operator asks to set up VarynForge, get started, or seems unsure what to do next — and always when list_projects returns empty. Returns the server-derived stage, a stage-tailored pitch to relay to tget_opportunity_detail~281 tokens
Get a cluster detail — top-20 keywords by score, top-10 ranked pages by position, top-5 competitor podium, linked article suggestions, and rawOpportunityScore (un-normalized; list_opportunities returns the 0-100 normalized version).get_page_dossier~258 tokens
Get a page dossier — URL, title, project rankings, ownership. `headingOutline`, `targetKeywords`, and `contentAnalysis` populate for owned (asset-mapped) pages only.get_pitch_report_payload~523 tokens
Assemble the client-ready pitch report payload for a completed research run — niche + solution profile, competitor landscape, ranked opportunity map holding GAPS ONLY (0-100 normalized; demand sized as volumeBucket buckets, no search-volume numbers by design; each entry carries overlapStatus net_newget_project~249 tokens
Get one project — its canonical name (operator-set, falling back to site brand then niche name), niche profile, target audience, current research status, and postsPerWeek (the operator’s publishing cadence, settable via set_posting_cadence; sizes the pitch report’s 90-day sequence). Address the projget_project_asset~174 tokens
Get the asset (website/product) associated with a project — URL, name, description, solution profile.get_project_overview~326 tokens
Get the at-a-glance read on a project — niche summary, keyword stats, nextActions (the ranked queue of what to do next in this project — offer its first entry when the operator asks "what now?"), and topPriorities: the ranked queue of article suggestions (best first — priorityScore desc; radar-bornget_research_status~340 tokens
Poll the latest research run for a project — runId, status, current pipeline phase, progress percent, elapsed seconds, and structured failure diagnostics when failed. failure carries failureClass (upstream_timeout | upstream_rate_limited | invalid_input | internal | unknown), the phase the run diedget_starting_point_report~330 tokens
Get the free starting-point report for a project — a client-facing document assembled from setup-time data: positioning (niche + market profile), the site and its current content inventory, the curated competitor set, and early rising-topic signals. Free on every plan, no research run required. markget_write_handoff~284 tokens
One-call writer handoff: returns a compact writing payload for an article suggestion (brief essentials, keywords, acceptance criteria, lint instructions). Compact by design — FAQs cap at 6 and long sections degrade to fit a deep-link budget; the FULL brief is get_article_brief and the full check lisget_writer_system_prompt~312 tokens
Get the writer system prompt for drafting one content type from its brief. The writer works with your Varyn account context: every channel prompt binds to the brief, its acceptance rubric, and the opportunity behind the brief fetched from the account, and degrades to generic writing advice without tlint_draft~909 tokens
Submit a draft for verification against its brief. Returns a pass/flag verdict with per-check detail. Pass moves the article to ready_to_publish; flag moves it to draft_ready for revision. `channel` (article | reels | youtube | x | linkedin) declares WHICH of the suggestion's per-channel briefs thelist_article_suggestions~445 tokens
List article suggestions for a project — title, status, priority, cluster, intent, source, publishedAt, scheduledFor, and a per-channel distributions rollup ({ channel, count, latestAt, scheduledFor } per channel the content went out on). Use distributions to spot gaps from the list alone — e.g. itelist_competitors~260 tokens
List companies for a project — marked competitors (important / default / ignored) and SERP-discovered companies (unmarked). Sorted important → default → unmarked → ignored, then by domain. Pass `importance` to filter to one bucket. Capped at 100.list_destinations~382 tokens
List the project's destinations — where the operator publishes (website, youtube_channel, tiktok, instagram, x, linkedin, local_business). Destination type ids are the `format` labels lint_draft stores drafts under. Each row carries its capabilities so you never cross-reference other tools: `briefChlist_keywords~339 tokens
List keywords tracked for a project — text, difficulty, intent, volume bucket (no_traffic | long_tail | average | high). Paginated; supports sorting and intent filter.list_opportunities~558 tokens
List content opportunity clusters sorted by opportunity score. Goal filters: fast_wins, high_intent, authority_building, competitor_gap. coverage filters by site-coverage status and defaults to ["gap","partial"] — clusters the site already COVERS (ranks top-10 for a cluster keyword) are hidden unleslist_organizations~222 tokens
List the organizations this account belongs to — id, name, your role (owner | admin | member), is_personal, plan, and member_count — plus pending invitations awaiting a response (accept them in the web app). Plans, credits, and usage limits are per-organization, and a project belongs to exactly onelist_pages~334 tokens
List ranked pages tracked for a project — URL, title, company, query count, ownership. Filter by ownership or company domain.list_projects~311 tokens
List all projects for the authenticated operator — paginated, sortable by createdAt, niche, or industry. `name` is the canonical project name (operator-set, falling back to site brand then niche name) — match operator references against it; `niche.name` is the market niche, distinct metadata. lastAclist_radar_topics~187 tokens
List the latest emergent-topic radar snapshot for a project: rising narrative topics (label, summary, momentum, novelty, drivers, evidence) with per-topic index and how many article suggestions were already added from each. Returns null when the project has no radar snapshot yet. Use expand_radar_tomark_article_published~576 tokens
Record that an article went live at a URL. Flips the suggestion to published, writes the distribution ledger row, stamps the Passport, and pings IndexNow. Call it only once the URL actually resolves — the IndexNow ping fires immediately, and a ping for a dead URL is wasted (search engines crawl, hitregister_derived_asset~538 tokens
Register a derived asset (LinkedIn carousel PDF, social post, video, image) produced from an article suggestion. Appends a distribution-ledger row so the suggestion shows everything it produced — the article plus its derivatives — for content-ROI reporting (get_article_suggestion returns them as derremap_asset~209 tokens
Re-crawl the project website and refresh its owned pages. Use when get_project_asset shows mappingStatus "error" or owned pages look stale. Rate-limited per site; returns an error naming the wait time if the cooldown is active.resync_asset_profile~310 tokens
Re-read the project website and re-infer the asset profile (name, description, primary offer, benefits, differentiators, use cases) from its current content. Use before rendering a report when get_pitch_report_payload flags assetProfile.syncedBeforeRun — the stored profile facts may have drifted sinsend_feedbackSends messages · ~422 tokens
File a note to the VarynForge team: a bug, a missing capability, a friction point, or an operator idea. Call when you hit something VarynForge cannot do, a confusing tool result, or the operator voices frustration or a wish. Whenever the task would benefit from a capability this tool list does not oset_competitor_importance~377 tokens
Mark a competitor important, default, or ignored. Important applies a 1.25× boost on opportunity scores for clusters where the competitor ranks top-10. Scores are then normalized 0-100 against the highest-scoring cluster, so other clusters may appear to drop in relative ranking even when their absolset_excluded_terms~290 tokens
Set the project-level exclusion terms — products or topics the operator explicitly does NOT sell (e.g. "wedding suite", "free template", "printing"). Keywords mentioning any term are down-weighted in opportunity scoring and dropped from the content-plan harvest, before results reach the operator. Reset_opportunity_status~350 tokens
Dismiss or restore an opportunity cluster. status=dismissed hides it from list_opportunities and the create_content_plan_from_opportunities harvest; status=default restores it. Dismissal lasts until the next research run rewrites the project clusters — for a durable "not my product" signal use set_eset_posting_cadence~213 tokens
Set how many articles per week the operator actually publishes (1-14). Sizes the pitch report’s 90-day content sequence; read back via get_project.postsPerWeek.start_research_run~218 tokens
Start a research run for a project — discovers keywords, evaluates competitors, and writes opportunity clusters. Consumes one credit. Returns `{ runId }`; poll get_research_status for progress. Returns `{ entitlement }` instead when the operator is on the free plan.update_article_status~520 tokens
Move an article through the production pipeline. Statuses: planned, generating_brief, brief_ready, drafting, draft_ready, reviewing, ready_to_publish, published. For the published transition use mark_article_published instead — it records the live URL, which Search Console outcome tracking keys off;update_asset_profile~369 tokens
Correct the inferred profile of the project asset — description, primary offer, benefits, key differentiators, use cases. Use when get_project_asset shows claims that contradict what the operator actually sells (profileStaleAt set, or the operator says so). Only the fields you pass are written; arraupdate_niche~284 tokens
Update a niche profile — name, industry, language, country, target customer, core problem, related terms. Use after the operator refines their market definition; omitted fields keep their current values.
Browse
Related MCP servers
- Nexscope
Ecommerce data MCP: Amazon, TikTok Shop, Walmart, Temu, Ozon, Shopee, 1688, Etsy, eBay & more - Niche: Your niche, followed for you
Read niche briefings, research news, and explore sourced story angles with your assistant. - Instilus small-business decision tools
Valuation, EBITDA, break-even, margin, rates, acquisition, competitor research, store audit. - KDP Niche Research
Kindle niche intelligence (demand/competition/BSR/revenue) gated by x402 USDC on Base. - XCut AI – Viral Content Research
Find viral posts, outliers, hooks and ads on Instagram, TikTok, YouTube and Facebook, then write. - Sleeper Hit Studio — Public Discovery
Browse published podcasts, video shows, and screenplays. Read-only public discovery. - Teclazo Mercadolibre
Mercado Libre keyword & competitor intelligence for AI agents across all 18 ML markets. - Rankwise
AI search visibility: see if ChatGPT, Perplexity, Claude and Gemini cite a brand, then win it back.
Badge for your README
[](https://aptlynx.net/servers/com.varynforge/server)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents