Atlas / MCP servers / forecall / forecall-cli

forecall-cliCAUTION

mcp/forecall/forecall-cli

Score how well an MCP server's tools are described for AI agents: the open-source linter and CLI behind forecall.dev

Verdict
CAUTION
Grade
B
Trust score
87 /100
Exposed tools
20 15r · 1w · 4d
Transport
streamable-http
License
Apache-2.0
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

The open-source parts of Forecall: the linter that scores how well an MCP server's tools are described for the AI agents that read them, and the forecall command that runs it on your machine and connects your AI clients to the Forecall Failure KB.

npx forecall lint tools.json
Forecall lint · tools.json
Scoring rules v2

Average score                42.5 / 100
Tools                        2
Near-identical descriptions  0

Across the server
No server-wide issues.

Tools

6 / 100  search
Purpose 6/20 · When to use 0/20 · Arguments 0/25 · Return value 0/15 · Constraints and side effects 0/10 · Examples 0/10
Major     restates_name         The description only restates the name (2 words).
Major     too_short             The description is too short (2 words).
Major     no_usage_context      Says nothing about when to use it, or when not to.
Major     param_no_description  Arguments without a description: q.
Minor     loose_string_param    String arguments with no constraint or example: q.
Minor     no_required           No `required` list, so every argument is optional.
Minor     no_return_info        Says nothing about what it returns.
Minor     no_constraints        No constraints, side effects, auth or rate limits described, and no annotations.

79 / 100  get_forecast
Purpose 17/20 · When to use 20/20 · Arguments 18/25 · Return value 7/15 · Constraints and side effects 7/10 · Examples 10/10
No issues.

The tools.json above

{
"tools": [
{
"name": "search",
"description": "Search records.",
"inputSchema": { "type": "object", "properties": { "q": { "type": "string" } } }
},
{
"name": "get_forecast",
"description": "Returns the weather forecast for a city for the next 7 days, with the high and low temperature in Celsius for each day. Use it when the user asks about
Read from source at commit 13ae4001165eOBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add lint -- npx -y @forecall/[email protected]
claude-desktop
{
  "mcpServers": {
    "lint": {
      "command": "npx",
      "args": [
        "-y",
        "@forecall/[email protected]"
      ]
    }
  }
}
03

Exposed tools (20)

15 read · 1 write · 4 destructive. Blast radius: 4 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
CreadC.
DELETE_users_iddestructiveRemove a user.
GET_users_idreadRead one user.
areadSame text.
breadSame text.\n
creadOther text.
dreadD.
delete_pagedestructiveDeletes a page.
delete_recorddestructiveDeletes a record.
fetchreadFetches a page.
fetch_pagereadFetches a page by its URL.
get_forecastreadReturns the weather forecast for a city for the next days.
get_userreadReturns a user.
opBreadB.
r1readFirst.
r2readSecond.
searchreadFinds pages.
search_usersreadSearch users by name. Use this when you know part of a name; use get_user for an id. Returns up to 20 users as JSON. Example: search_users(query=
update_pagewriteUpdate one page.
wipedestructiveDelete everything.
04

Trust audit

CAUTIONgrade B · trust 87/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (1 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
found

Findings (7)

MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/cli/src/sensor.test.ts:7
const SECRET = "sk-abcdefghijklmnop1234";
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
DELETE_users_id, delete_page, delete_record, wipe
Why it matters. 4 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
MEDIUMAuth / authz · mcp.remote_no_auth · CWE-287, CWE-862
streamable-http
Why it matters. a network transport with no auth environment variable found
Fix. require a token
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/bundle.test.ts:214
const url = `http://127.0.0.1:${(server.address() as AddressInfo).port}/mcp`;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/bundle.test.ts:332
base = `http://127.0.0.1:${(server.address() as AddressInfo).port}`;
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
packages/cli/src/input.test.ts:32
const result = await readInput(file("bom.json", `${TOOLS}`), noStdin);
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
packages/lint/fixtures/cases.json:86
"description": ""

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 13ae4001165efull audit observations/trust-audit/mcp-server/forecall__forecall-cli.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1113ae4001165eCAUTIONB87first audit
06

Questions

What is the forecall-cli MCP server?

Score how well an MCP server's tools are described for AI agents: the open-source linter and CLI behind forecall.dev

What tools does forecall-cli expose?

20 in total: 15 read-only, 1 that write, and 4 that can delete or overwrite (DELETE_users_id, delete_page, delete_record, wipe). Every one is listed on this page with its risk.

Is forecall-cli safe to connect to an agent?

With care. The audit graded it B (87/100) and found 7 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 4 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does forecall-cli need?

No credential environment variables were found in its source, so it appears to need none.

How does forecall-cli run?

It speaks streamable-http, so it runs as a service you connect to over the network. It is published on npm as @forecall/lint at 0.4.1.

How current is this page?

The grade is for one exact copy of the source (13ae4001165e), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement