# VarynForge (com.varynforge/server): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.varynforge%2Fserver/versions/latest)
- Connected to: https://app.varynforge.com/api/mcp
- Scoring rules: v2
- Tools: 57
- Average: 48.7 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how VarynForge (com.varynforge/server)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 57 tools. Above 40, models choose less accurately.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `add_article_suggestion`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: contentPlanId, projectId, title, intent, reasoning.
  - Minor: String arguments with no constraint or example: title, intent, reasoning.
  - Minor: Says nothing about what it returns.
- `list_pages`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, limit, cursor, sorting, sorting[].id, sorting[].desc, filters, filters.companyDomain, filters.minQueryCount, filters.ownership.
  - Minor: String arguments with no constraint or example: filters.companyDomain.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument sorting[].desc is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `get_keyword_detail`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: queryHash, projectId.
  - Minor: String arguments with no constraint or example: queryHash.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `set_posting_cadence`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, postsPerWeek.
  - Minor: Says nothing about what it returns.
- `get_competitor_detail`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: companyId, projectId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: companyId, projectId. Name the tool or the place that returns it, or models look it up first.
- `list_keywords`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, limit, cursor, sorting, sorting[].id, sorting[].desc, filters, filters.intent.
  - Minor: The meaning of the boolean argument sorting[].desc is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `delete_article_suggestion`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `get_project_asset`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: projectId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `update_niche`: 38 / 100
  - Major: Arguments without a description: id, name, industry, language, country, targetCustomer, coreProblem, relatedTerms.
  - Minor: String arguments with no constraint or example: industry, language, country, targetCustomer, coreProblem.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `expand_radar_topic`: 39 / 100
  - Major: Arguments without a description: projectId, signalObservationId, topicIndex, customPov.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId, signalObservationId. Name the tool or the place that returns it, or models look it up first.
- `add_competitor_by_domain`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, domain, importance.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `create_content_plan_from_opportunities`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: projectId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `get_article_suggestion`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: suggestionId.
  - Minor: Says nothing about what it returns.
  - Major: It may be destructive, but destructiveHint is not set.
- `get_page_dossier`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: pageId, projectId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: pageId, projectId. Name the tool or the place that returns it, or models look it up first.
- `set_opportunity_status`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, clusterId, status.
  - Minor: Says nothing about what it returns.
- `add_destination`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, state, type, name.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `get_instructions`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_competitors`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, limit, importance.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `set_excluded_terms`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, terms.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `accept_idea`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, ideaText, title, angle, searchIntent, relatedQueries, demandEstimate, nicheFit, reasoning.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `create_article_suggestion_with_input`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, title, primaryKeyword, secondaryKeywords, searchIntent, targetAudience, angle, wordCountTarget, reasoning.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `get_lint_rubric`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: suggestionId, channel.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: suggestionId. Name the tool or the place that returns it, or models look it up first.
- `set_competitor_importance`: 43 / 100
  - Major: Arguments without a description: projectId, companyId, importance.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_write_handoff`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: suggestionId.
  - Minor: Required identifiers whose description does not say where the value comes from: suggestionId. Name the tool or the place that returns it, or models look it up first.
- `expand_idea`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, ideaText.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `get_opportunity_detail`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, clusterId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId, clusterId. Name the tool or the place that returns it, or models look it up first.
- `get_project`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: projectId.
  - Minor: Says nothing about what it returns.
- `get_writer_system_prompt`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: channel.
  - Minor: Says nothing about what it returns.
- `update_asset_profile`: 46 / 100
  - Major: Arguments without a description: projectId, description, primaryOffer, benefits, keyDifferentiators, useCases.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `list_article_suggestions`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: projectId, limit, cursor, status.
  - Major: It may be destructive, but destructiveHint is not set.
- `list_projects`: 47 / 100
  - Major: Arguments without a description: limit, cursor, sorting, sorting[].id, sorting[].desc.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument sorting[].desc is unclear.
  - Minor: Says nothing about what it returns.
- `download_brief_markdown`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: suggestionId, projectId, format, channel.
  - Minor: Required identifiers whose description does not say where the value comes from: suggestionId, projectId. Name the tool or the place that returns it, or models look it up first.
- `get_project_overview`: 50 / 100
  - Minor: Arguments without a description: projectId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `get_starting_point_report`: 50 / 100
  - Minor: Arguments without a description: projectId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `list_destinations`: 50 / 100
  - Minor: Arguments without a description: projectId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `list_radar_topics`: 50 / 100
  - Minor: Arguments without a description: projectId.
  - Minor: String arguments with no constraint or example: projectId.
- `list_opportunities`: 52 / 100
  - Major: Arguments without a description: projectId, goal, excludeInContentPlan, coverage, limit, cursor, activeMetaCluster.
  - Minor: The meaning of the boolean argument excludeInContentPlan is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `add_radar_topic`: 53 / 100
  - Major: Arguments without a description: projectId, signalObservationId, topicIndex, angles, angles[].title, angles[].intent, angles[].positioning, topicAngleTotal.
- `get_account_status`: 53 / 100
  - Minor: Arguments without a description: organizationId.
  - Minor: Says nothing about what it returns.
- `register_derived_asset`: 53 / 100
  - Major: Arguments without a description: suggestionId, kind, channel, scheduledFor, url.
- `get_changelog`: 55 / 100
  - Minor: Says nothing about what it returns.
- `list_organizations`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
- `create_project`: 57 / 100
  - Major: Arguments without a description: website, nicheDescription, originInput, originType, originDescription, extras, extras[].type, extras[].input, siteRelation, organizationId.
- `resync_asset_profile`: 57 / 100
  - Minor: Arguments without a description: projectId.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `get_draft_status`: 60 / 100
  - Major: Arguments without a description: suggestionId, format.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: suggestionId. Name the tool or the place that returns it, or models look it up first.
- `send_feedback`: 61 / 100
  - Major: Arguments without a description: kind, summary, detail, toolContext, projectId.
  - Minor: The description mentions none of its 3 or more arguments.
- `remap_asset`: 62 / 100
  - Minor: Arguments without a description: projectId.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `update_article_status`: 62 / 100
  - Major: Arguments without a description: id, status, scheduledFor, lastActor.
  - Minor: Says nothing about what it returns.
- `mark_article_published`: 63 / 100
  - Major: Arguments without a description: id, publishedUrl, publishedAt.
  - Minor: Says nothing about what it returns.
- `get_article_brief`: 64 / 100
  - Major: Arguments without a description: suggestionId, compact, channel.
  - Minor: The meaning of the boolean argument compact is unclear.
  - Major: It may be destructive, but destructiveHint is not set.
  - Minor: Required identifiers whose description does not say where the value comes from: suggestionId. Name the tool or the place that returns it, or models look it up first.
- `get_onboarding_guide`: 64 / 100
- `get_research_status`: 64 / 100
  - Minor: Arguments without a description: projectId.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId. Name the tool or the place that returns it, or models look it up first.
- `start_research_run`: 65 / 100
  - Minor: Arguments without a description: id.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `get_pitch_report_payload`: 67 / 100
  - Minor: Arguments without a description: runId.
  - Minor: Required identifiers whose description does not say where the value comes from: runId. Name the tool or the place that returns it, or models look it up first.
- `check_idea`: 68 / 100
  - Major: Arguments without a description: projectId, suggestionId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: projectId, suggestionId. Name the tool or the place that returns it, or models look it up first.
- `generate_article_brief`: 68 / 100
  - Major: Arguments without a description: articleSuggestionId, projectId, force, channel, guidance.
  - Minor: The meaning of the boolean argument force is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: articleSuggestionId, projectId. Name the tool or the place that returns it, or models look it up first.
- `lint_draft`: 68 / 100
  - Major: Arguments without a description: suggestionId, draft, format, channel, waiveChecks.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
