Skip to main content
Glama

onboard-mcp

Your dev environment, fixed by asking your AI assistant.

An MCP (Model Context Protocol) server that checks the things that silently break local development: wrong Node version, Docker not running, missing git config, missing .env keys, busy ports. Ask your AI assistant "is my environment ready?" and get a pass/fail report with the exact fix for everything that's broken.

CI License: MIT

Why

Every developer has lost an afternoon to "it works on my machine": the app fails because Node is one major version off, or the port is taken by a zombie process, or .env.local is missing a key that was added last sprint. On my team, environment setup issues cost every new developer days.

This server turns that debugging into one question in your AI chat:

You: run the doctor on my project, it needs ports 3000 and 5432

Assistant:

[PASS] node-version: Node v20.11.0 satisfies the project requirement (20).
[FAIL] docker: Docker is installed but the daemon is not running.
       Fix: Start Docker Desktop, or on Linux run "sudo systemctl start docker".
[PASS] git-config: Git is installed and user.name / user.email are configured.
[FAIL] env-files: .env.local is missing 1 key(s) from .env.example: REDIS_URL.
       Fix: Add the missing keys to .env.local. Ask a teammate or your secrets manager for the values.
[PASS] ports: All required ports are free: 3000, 5432.

2 failing, 0 warning(s). Fixes listed above.

Related MCP server: DevBoost MCP Server

Tools

Tool

What it checks

doctor

Runs everything below and returns one report

check_node_version

Current Node vs .nvmrc or package.json engines

check_docker

Docker CLI installed and daemon running

check_git_config

git installed, user.name / user.email set

check_env_files

.env / .env.local vs .env.example (compares keys only, never reads your values into the response)

check_ports

Whether the TCP ports your project needs are free

Requirements

  • Node.js 18 or newer — required for every client, since the server runs via npx onboard-mcp. Check with node --version; install from nodejs.org if needed.

That's the only universal dependency. npx fetches the published package automatically — no clone or build required. The Claude Code steps below additionally need the claude CLI (npm install -g @anthropic-ai/claude-code); other clients do not.

Quick start

Claude Code

Requires the Claude Code CLI. Install it first if you don't have it:

npm install -g @anthropic-ai/claude-code

Then register the server:

claude mcp add --scope user onboard -- npx -y onboard-mcp

(--scope user makes it available in every project; omit it to register for the current project only.) Verify with claude mcp get onboard.

Or clone and build locally:

git clone https://github.com/developerpankajdixit/onboard-mcp.git
cd onboard-mcp && npm install && npm run build
claude mcp add onboard -- node /absolute/path/to/onboard-mcp/dist/index.js

VS Code (GitHub Copilot agent mode)

Add to .vscode/mcp.json in your project:

{
  "servers": {
    "onboard": {
      "command": "npx",
      "args": ["-y", "onboard-mcp"]
    }
  }
}

Cursor

Settings → MCP → Add new global MCP server, or add to .cursor/mcp.json:

{
  "mcpServers": {
    "onboard": {
      "command": "npx",
      "args": ["-y", "onboard-mcp"]
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "onboard": {
      "command": "npx",
      "args": ["-y", "onboard-mcp"]
    }
  }
}

Then ask: "Run the doctor on /path/to/my/project, it needs ports 3000 and 5432."

Any other MCP-compatible client works the same way: point it at npx -y onboard-mcp over stdio.

Design notes

  • Fixes, not just failures. Every failing check returns the exact command to fix it, so the assistant can offer to run it.

  • Secrets never leave your machine. The env check compares key names only. Values are never included in any tool response.

  • Pure check functions. Every check is a plain async function with injectable dependencies, tested without mocking the MCP layer (23 unit tests, CI on Linux and macOS across Node 18/20/22).

Development

npm install
npm test          # vitest
npm run build     # tsc
npm run dev       # run the server from source

Roadmap

  • fix_* counterpart tools that apply the suggested fixes after confirmation

  • Configurable check list via an onboard.config.json in the project root

  • Database connectivity checks (Postgres, Redis) behind a flag

License

MIT. Built by Pankaj Dixit, based on an internal MCP onboarding tool that cut new-developer setup from 2 weeks to under 30 minutes.

Available Tools

6 tools
check_dockerA

Check whether Docker is installed and the daemon is running.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It transparently discloses that the tool checks both installation and daemon status, which is the core behavior. No side effects or additional context needed for such a simple check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that communicates the purpose without any filler. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what the tool checks but does not clarify what it returns (e.g., boolean, message, exit code). Since there is no output schema, this gap reduces completeness for an agent deciding whether to use or interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. Description adds no parameter information, which is appropriate as there are none to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool checks Docker installation and daemon status. It uses a specific verb-resource combination ('check Docker') and clearly differentiates from sibling tools like check_node_version or check_git_config.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for verifying Docker readiness but provides no explicit guidance on when to use this tool versus alternatives (e.g., check_ports). No context on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_env_filesA

Compare .env/.env.local against .env.example and report missing keys (keys only, values are never read into the response).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectDirNoAbsolute path to the project directory to check

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that only keys are compared and values are never read, providing privacy assurance and a clear behavioral trait beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence efficiently conveys purpose, scope, and key behavioral detail with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema or annotations, the description fully covers what the tool does and its constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter; the tool description does not add new semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool compares .env/.env.local against .env.example and reports missing keys, distinguishing it from sibling environment check tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage through purpose clarity; no explicit when-to-use or when-not-to-use instructions compared to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_git_configA

Check whether git is installed and user.name / user.email are configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description accurately describes the check's scope. However, it does not disclose what happens if git is missing or how results are returned (e.g., boolean exit code).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no waste, front-loaded verb and object.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no annotations, the description is sufficient for a simple check. Could mention return format, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description adds no parameter info, which is fine since schema already covers it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks git installation and user.name/user.email configuration, distinguishing it from sibling tools like check_docker or check_node_version.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context implies usage for verifying git setup, but there is no explicit guidance on when not to use it or comparison to alternatives, though siblings are distinct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_node_versionB

Check whether the current Node.js version matches the project's .nvmrc or package.json engines requirement.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectDirNoAbsolute path to the project directory to check

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear full responsibility. It only mentions 'check' without clarifying safety (read-only), failure modes (missing files), or side effects, leaving uncertainty for an AI agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 20 words with no redundancy. All words earn their place, and the purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description omits critical details: what the tool returns (e.g., true/false, error message) and how it handles missing .nvmrc or engines fields. This is insufficient for complete agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'projectDir' has a clear description in the schema and is contextually linked by the tool description to the project's requirement files. With 100% schema coverage, the description adds little beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'check' and the specific resource: whether the current Node.js version matches .nvmrc or package.json engines. It distinguishes well from sibling tools like check_env_files or check_ports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and description (check Node version compatibility), but there is no explicit guidance on when to use vs alternatives, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_portsB

Check whether the given TCP ports are free on localhost.

ParametersJSON Schema
NameRequiredDescriptionDefault
portsYesPorts the project needs, e.g. [3000, 5432]

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are missing, so description carries full burden. It does not disclose how 'free' is determined, timeout behavior, or what the output format is. Only the basic condition is mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One clear sentence with no wasted words. Front-loaded and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should explain return values. It does not. Additionally, it lacks details about the exact behavior of the check (e.g., what constitutes 'free'). For a simple tool, it is insufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the single parameter 'ports' with a description and constraints. Schema description coverage is 100%, so baseline is 3. Description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool checks if given TCP ports are free on localhost. The verb 'Check' and resource 'TCP ports' are specific, and it distinguishes from sibling tools like check_env_files or check_docker.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description only states what it does, without specifying when it's appropriate or providing exclusion criteria. Usage is implied by the name and purpose, but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

doctorB

Run every environment check (Node version, Docker, git config, env files, ports) and return a full report with fixes.

ParametersJSON Schema
NameRequiredDescriptionDefault
portsNoPorts the project needs, e.g. [3000, 5432]
projectDirNoAbsolute path to the project directory to check

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose all behaviors. It mentions 'fixes' but does not clarify if the tool actually applies fixes or only suggests them, which could be destructive. No mention of permissions, side effects, or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It efficiently conveys the tool's scope, though the phrase 'with fixes' could be clarified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of running multiple checks and no output schema, the description is somewhat complete but lacks details about return format, whether modifications are applied, and prerequisites like a valid project directory.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have clear descriptions in the schema (100% coverage). The description adds no further detail beyond summarizing the tool's purpose, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it runs all environment checks (Node version, Docker, git config, env files, ports) and returns a report with fixes, distinguishing it from sibling tools that only check individual aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a comprehensive check but does not explicitly guide when to use this tool versus the individual sibling tools, such as check_ports or check_node_version.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedcheck_docker
    • First observedcheck_env_files
    • First observedcheck_git_config
    • First observedcheck_node_version
    • First observedcheck_ports
    • First observeddoctor

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: env file comparison, port checking, node version, Docker, git config, and a comprehensive doctor. No ambiguity between tools.

Naming Consistency4/5

Five tools follow the 'check_' prefix pattern, but 'doctor' breaks the pattern. This is a minor inconsistency overall.

Tool Count5/5

6 tools is well-scoped for an environment onboarding server, covering essential checks without being excessive or too sparse.

Completeness4/5

Covers key environment checks like Node version, Docker, git config, env files, and ports. Minor gaps like package manager or OS checks, but sufficient for basic onboarding.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP (Model Context Protocol) server that inspects your local development environment and reports missing dependencies, version mismatches, and misconfigured environment variables to any MCP-compatible AI assistant. Works with Claude Desktop, Cursor, Gemini CLI, and any other client that supports stdio-transport MCP servers.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides tools for local development environment management and PostgreSQL optimization, including version checking, port process termination, SQL query analysis, and index suggestions.
    4
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables LLM clients to inspect local development environment, including Docker container health, pnpm workspace integrity, and stuck process diagnosis.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM clients to inspect local dev environments—Docker container health, pnpm workspace integrity, and stuck process detection—without manual terminal copy-pasting.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/developerpankajdixit/onboard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server