읽기 전용 CLI를 사용하여 로컬 머신이 프로젝트에 선언된 도구 및 런타임 요구 사항을 충족하는지 확인합니다.
다른 이름 Evalogical-Inc/devReady, devready-cli
- 스타
- 4
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 1.3.0
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
DevReady MCP란?
DevReady은(는) MCP server입니다. 읽기 전용 CLI를 사용하여 로컬 머신이 프로젝트에 선언된 도구 및 런타임 요구 사항을 충족하는지 확인합니다.
프로젝트 README에서 생성된 요약
DevReady MCP server 정보
DevReady는 개발자와 AI 코딩 에이전트가 로컬 개발 환경이 프로젝트의 특정 도구 및 런타임 요구 사항과 일치하는지 확인할 수 있도록 지원합니다. 단일 명령을 실행함으로써 사용자는 Python, Node.js, npm, Git 및 기타 필수 도구의 버전 불일치를 즉시 식별할 수 있습니다. 이 도구는 .nvmrc, .python-version, package.json, pyproject.toml과 같은 설정 파일을 읽어 선언된 요구 사항과 머신에 실제 설치된 버전을 비교합니다.
이 읽기 전용 CLI는 네트워크 호출을 수행하지 않고, 텔레메트리를 전송하지 않으며, 시스템의 어떤 파일도 수정하거나 삭제하지 않도록 안전하고 가볍게 설계되었습니다. Claude Code, Codex 또는 모든 MCP 클라이언트 내에서 사용하기에 이상적이며, AI 에이전트가 빌드 실패 원인을 추측하는 대신 실제 환경을 확인할 수 있도록 안정적인 JSON 스키마를 제공합니다. 개발자는 pipx, uvx 또는 npx를 통해 로컬에서 사용할 수 있으며, CI 파이프라인이나 pre-commit hook에 통합하여 설정 오류를 조기에 발견할 수 있습니다.
활용 사례
- 1환경 불일치 진단개발자는 어떤 도구 버전이 프로젝트 빌드 실패를 유발하는지 정확히 확인하기 위해 체크를 실행할 수 있습니다.
- 2CI에서 환경 검증 자동화플랫폼 팀은 요구 사항이 충족되지 않을 때 빌드를 즉시 중단시키기 위해 exit code와 SARIF 출력을 사용할 수 있습니다.
- 3AI 에이전트를 위한 실측 데이터 제공AI 코딩 에이전트는 명령을 실행하기 전에 로컬 설정을 확인하기 위해 MCP server를 사용할 수 있습니다.
- 4모노레포 설정 감사사용자는 대규모 저장소의 모든 워크스페이스 패키지를 재귀적으로 확인하여 일관성을 보장할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
DevReady MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 DevReady MCP 설치
$ claude mcp add devready -- uvx devready-cliCursor에 DevReady MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"devready": {
"command": "uvx",
"args": [
"devready-cli"
]
}
}
}VS Code에 DevReady MCP 설치
.vscode/mcp.json
{
"servers": {
"devready": {
"type": "stdio",
"command": "uvx",
"args": [
"devready-cli"
]
}
}
}VS Code CLI에 DevReady MCP 설치
$ code --add-mcp '{"name":"devready","type":"stdio","command":"uvx","args":["devready-cli"]}'Claude Desktop에 DevReady MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"devready": {
"command": "uvx",
"args": [
"devready-cli"
]
}
}
}Codex에 DevReady MCP 설치
$ codex mcp add devready -- uvx devready-cliCodex config.toml에 DevReady MCP 설치
~/.codex/config.toml
[mcp_servers.devready] command = "uvx" args = ["devready-cli"]
Gemini CLI에 DevReady MCP 설치
$ gemini mcp add -s user devready uvx -- devready-cliGemini settings.json에 DevReady MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"devready": {
"command": "uvx",
"args": [
"devready-cli"
]
}
}
}자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능evalogical-inc/devready is public and reachablegithub.com/evalogical-inc/devready ↗통과
- 패키지가 이 저장소를 소스로 명시devready-cli names evalogical-inc/devready as sourcepypi.org/project/devready-cli/ ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for devready-clipypi.org/project/devready-cli/ ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/evalogical-inc/devready ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from devready-cli통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음1 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기🩺 DevReady
"Works on my machine" - finally answered before it wastes your afternoon.
A zero-dependency, read-only CLI that checks whether your machine actually meets a project's declared requirements, and tells you exactly what to fix. Built for humans, CI, and AI coding agents (Claude Code, Codex, any MCP client).
One command, every requirement checked, exact fixes shown.
What is DevReady?
DevReady is a command-line tool that tells you whether your computer is set up to work on a project. Run devready check inside a project folder and it:
- Reads the versions the project says it needs (
.nvmrc,.python-version,package.jsonengines,pyproject.tomlrequires-python). - Compares them with what is actually installed on your machine (Python, Node.js, npm, Git, and so on).
- Reports PASS, WARN or FAIL for each item, with what to fix. The exit code is
1if a requirement is unmet, so it also works in CI.
It only looks. It never installs, changes or deletes anything, makes no network calls and sends no telemetry. Fixing the problem (for example switching Node versions) is up to you.
The problem
You clone a repo. npm install explodes. The README says "Node 20", your machine has 16, and the error message says nothing useful. Multiply by every new hire, student, CI runner and AI agent that burns tokens guessing why a build failed.
The fix
$ devready check
DevReady - Environment Check
[PASS ] Python 3.15.0 found
[PASS ] Git 2.52.0 found
[PASS ] Node.js 23.5.0 found
[PASS ] npm 11.14.1 found
[FAIL ] Node engines 23.5.0 does not satisfy package.json engines (>=99)
[WARN ] Python pin 3.15.0 does not satisfy .python-version (3.99)
4 passed, 1 warning, 1 failed
No changes were made to your system.
Output above is from a real run (pins deliberately set to impossible values to show failures). Exit code
1when a requirement is unmet, so it drops straight into CI.
Why DevReady
| 🎯 Project-aware | Reads what your project declares (.nvmrc, .node-version, .python-version, package.json engines, pyproject.toml requires-python) and compares it to what is installed. Not just "is Node installed?" |
| 🔒 Read-only by design | Never installs, edits or deletes. Never prints env values. No network. No telemetry. |
| 🤖 Agent-ready | Stable, versioned JSON schema, a Claude Code plugin, an MCP server and AGENTS.md. Agents check first instead of guessing. |
| 🛡️ Prompt-injection safe | Output contains only parsed versions and fixed text, never raw file or command output, so a hostile package.json can't smuggle instructions to your agent (tested). |
| 📦 Zero dependencies | Pure Python standard library. Installs in a second, runs anywhere Python 3.10+ does. |
| ⚙️ CI-friendly | Documented exit codes, JSON output, tested on Linux, macOS and Windows in CI. |
Who it's for
- 🧑🎓 Students & bootcamp learners: plain-language results instead of cryptic stack traces.
- 🧑💻 Developers switching projects: one command tells you what's off before you lose an hour.
- 👩🏫 Maintainers & educators: put
devready checkin your README's setup steps and cut "it doesn't work" issues. - 🏗️ CI & platform teams: fail fast with a clear preflight step.
- 🤖 AI-agent users: give Claude Code / Codex a ground-truth environment check.
Install
Install from PyPI:
pipx install devready-cli
# or run without installing:
uvx devready-cli check
From npm (runs the same PyPI release through uvx or pipx, so one of them must be installed):
npx devready-cli check
No Python tooling yet (for example a JavaScript-only machine)? uv installs without Python, and uvx then runs DevReady with no further setup:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
uvx devready-cli check
From a clone (for development):
git clone https://github.com/Evalogical-Inc/devReady && cd devReady
python -m venv .venv
# Windows: .venv\Scripts\Activate.ps1 macOS/Linux: source .venv/bin/activate
python -m pip install -e ".[dev]"
Usage
devready check # human-readable report for the current directory
devready check --quiet # only non-pass results (text format)
devready check --project ../app # inspect another project's pins
devready check --format json # machine-readable (see docs/schema.json)
devready check --recursive # monorepos: the root and every workspace package (see below)
devready explain docker.daemon # what a check means and how to fix it
devready check --format junit # or sarif, for CI
devready check --only project --skip project.ports # filter by id or prefix
devready fix --plan # suggested steps only; never runs them
devready check --format json > baseline.json # save a snapshot (commit it for a team baseline)
devready check --baseline baseline.json # show only what changed; fail only on new/worse failures
devready init > .devready.json # optional config: skip ids, require node/python, required env names
devready mcp # run as an MCP server over stdio
devready --version
| Exit code | Meaning |
|---|---|
0 |
No blocking failures |
1 |
A project requirement is not met |
2 |
Invalid usage (e.g. bad --project path) |
3 |
Internal error |
| Status | Meaning |
|---|---|
pass |
Requirement met |
warn |
Tool missing, or a soft pin (.nvmrc, .python-version) differs |
fail |
A hard requirement (engines, requires-python) is not met |
skip |
Not evaluated (tool absent, or requirement syntax not understood) |
error |
DevReady couldn't run the check |
JSON output
{
"schema_version": 1,
"results": [
{
"check_id": "project.node.engines",
"title": "Node engines",
"status": "fail",
"summary": "23.5.0 does not satisfy package.json engines (>=99)",
"suggestion": "Switch versions with your version manager (nvm, pyenv, mise, ...) or update the requirement.",
"docs_url": ""
}
]
}
Monorepos (--recursive)
devready check --recursive # the root and every workspace package
devready check --recursive --quiet # only packages with something to report
-- . (root) --
[PASS ] Python 3.12.1 found
[PASS ] Git 2.52.0 found
...
-- apps/web --
[FAIL ] Node engines 23.5.0 does not satisfy package.json engines (>=99)
7 passed, 1 warning, 1 failed across 4 packages
- Which packages:
package.jsonworkspacesandpnpm-workspace.yamlpackages:(dir,dir/*,dir/**). Without either, folders up to 3 levels deep that hold a pin file (package.json,pyproject.toml,.nvmrc,go.mod, ...).node_modules,.git,.venv,venv,distandbuildare skipped. - What runs where: tool versions, git identity and disk space once; pins,
.envkeys, Docker files and config per package, each with its own.devready.json. A result about the machine (Python on PATH, Docker daemon, ...) is shown once even when several packages trigger it. - Output: a text section per package.
--format jsonfollowsdocs/schema-multi.json:{"schema_version": 1, "projects": [{"path": "apps/web", "results": [...]}]}, where"."is the root and eachresultsitem has the usual shape. SARIF and JUnit name the package;--baselinetakes a saved--recursivereport and compares package by package. - Exit code
1when any package has afail. - Limits: at most 200 packages (stderr says when more were found). Only folder names made of letters, digits and
_ . @ + -count, symlinks are never followed, and negated patterns (!**/test/**) are ignored.
Use it in CI (GitHub Actions)
- uses: Evalogical-Inc/devReady@v1.3.0
with:
skip: project.ports # optional; also: only, format, project, recursive, version
To show findings in GitHub code scanning, save a SARIF report and upload it. Pin findings point at the file that declares the pin (package.json, .nvmrc, go.mod, ...); tool-only findings have no file.
- uses: Evalogical-Inc/devReady@v1.3.0
with:
format: sarif
output: devready.sarif
continue-on-error: true # still upload when a requirement is unmet
- uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: devready.sarif
The job fails when a declared requirement is unmet (fail). It installs devready-cli from PyPI, so flags added after your installed release (--only, --skip, junit/sarif, recursive: true) need a release that includes them; set version: to pin one.
Use it with pre-commit
With pre-commit 3.2.0+ and Python 3.10+, add this to your
.pre-commit-config.yaml:
repos:
- repo: https://github.com/Evalogical-Inc/devReady
rev: main # unreleased; replace with a containing release tag or full commit SHA
hooks:
- id: devready
args: [--skip, disk.space] # optional
The hook is unreleased; v1.3.0 does not contain it. For a reproducible configuration,
pin a full commit SHA or a later release tag that contains .pre-commit-hooks.yaml.
Install the hook for pushes, then try it manually:
pre-commit install --hook-type pre-push
pre-commit run devready --all-files --hook-stage pre-push
It runs devready check from your repository root before a push, even when no files
match, and does not pass filenames to the CLI. Unmet requirements block the push.
Use args for existing options such as --only, --skip and --baseline; relative
paths are resolved from your repository root.
pre-commit installs DevReady in an isolated Python environment. DevReady checks your
project's .venv or venv Python first; without one, it uses Python on PATH, which
pre-commit sets to include the hook environment. To check a specific project Python,
create its virtual environment before running the hook. To run before commits instead, set
stages: [pre-commit] on the hook and install with --hook-type pre-commit.
Add the badge
Tell contributors your project declares its requirements and can be checked with one command. Paste this into your README:
[](https://github.com/Evalogical-Inc/devReady)
Use it with AI coding agents
DevReady ships the same engine three ways, so your agent can verify the environment before it installs, builds or tests.
Claude Code - plugin with a skill, a /devready:doctor command and an MCP server (the MCP server needs uv; the rest works without it once devready-cli is installed):
/plugin marketplace add Evalogical-Inc/devReady
/plugin install devready --marketplace Evalogical-Inc/devReady
Any MCP client (Codex, Cursor, ...) - one read-only tool, check_environment (optional project path, recursive: true for monorepos). Also listed in the MCP Registry as io.github.Evalogical-Inc/devready:
# ~/.codex/config.toml (verify keys against your Codex version)
[mcp_servers.devready]
command = "uvx"
args = ["--from", "devready-cli", "devready", "mcp"]
Anything else - drop AGENTS.md in your repo, or copy skills/devready. Details in docs/agents.md.
Safety & privacy
- Fixed command lists with timeouts; no shell, no user-built commands.
- Project files are read only if regular files ≤ 1 MB (symlinks skipped) and are never executed.
- Environment variable values are never read into output. Nothing leaves your machine.
- A passing report does not guarantee your project builds.
See docs/security.md for the model, docs/versioning.md for what stays stable, docs/checks.md for every check, and SECURITY.md to report a vulnerability.
Limitations
- Checks today: Python, Git (+ identity set), Node.js, npm, project pins (
.nvmrc,.node-version,.python-version,.tool-versions,package.jsonengines,pyproject.tomlrequires-python),.env.examplevs.envkey names, Docker CLI + daemon, compose file validity and image platform (arm64 vs amd64) mismatch (only when the project has a Dockerfile/compose file), free disk space, Windows long paths, PowerShell policy, line endings, WSL version and Docker Desktop engine, macOS/Linux build tools, and (only when the project declares them) Go, Ruby, Java, Rust, .NET, pnpm, Yarn and Bun pins,.envnot git-ignored,node_modulesvs lockfile, and declared ports already in use. - The version-range matcher covers common npm/PEP 440 syntax; pre-releases and exotic ranges report
skiprather than guess. - The Python version compared is the project's (
.venv/venv, else the firstpythonon PATH), and the result names the interpreter checked. DevReady does not look at other virtualenv locations (poetry, conda, pyenv shims).
Roadmap
- Docker CLI + daemon reachability,
.tool-versions,.envkey-name diff, disk space, git identity,devready explain - Port-in-use checks, more ecosystems (Go, Rust, Java, Ruby, .NET, pnpm/yarn/bun), JUnit/SARIF output,
fix --plan, GitHub Action -
.devready.jsonconfig,--baselinesnapshots - Platform-specific checks (Windows, macOS/Linux build tools, WSL)
- Docker compose validity, image platform, Docker Desktop engine
- Exact version-switch commands in suggestions (first:
fnm) - Monorepo
--recursive(#43) - Org
--policyfile (#44), VS Code extension (#45) (see ROADMAP.md) - pre-commit hook (#32)
- Homebrew tap (#31)
- Standalone binaries
Have a setup problem DevReady should catch? Open an issue. Early feedback shapes the roadmap.
Contributing
PRs welcome, especially new read-only checks and platform fixes. Start with CONTRIBUTING.md and the technical plan; background research is in docs/research.md. Please follow the Code of Conduct.
ruff check . && ruff format --check . && pytest
About Evalogical
DevReady is built and maintained by Evalogical, a software company offering AI-enabled product engineering, custom software and IT services. Need help with a product or an engineering team? Talk to us.
License
MIT © Evalogical Inc
If DevReady saved you an afternoon, a ⭐ helps others find it.
DevReady MCP 질문
DevReady MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add devready -- uvx devready-cli를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
DevReady MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
DevReady가 시스템 설정을 변경하나요?
아니요, DevReady는 로컬 머신에 아무것도 설치, 수정 또는 삭제하지 않는 읽기 전용 도구입니다.
AI 코딩 에이전트와 함께 사용하기에 안전한가요?
네, 원시 명령 출력이 아닌 파싱된 버전과 고정된 텍스트만 출력하므로 프롬프트 인젝션으로부터 안전하도록 설계되었습니다.