This is the reference your agent already reads from the server itself, laid out for you. Every tool, grouped by what it does, with one line on each.
The list below is built from the same catalog the /mcp page uses, so the two never drift apart. When a tool ships, both pages show it on the next build.
Every account sees every tool. Nothing is hidden on the free plan. Limits attach to your account's organization, not to the tool list: the same call works for everyone, and what differs is how much of it you can run.
Calls fall into three kinds:
- Free and uncapped. Reads such as
get_account_status, get_project_overview, get_draft_status, download_brief_markdown and get_starting_point_report. Call them as often as the work needs.
- Daily-capped. Forging briefs (
generate_article_brief, and every tool that creates a suggestion, since briefs forge automatically) is capped at 10 a day on free. check_idea runs one live Google search per keyword and is capped daily and monthly. lint_draft is capped daily on every plan. get_account_status reports what is left.
- Credit-consuming.
start_research_run spends one research credit. Your agent asks you before it starts one.
Projects + niche
| Tool | What it does |
|---|
create_project | Create a new project from a website URL or niche description. Returns immediately; niche analysis and asset mapping run asynchronously. |
list_projects | List all projects for the authenticated operator. |
list_organizations | List the organizations this account belongs to — role, plan, member count — plus pending invitations. Plans and credits are per-organization. |
get_project | Get one project's niche profile, target audience, and research status. |
get_project_asset | Get the asset (website / product) associated with a project. |
get_project_overview | At-a-glance read on a project — niche summary, keyword stats, top-priority suggestions. |
update_niche | Update a niche profile (name, industry, language, country). |
update_asset_profile | Correct the inferred asset profile — description, primary offer, benefits, differentiators, use cases. No re-crawl. |
resync_asset_profile | Re-read the project website and re-infer the asset profile from its current content. Rate-limited per site. |
remap_asset | Re-crawl the project website and refresh its owned pages. Use when mapping errored or pages look stale. |
set_posting_cadence | Set how many articles per week the operator publishes (1-14). Sizes the pitch report's 90-day sequence. |
Destinations
| Tool | What it does |
|---|
list_destinations | List where the operator publishes — website, YouTube, TikTok, Instagram, X, LinkedIn, local business — with per-destination lint and publish capabilities. |
add_destination | Add a detected or planned destination to a project. Shapes where briefs, drafts, and lint formats anchor; up to 10 per project. |
Research lifecycle
| Tool | What it does |
|---|
start_research_run | Trigger a research run (paid; one credit). |
get_research_status | Poll the latest run — runId, status, progress percent, elapsed seconds, last error. |
Keywords + opportunities
| Tool | What it does |
|---|
list_keywords | List keywords tracked for a project — text, difficulty, intent, volume bucket. |
get_keyword_detail | Get a keyword's ranking pages and related project keywords. |
list_opportunities | List ranked content opportunity clusters. Goal filters: fast_wins, high_intent, authority_building, competitor_gap. |
get_opportunity_detail | Get a cluster's top-20 keywords, top-10 pages, top-5 podium, linked suggestions. |
set_opportunity_status | Dismiss or restore an opportunity cluster. Dismissed clusters leave list_opportunities and the content-plan harvest until the next research run. |
set_excluded_terms | Set project-level exclusion terms — products or topics the operator does not sell. Down-weights matching keywords and drops them from the harvest; survives re-runs. |
Competitors
| Tool | What it does |
|---|
list_competitors | List companies tracked as competitors for a project. |
get_competitor_detail | Company detail in a project context — top pages, top keywords. |
set_competitor_importance | Mark a competitor important / default / ignored. |
add_competitor_by_domain | Add a competitor by domain (e.g. example.com). |
Pages
| Tool | What it does |
|---|
list_pages | List ranked pages tracked for a project. |
get_page_dossier | Page dossier — title, URL, target keywords, content analysis, rankings. |
Market radar
| Tool | What it does |
|---|
list_radar_topics | Latest emergent-topic radar snapshot — rising narratives with momentum, novelty, drivers, evidence, and how many suggestions each already spawned. |
expand_radar_topic | Expand one radar topic into 3-6 candidate article angles with title, intent, and positioning. Near-duplicates in the plan are flagged. No writes. |
add_radar_topic | Add chosen angles from a radar topic to the content plan as radar-born suggestions; each brief forges automatically. |
Ideas
| Tool | What it does |
|---|
expand_idea | Score a raw article idea against the niche — title, angle, intent, related queries, demand estimate, 0-100 niche fit. Writes nothing. |
accept_idea | Commit an expanded idea to the content plan as a brief-ready suggestion and forge its brief automatically. |
check_idea | Attach real search data to an existing suggestion — one live Google search per target keyword, volume bands, ranking pages. No credits; daily-capped. |
Content plan + suggestions
| Tool | What it does |
|---|
list_article_suggestions | List article suggestions in a project's content plan. |
get_article_suggestion | Get an article suggestion's details and brief availability. |
add_article_suggestion | Add a bare article suggestion (title + optional intent). |
create_article_suggestion_with_input | Free-tier path: create a brief-ready suggestion from the operator's own input (title, keywords, intent, audience, angle). |
delete_article_suggestion | Delete an article suggestion and its brief. |
update_article_status | Move an article through planned → generating_brief → brief_ready → out_for_writing → monitoring. |
create_content_plan_from_opportunities | Harvest top-30 opportunity clusters from a completed research run into a content plan. |
Brief generation + writer handoff
| Tool | What it does |
|---|
generate_article_brief | Forge a writer-ready brief. Idempotent: returns the existing brief without consuming quota; pass force: true to regenerate. Free: 10 / day. Paid: unlimited. |
get_article_brief | Get the full brief. Pass compact=true to drop referenceArticles (informational only); editorial fields stay populated. |
download_brief_markdown | Get the brief assembled as inline markdown (≤8K chars) for the host agent to use as a writing prompt. |
get_write_handoff | One-call writer handoff — compact payload with brief essentials, keywords, acceptance criteria, and lint instructions. |
Draft verification + publishing
| Tool | What it does |
|---|
get_lint_rubric | Verification rubric for a suggestion — submission format per channel, required vs advisory checks, exact numeric limits. Fetch before writing. |
lint_draft | Submit a draft (article, X thread, LinkedIn post, reels or YouTube script) for verification against its brief. Pass moves it to ready_to_publish; flag returns per-check detail. |
get_draft_status | Re-read a suggestion's stored drafts and latest lint receipts per destination without re-linting. Free and uncapped. |
mark_article_published | Record that an article went live at a URL — flips to published, writes the distribution ledger, pings IndexNow. |
register_derived_asset | Register a derivative (carousel PDF, social post, video, image) produced from an article for per-channel distribution and content-ROI reporting. |
Reports
| Tool | What it does |
|---|
get_starting_point_report | Free client-facing starting-point report from setup data — positioning, content inventory, competitor set, early rising-topic signals. No research run required. |
get_pitch_report_payload | Client-ready pitch report for a completed run — niche profile, competitor landscape, gap-only opportunity map, and a cadence-sized 90-day content sequence. |
Agent guidance
| Tool | What it does |
|---|
get_instructions | VarynForge workflow guide for the host agent (free vs paid paths, token-economy rules, walls). |
get_onboarding_guide | Diagnose where the operator is in their VarynForge journey — stage, setup checklist, ranked next actions. Call when list_projects is empty. |
get_account_status | Current plan, limits, locked tools, upgrade URL, plans summary. |
get_writer_system_prompt | Writer system prompt the host agent loads before drafting articles. |
send_feedback | File a bug, missing capability, friction point, or idea to the VarynForge team. Not for entitlement walls. |
get_changelog | URL of the product changelog — what shipped, newest first, in plain markdown. |
A good agent diagnoses before it prescribes. Three calls open every session:
get_account_status returns your plan, your quotas, and next_actions, the ranked queue of what to do next across your projects.
list_projects tells the agent whether you are new. An empty list leads to the third call; a full one means the agent briefs you on where you stand.
get_onboarding_guide returns your setup stage, a pitch fitted to it, and a checklist of what is done and what is pending.
The server is built so your agent spends few tokens. Four habits keep it that way:
get_project_overview replaces get_project, list_opportunities and list_article_suggestions when the agent only needs the current state.
get_article_brief with compact: true returns only the fields a writer uses.
download_brief_markdown hands a brief to a writer as one markdown file, instead of the suggestion and brief JSON.
- A research run takes about an hour. Your agent polls
get_research_status no more than once every 30 to 60 seconds and tells you when to expect it.
Entitlement walls lists every wall, field by field.
A capped or paid call that cannot run returns a structured payload with the reason, what is left, when it resets, and the free tools you can use instead; Free and paid explains what each plan unlocks.
When your agent hits a gap, a confusing result, or hears you wish for something, it files send_feedback with one of four kinds: bug, missing_capability, friction or idea. It asks you before it sends your own words as an idea. Blocked calls are not feedback; they work as designed.
Feedback gets no reply. The changelog is where the answer shows up. get_changelog returns the address of /changelog.md, the product changelog in plain markdown, newest first, each entry tagged feature, improvement or fix. Your agent reads it when you ask what is new, and in the days after it files a report, so it can tell you a gap has closed instead of filing the same report twice.