Index / MCP servers / VarynForge

VarynForge MCP server

VarynForge is a remote MCP server that gives an AI agent 57 tools, among them accept_idea, add_article_suggestion, add_competitor_by_domain. It answers at https://app.varynforge.com/api/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 10 September 2026; the last check, on 19 October 2026, succeeded.

Status
Answering
Tools
57
Official
yes, served from varynforge.com
Reliability
6 of 6 checks
Response time
183 ms
Transport
streamable HTTP
Last checked
19 October 2026

SEO research SaaS exposed as 30+ MCP tools. Forge niche analysis, plans, and writer-ready briefs.

Description as the publisher wrote it.

The 57 tools VarynForge offers

ToolWhat it does
accept_ideaCommit 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
Inputs: projectId, ideaText, title, angle, searchIntent, relatedQueries
add_article_suggestionAdd 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.
Inputs: contentPlanId, projectId, title, intent, reasoning, context
add_competitor_by_domainAdd a competitor to a project by domain (e.g. example.com). Marks the competitor as important or ignored on creation.
Inputs: projectId, domain, importance, context
add_destinationAdd 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 belong
Inputs: projectId, state, type, name, context
add_radar_topicAdd 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 signalObservationI
Inputs: projectId, signalObservationId, topicIndex, angles, topicAngleTotal, context
check_ideaAttach 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, o
Inputs: projectId, suggestionId, context
create_article_suggestion_with_inputCreate 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 requi
Inputs: projectId, title, primaryKeyword, secondaryKeywords, searchIntent, targetAudience
create_content_plan_from_opportunitiesCreate 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 match
Inputs: projectId, context
create_projectCreate 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
Inputs: website, nicheDescription, originInput, originType, originDescription, extras
delete_article_suggestionDelete an article suggestion and its associated brief. Cascades to keyword and cluster links.
Inputs: id, context
download_brief_markdownGet 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 singl
Inputs: suggestionId, projectId, format, channel, context
expand_ideaScore 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_ide
Inputs: projectId, ideaText, context
expand_radar_topicExpand 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 p
Inputs: projectId, signalObservationId, topicIndex, customPov, context
generate_article_briefForge 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
Inputs: articleSuggestionId, projectId, force, channel, guidance, context
get_account_statusGet 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 da
Inputs: organizationId, context
get_article_briefGet 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 se
Inputs: suggestionId, compact, channel, context
get_article_suggestionGet 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
Inputs: suggestionId, context
get_changelogGet 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.
Inputs: context
get_competitor_detailGet a competitor company detail in a project context — domain, name, importance, top pages in the project SERPs, and top keywords they rank for.
Inputs: companyId, projectId, context
get_draft_statusRe-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 las
Inputs: suggestionId, format, context
get_instructionsGet the VarynForge agent guide — workflow paths (free vs paid), token-economy rules, walls and upgrade conversation conventions. Read this at session start.
Inputs: context
get_keyword_detailGet a keyword detail — pages ranking for it with positions and ownership, plus related keywords already tracked in the project.
Inputs: queryHash, projectId, context
get_lint_rubricGet 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 a
Inputs: suggestionId, channel, context
get_onboarding_guideDiagnose 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 th
Inputs: context
get_opportunity_detailGet 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).
Inputs: projectId, clusterId, context
get_page_dossierGet a page dossier — URL, title, project rankings, ownership. `headingOutline`, `targetKeywords`, and `contentAnalysis` populate for owned (asset-mapped) pages only.
Inputs: pageId, projectId, context
get_pitch_report_payloadAssemble 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
Inputs: runId, context
get_projectGet 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;
Inputs: projectId, context
get_project_assetGet the asset (website/product) associated with a project — URL, name, description, solution profile.
Inputs: projectId, context
get_project_overviewGet 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 artic
Inputs: projectId, context
get_research_statusPoll 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 |
Inputs: projectId, context
get_starting_point_reportGet 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
Inputs: projectId, context
get_write_handoffOne-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
Inputs: suggestionId, context
get_writer_system_promptGet 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 t
Inputs: channel, context
lint_draftSubmit 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
Inputs: suggestionId, draft, format, channel, waiveChecks, context
list_article_suggestionsList 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). U
Inputs: projectId, limit, cursor, status, context
list_competitorsList 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 a
Inputs: projectId, limit, importance, context
list_destinationsList 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 cap
Inputs: projectId, context
list_keywordsList keywords tracked for a project — text, difficulty, intent, volume bucket (no_traffic | long_tail | average | high). Paginated; supports sorting and intent filter.
Inputs: projectId, limit, cursor, sorting, filters, context
list_opportunitiesList 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
Inputs: projectId, goal, excludeInContentPlan, coverage, limit, cursor
17 more tools

list_organizations, list_pages, list_projects, list_radar_topics, mark_article_published, register_derived_asset, remap_asset, resync_asset_profile, send_feedback, set_competitor_importance, set_excluded_terms, set_opportunity_status, set_posting_cadence, start_research_run, update_article_status, update_asset_profile, update_niche

Add VarynForge to your AI client

Every block below points at https://app.varynforge.com/api/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http varynforge https://app.varynforge.com/api/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "varynforge": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://app.varynforge.com/api/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "varynforge": {
      "url": "https://app.varynforge.com/api/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "varynforge": {
      "type": "http",
      "url": "https://app.varynforge.com/api/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "varynforge": {
      "url": "https://app.varynforge.com/api/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "varynforge": {
      "serverUrl": "https://app.varynforge.com/api/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "varynforge": {
      "url": "https://app.varynforge.com/api/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: VarynForge
version: 0.0.1
schema: v1
mcpServers:
  - name: VarynForge
    type: streamable-http
    url: https://app.varynforge.com/api/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "varynforge": {
      "httpUrl": "https://app.varynforge.com/api/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "varynforge": {
      "type": "http",
      "url": "https://app.varynforge.com/api/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "varynforge": {
      "url": "https://app.varynforge.com/api/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fapp.varynforge.com%2Fapi%2Fmcp&type=streamable_http&id=varynforge&name=VarynForge

Is VarynForge up right now?

It answered our last check on 19 October 2026 in 183 ms. Over 6 checks since 10 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to VarynForge

Questions about VarynForge

Is there an official VarynForge MCP server?

Yes. It is published by varynforge.com and served from app.varynforge.com, the vendor's own domain: https://app.varynforge.com/api/mcp.

How many tools does VarynForge have?

57, as returned by the server's own tools/list on 11 September 2026: accept_idea, add_article_suggestion, add_competitor_by_domain, add_destination, add_radar_topic, check_idea, create_article_suggestion_with_input, create_content_plan_from_opportunities, and 49 more.

Is VarynForge down?

It answered our last check on 19 October 2026 in 183 ms. Over 6 checks since 10 September 2026 it answered 6.

How do I add VarynForge to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://app.varynforge.com/api/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does VarynForge need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: com.varynforge. Endpoint host: app.varynforge.com. ARD identifier: urn:air:com.varynforge:mcp:server. First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.