mcpField
D
DevReady

DevReady

Local
devready-ten.vercel.appDeveloper Tools3Updated 2d ago

About DevReady

DevReady is a read-only CLI for checking project development environments, aimed at developers, CI, and coding agents. It compares declared version requirements with installed tools and produces automation-friendly reports without changing the machine or making network calls.

Key features

  1. 01Checks project-declared version requirements
  2. 02Compares installed tool versions
  3. 03Text, JSON, JUnit, and SARIF output
  4. 04CI exit codes and GitHub Action
  5. 05Read-only checks with no network calls

Use cases

  1. 01Check the environment after cloning a project
  2. 02Preflight project requirements in CI
  3. 03Have a coding agent verify the environment before building

MCP support

DevReady provides an MCP server with the read-only `check_environment` tool for MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"evalogical-inc-devready": {
"command": "uvx",
"args": [
"devready-cli"
]
}
}
}
Run commanduvx devready-cli

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypidevready-cli1.2.0

Tools

1

Saved tool list · updated 4d ago

ParameterTypeRequiredDescription
projectstringNoProject directory (default .)

Details

From the project README

🩺 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).

CI PyPI DevReady Website License: MIT Python 3.10+ Dependencies: 0 Status: stable


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:

  1. Reads the versions the project says it needs (.nvmrc, .python-version, package.json engines, pyproject.toml requires-python).
  2. Compares them with what is actually installed on your machine (Python, Node.js, npm, Git, and so on).
  3. Reports PASS, WARN or FAIL for each item, with what to fix. The exit code is 1 if 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)

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 1 when a requirement is unmet, so it drops straight into CI.

Why DevReady

🎯 Project-awareReads 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 designNever installs, edits or deletes. Never prints env values. No network. No telemetry.
🤖 Agent-readyStable, versioned JSON schema, a Claude Code plugin, an MCP server and AGENTS.md. Agents check first instead of guessing.
🛡️ Prompt-injection safeOutput 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 dependenciesPure Python standard library. Installs in a second, runs anywhere Python 3.10+ does.
⚙️ CI-friendlyDocumented 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 check in 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

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 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 codeMeaning
0No blocking failures
1A project requirement is not met
2Invalid usage (e.g. bad --project path)
3Internal error
StatusMeaning
passRequirement met
warnTool missing, or a soft pin (.nvmrc, .python-version) differs
failA hard requirement (engines, requires-python) is not met
skipNot evaluated (tool absent, or requirement syntax not understood)
errorDevReady 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": ""
    }
  ]
}

Use it in CI (GitHub Actions)

- uses: Evalogical-Inc/devReady@main   # pin a release tag once published
  with:
    skip: project.ports                  # optional; also: only, format, project, version

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) need a release that includes them; set version: to pin one.

Add the badge

Tell contributors your project declares its requirements and can be checked with one command. Paste this into your README:

[![DevReady](https://img.shields.io/badge/DevReady-%E2%9C%93%20ready-2ea44f)](https://github.com/Evalogical-Inc/devReady)

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. 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.json engines, pyproject.toml requires-python), .env.example vs .env key names, Docker CLI + daemon (only when the project has a Dockerfile/compose file), free disk space, and (only when the project declares them) Go, Ruby, Java, Rust, .NET, pnpm, Yarn and Bun pins, .env not git-ignored, node_modules vs lockfile, and declared ports already in use.
  • The version-range matcher covers common npm/PEP 440 syntax; pre-releases and exotic ranges report skip rather than guess.
  • The Python version compared is the interpreter running DevReady, not necessarily your project's virtualenv.

Roadmap

  • Docker CLI + daemon reachability, .tool-versions, .env key-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.json config, --baseline snapshots
  • Platform-specific checks (see ROADMAP.md)
  • 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 . && 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.