Evalúa qué tan bien están descritas las herramientas de un MCP server para agentes de IA mediante un linter de código abierto y una CLI.
También conocido como forecall/forecall-cli, forecall
- Stars
- 0
- Herramientas
- —
- Descargas, 30 días
- —
- Última versión
- —
- Último commit
- 18 oct 2026
- Licencia
- Apache-2.0
¿Qué es forecall-cli MCP?
forecall-cli es un MCP server. Evalúa qué tan bien están descritas las herramientas de un MCP server para agentes de IA mediante un linter de código abierto y una CLI.
Resumen generado a partir del README del proyecto
Acerca del MCP server de forecall-cli
La función principal de forecall-cli es evaluar qué tan bien entienden los agentes de IA las herramientas de tu MCP server. Esta herramienta de código abierto utiliza un linter para puntuar las descripciones de las herramientas basándose en seis criterios específicos, que incluyen el propósito, el contexto de uso, las descripciones de los argumentos y los valores de retorno. Ayuda a los desarrolladores a identificar problemas como descripciones demasiado breves, falta de restricciones o ausencia de ejemplos, lo que puede provocar errores en el agente.
Los desarrolladores pueden ejecutar el linter localmente usando el comando forecall a través de npx para analizar un archivo tools.json. La CLI proporciona feedback detallado sobre las puntuaciones de cada herramienta y problemas generales del servidor. Puede integrarse en pipelines de CI/CD mediante GitHub Actions para fallar automáticamente las builds si las puntuaciones caen por debajo de los umbrales específicos establecidos por las flags --fail-under o --min-tool-score. El proceso es privado, ya que nada sale de tu máquina durante el proceso de linting y no se requieren API keys para el uso local.
Qué puedes hacer con él
- 1Auditar descripciones de herramientasRevisa un archivo tools.json para ver qué tan bien puede interpretar un agente de IA las funciones de tu servidor.
- 2Identificar detalles faltantes en los argumentosEncuentra parámetros específicos que carezcan de descripciones, restricciones o ejemplos para la IA.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Cómo instalar forecall-cli MCP
Formatos verificados el 10 nov 2026Añadir a CursorAñadir a GooseInstalar forecall-cli MCP en Claude Code
$ claude mcp add forecall-cli -- npx -y forecallInstalar forecall-cli MCP en Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"forecall-cli": {
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}Instalar forecall-cli MCP en VS Code
.vscode/mcp.json
{
"servers": {
"forecall-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}Instalar forecall-cli MCP en VS Code CLI
$ code --add-mcp '{"name":"forecall-cli","type":"stdio","command":"npx","args":["-y","forecall"]}'Instalar forecall-cli MCP en Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"forecall-cli": {
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}Instalar forecall-cli MCP en Codex
$ codex mcp add forecall-cli -- npx -y forecallInstalar forecall-cli MCP en Codex config.toml
~/.codex/config.toml
[mcp_servers.forecall-cli] command = "npx" args = ["-y", "forecall"]
Instalar forecall-cli MCP en Gemini CLI
$ gemini mcp add -s user forecall-cli npx -- -y forecallInstalar forecall-cli MCP en Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"forecall-cli": {
"command": "npx",
"args": [
"-y",
"forecall"
]
}
}
}Verificaciones automáticas
Ejecutado 15 nov 2026Informe completo →Pasó nuestras verificaciones automáticas. Esto no es una auditoría de seguridad: lee el código y dale al servidor el acceso más limitado que necesite. Cómo funcionan las verificaciones
- Repositorio de origen vinculado y accesibleforecall/forecall-cli is public and reachablegithub.com/forecall/forecall-cli ↗Aprobado
- El paquete indica este repositorio como su origenforecall names forecall/forecall-cli as sourcenpmjs.com/package/forecall ↗Aprobado
- Procedencia de la compilación (atestación de Sigstore)Sigstore attestation for forecallnpmjs.com/package/forecall/v/0.8.1#provenance ↗Aprobado
- Licencia de código abierto (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-10-18github.com/forecall/forecall-cli ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo popular package one edit away from forecallAprobado
- No hay avisos críticos en el paquete ni en sus dependenciasNo verificado
- Sin instrucciones ocultas para el modelo0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo verificado
- El endpoint remoto responde al handshake de MCPNo verificado
README
Ver en GitHubForecall 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.
Preguntas sobre forecall-cli MCP
¿Cómo agrego forecall-cli MCP a Claude Code?
Ejecuta claude mcp add forecall-cli -- npx -y forecall en tu terminal. Añade --scope user para que esté disponible en todos los proyectos.
¿Cómo agrego forecall-cli MCP a Cursor?
Abre ~/.cursor/mcp.json y añade el servidor en mcpServers, usando la configuración de Cursor que se muestra en la sección de instalación de arriba.
¿Cómo puedo puntuar las herramientas de mi MCP server?
Puedes usar el comando npx forecall lint tools.json para ejecutar el linter en tu archivo de definición de herramientas.
¿La herramienta envía mis datos a un servidor externo?
No, el linter está diseñado para que nada salga de tu máquina.
¿Puedo usar esto en un pipeline de CI/CD?
Sí, puedes usar la GitHub Action de Forecall para puntuar tus herramientas en cada pull request y establecer puertas de calidad (quality gates).
¿Qué métricas se utilizan para puntuar una herramienta?
Cada herramienta se puntúa sobre 100 basándose en su propósito, contexto de uso, argumentos, valores de retorno, restricciones/efectos secundarios y ejemplos.