devenv-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CI_DOCTOR_BIN | No | Path to the ci-doctor binary | ci-doctor |
| DEVENV_SANDBOX | No | Sandbox mode: docker or local (local is not isolated) | docker |
| DEVENV_TASKS_DIR | No | Directory of tasks (task.toml + repo/ + grader/) | ./tasks |
| DEVENV_IMAGES_DIR | No | Base images directory; images/<name>/Dockerfile. Defaults to <tasks>/../images | |
| DEVENV_MAX_SESSIONS | No | Concurrent sandbox limit | 4 |
| DEVENV_ALLOW_GRADING | No | Set to 1 to register the run_grader tool | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Work on sandboxed software-engineering tasks. Typical flow: list_tasks, get_task, start_session, then run_in_sandbox as often as needed, and end_session when finished. Commands run inside an isolated workspace, not on the user's machine.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tasksA | List every available task with its id, title, category and difficulty. |
| get_taskA | Get the full prompt and metadata for one task. |
| start_sessionA | Create a fresh sandbox containing the task's starting repository. Returns a session_id for run_in_sandbox. Each session is independent; end it with end_session. |
| run_in_sandboxA | Run a shell command from the repository root inside a session's sandbox. Returns the exit code and combined stdout/stderr, truncated in the middle if very long. No network access. |
| end_sessionA | Destroy a session's sandbox and free its resources. |
| diagnose_ciA | Classify the failures in a CI log or JUnit XML report (flaky test, dependency conflict, timeout, compile error, assertion, ...) and suggest a next step. Uses the ci-doctor CLI. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
The task-browsing pair (list_tasks/get_task) and the sandbox lifecycle trio (start_session/run_in_sandbox/end_session) are clearly delineated by resource and action. diagnose_ci sits in a slightly separate domain (CI log analysis) but its description makes its purpose distinct from run_in_sandbox.
All names use snake_case verb_noun form (list_tasks, get_task, start_session, run_in_sandbox, end_session, diagnose_ci). No mixing of conventions or vague bare verbs.
Six tools is a tight, well-scoped set that covers task discovery, sandbox execution lifecycle, and CI diagnosis without redundancy.
The core workflow (find task, start sandbox, run commands, end sandbox, diagnose failures) is fully covered. Minor gaps exist: no session status/list tool and no explicit submit/evaluate step to confirm a solution, though the latter may be out of scope.