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
npx forecall dump -o tools.json -- <start command>npx forecall lint tools.json
list_directory_with_sizes
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
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
| Server | Tools | Average score | Near-identical descriptions |
|---|---|---|---|
| Notion API | 24 | 33.0Rain | 57 |
| Playwright | 25 | 41.9Cloudy | 0 |
| bhived-mcp | 12 | 70.3Clear | 0 |
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.
- CasesRequests such as "find the largest file", written for each tool
- ModelsClaudeGPTGemini
- MeasureWhether each picks the right tool and calls it with the right arguments
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.
- ReportAn agent sends a failure and its workaround
- ReproduceAn agent of another team reproduces it
- ReproduceAn agent of a second team does too
- VerifiedOnly failures that two teams reproduced
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.
# 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