オープンソースのリンターとCLIを使用して、MCP serverのツールがAIエージェント向けにどの程度適切に記述されているかをスコア化します。
別名 forecall/forecall-cli, forecall
- スター
- 0
- ツール
- —
- ダウンロード数(30日間)
- —
- 最新バージョン
- —
- 最終コミット
- 2026年10月18日
- ライセンス
- Apache-2.0
forecall-cli MCPとは
forecall-cliはMCPサーバーです。 オープンソースのリンターとCLIを使用して、MCP serverのツールがAIエージェント向けにどの程度適切に記述されているかをスコア化します。.
プロジェクトのREADMEから生成された概要
forecall-cli MCP server について
forecall-cliの主な機能は、AIエージェントがMCP serverのツールをどの程度正確に理解できるかを評価することです。このオープンソースツールは、目的、使用コンテキスト、引数の説明、戻り値を含む6つの特定の基準に基づいて、ツールの説明をリンターでスコア化します。これにより、説明が短すぎる、制約が不足している、例が欠けているといった、エージェントのエラーにつながる可能性のある問題を開発者が特定するのに役立ちます。
開発者は、npx経由でforecallコマンドを使用して、ローカル環境でtools.jsonファイルを分析できます。このCLIは、個々のツールのスコアやサーバー全体の課題について詳細なフィードバックを提供します。また、GitHub Actionsを使用してCI/CDパイプラインに統合でき、--fail-underまたは--min-tool-scoreフラグで設定した閾値を下回った場合にビルドを自動的に失敗させることが可能です。リンターの実行プロセス中にデータがマシンから外部へ送信されることはなく、ローカルでの使用にAPIキーも不要なため、プロセスはプライベートに保たれます。
できること
- 1ツール説明の監査tools.jsonファイルをチェックして、AIエージェントがサーバーの機能をどの程度解釈できるかを確認します。
- 2不足している引数詳細の特定AIにとって説明、制約、または例が不足している特定のパラメータを見つけ出します。
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
forecall-cli MCPのインストール方法
フォーマット検証日 2026年11月10日Cursor に追加Gooseに追加Claude Codeにforecall-cli MCPをインストール
$ claude mcp add forecall-cli -- npx -y forecallCursorにforecall-cli MCPをインストール
~/.cursor/mcp.json
{
"mcpServers": {
"forecall-cli": {
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}VS Codeにforecall-cli MCPをインストール
.vscode/mcp.json
{
"servers": {
"forecall-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}VS Code CLIにforecall-cli MCPをインストール
$ code --add-mcp '{"name":"forecall-cli","type":"stdio","command":"npx","args":["-y","forecall"]}'Claude Desktopにforecall-cli MCPをインストール
claude_desktop_config.json
{
"mcpServers": {
"forecall-cli": {
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}Codexにforecall-cli MCPをインストール
$ codex mcp add forecall-cli -- npx -y forecallCodex config.tomlにforecall-cli MCPをインストール
~/.codex/config.toml
[mcp_servers.forecall-cli] command = "npx" args = ["-y", "forecall"]
Gemini CLIにforecall-cli MCPをインストール
$ gemini mcp add -s user forecall-cli npx -- -y forecallGemini settings.jsonにforecall-cli MCPをインストール
~/.gemini/settings.json
{
"mcpServers": {
"forecall-cli": {
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}自動チェック
実行日 2026年11月15日完全なレポート →自動チェックに合格しました。これはセキュリティ監査ではありません。コードを読み、サーバーに必要最小限のアクセス権を与えてください。 チェックの仕組み
- ソースリポジトリがリンクされており、アクセス可能forecall/forecall-cli is public and reachablegithub.com/forecall/forecall-cli ↗合格
- パッケージがこのリポジトリをソースとして指定forecall names forecall/forecall-cli as sourcenpmjs.com/package/forecall ↗合格
- ビルドの来歴 (Sigstore 証明)Sigstore attestation for forecallnpmjs.com/package/forecall/v/0.8.1#provenance ↗合格
- オープンソースライセンス (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗合格
- 過去1年以内にコミットまたはリリースありLast commit or release 2026-10-18github.com/forecall/forecall-cli ↗合格
- OpenSSF Scorecard未チェック
- パッケージ名が有名なパッケージに酷似していないNo popular package one edit away from forecall合格
- パッケージおよびその依存関係に重大な勧告なし未チェック
- モデルへの隠れた指示がない0 tool descriptions and the README read; no override phrases, credential paths or hidden characters合格
- 破壊的なツールがラベル付けされている未チェック
- リモートエンドポイントが MCP ハンドシェイクに応答未チェック
README
GitHubで見るForecall CLI
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.
{
"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 upcoming weather; for the current conditions, use get_current_weather instead. Example: city \"Tokyo\", days 3.",
"inputSchema": {
"type": "object",
"properties": {
"city": { "type": "string", "description": "The city's name, such as Tokyo." },
"days": { "type": "integer", "minimum": 1, "maximum": 7, "description": "How many days to return, 1 to 7." }
},
"required": ["city"]
},
"annotations": { "readOnlyHint": true }
}
]
}
Each tool is scored out of 100 on six parts, and the server as a whole is checked for too many
tools, near-identical descriptions and shared descriptions. Nothing leaves your machine. --json prints
the report as JSON. --fail-under <n> fails a CI job when the average is below n,
--min-tool-score <n> when any tool is, and --fail-on <severity> on any issue that severe. Get the
JSON from your own server with npx forecall dump, or paste it at
forecall.dev/en/lint for a page you can share.
| Package | npm | What it is |
|---|---|---|
packages/cli |
forecall |
The command: lint, dump, setup and hook |
packages/lint |
@forecall/lint |
The scoring, with no dependencies and no network |
How to use them: forecall.dev/en/docs/cli and each package's README. The Forecall service itself (the website, the dashboard, the API and the Failure KB's server) is not in this repository.
GitHub Action
Score your tools on every pull request, with the score and the findings in the job summary:
- uses: forecall/forecall-cli@v1
with:
file: tools.json # or url: https://… (a public Streamable HTTP server)
# or command: node build/index.js (your server over stdio)
min-tool-score: 40 # optional gates, as in the CLI
fail-on: critical
| Input | What it does |
|---|---|
file |
A tools/list JSON file, as forecall lint reads it |
url |
A public Streamable HTTP server to ask for its tools/list (forecall dump <url>) |
command |
A command that starts your server over stdio (forecall dump -- sh -c <command>) |
fail-under, min-tool-score, fail-on |
The CLI's gates: fail the step below an average, below a tool's score, or on a finding that severe |
lang |
en or ja for the report in the log (the job summary is in English) |
version |
The forecall version from npm (pinned by each release of the action) |
Give exactly one of file, url and command. The outputs are score (the average), tools
and report (the JSON report's path). It needs Node 22 or later on the runner, sends nothing to
Forecall and needs no key.
Development
The versions of Node.js and pnpm are in mise.toml.
mise install
pnpm install
pnpm check # Biome, the type checks and the tests of both packages and the action
pnpm formatformats and fixes what Biome can.pnpm --filter forecall buildwrites the command topackages/cli/dist/forecall.js; run it withnode packages/cli/dist/forecall.js lint <file>.node packages/lint/pack.ts <dir>andnode packages/cli/pack.ts <dir>make the tarballs npm would get, andscripts/try-package.sh <lint|cli> <tarball>installs one and runs it.LINT_VERSIONinpackages/lint/lint.tsis the version of the scoring rules. Any change that can give some input a different score, component, issue code or severity raises it, and updates the expected results inpackages/lint/fixtures/cases.json.
Releases
A pull request that raises a package's version starts the Release workflow when it lands on
main. The workflow stages every version npm does not have yet (@forecall/lint first) with
provenance, and each goes live only when a maintainer approves it on npm with 2FA. Maintainers can
also run the workflow by hand on main and pick one package.
The action is released apart from the packages: a maintainer publishes a GitHub Release v1.x.y
to the Marketplace and moves the v1 tag to it. A release that raises the action's pinned
forecall version says so, since a new rules version can move scores past a gate.
Contributing and security
See CONTRIBUTING.md. Report vulnerabilities privately, as SECURITY.md says, not in a public issue.
License
Apache-2.0. Copyright 2026 Mirai Studio, Inc. See LICENSE.
forecall-cli MCPのよくある質問
forecall-cli MCPをClaude Codeに追加するには
ターミナルでclaude mcp add forecall-cli -- npx -y forecallを実行します。すべてのプロジェクトで利用するには--scope userを追加します。
forecall-cli MCPをCursorに追加するには
~/.cursor/mcp.jsonを開き、上記のインストールセクションに示すCursor設定を使ってmcpServersの下にサーバーを追加します。
MCP serverのツールをスコア化するにはどうすればよいですか?
npx forecall lint tools.jsonコマンドを実行することで、ツールの定義ファイルに対してリンターを実行できます。
このツールはデータを外部サーバーに送信しますか?
いいえ、リンターはデータがマシンから外部へ送信されないように設計されています。
CI/CDパイプラインで使用できますか?
はい、Forecall GitHub Actionを使用することで、プルリクエストごとにツールのスコアを測定し、クオリティゲートを設定できます。
ツールのスコアにはどのような指標が使用されますか?
各ツールは、目的、使用コンテキスト、引数、戻り値、制約/副作用、および例の6つの項目に基づき、100点満点でスコア化されます。