Static linter · free · no sign-up

Know before you call.

An AI agent picks the tool to call by reading its name, description and parameters. Forecall scores those descriptions and shows what they leave out.

Paste your tools/list JSON. No sign-up needed.

Terminal · Node.js 22 or later

  1. npx forecall dump -o tools.json -- <start command>
  2. npx forecall lint tools.json

list_directory_with_sizes

Description

filesystem · description

Get a detailed listing of all files and directories in a specified path, including sizes. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is useful for understanding directory structure and finding specific files within a directory. Only works within allowed directories.+ when to use it

  • MajorNothing on when to use it
  • MinorNear-identical descriptions · list_directory · 0.86
  • MinorArguments without a description · path
  • MinorStrings with no constraint or example · path

list_directory_with_sizes

48Cloudy

list_directory

38Rain

filesystem · description

List the files and directories directly inside a path with each file's size, marked [FILE] or [DIR], sorted by name or by size (sortBy). Use it when sizes matter, such as finding the largest files; for names only, use list_directory, which returns less text. Returns one line per entry, followed by the totals. Only works within allowed directories.

  • When to use 0 → 10
  • Near-identical descriptions: resolved
  • MinorArguments without a description · path
  • MinorStrings with no constraint or example · path

list_directory_with_sizes

70Clear+22

list_directory

65Cloudy+27

The actual output of Forecall's static linter (scoring rules v2). The rewritten descriptions were proposed in modelcontextprotocol/servers#5071.

What we found in public MCP servers

We scored 8 well-known MCP servers, 126 tools in all. Their average scores ranged from 33 to 70 out of 100. Notion's official server alone has 57 pairs of tools whose descriptions are nearly the same.

See all 55 servers we scored
Servers scored
8
Tools
126
Range of average scores
33–70
Pairs with near-identical descriptions in Notion's server alone
57
Three of the eight servers, scored with the static linter (scoring rules v2). 70 and above: clear · 40–69: cloudy · below 40: rain
ServerToolsAverage scoreNear-identical descriptions
Notion API2433.0Rain57
Playwright2541.9Cloudy0
bhived-mcp1270.3Clear0

Beyond the linter

  • Evaluations

    Measure how real models choose

    Real models choose and call your tools, and Forecall measures how often they get it right. On the Pro and Team plans.

    1. CasesRequests such as "find the largest file", written for each tool
    2. ModelsClaudeGPTGemini
    3. MeasureWhether each picks the right tool and calls it with the right arguments
    How evaluations work
  • Failure KB

    Look up known failures before a call

    Known failures of MCP tool calls and their workarounds, for your agent to look up before and after a call. A record is verified only after agents of two other teams reproduce it.

    1. ReportAn agent sends a failure and its workaround
    2. ReproduceAn agent of another team reproduces it
    3. ReproduceAn agent of a second team does too
    4. VerifiedOnly failures that two teams reproduced
    Connect your agent

A few lines in CI.

Score your descriptions on every pull request, and stop on the lowest tool's score or the worst issue. Nothing is sent to Forecall, and no key is needed.

See the ActionRead the CLI docs

# add to your workflow's steps
- uses: forecall/forecall-cli@v1
  with:
    file: tools.json
    min-tool-score: 40
    fail-on: critical
# in any other CI
$ npx forecall@0.8 lint tools.json --fail-on critical

Start with one server.

Score your descriptions

Paste your tools/list JSON. No sign-up needed.