nomad
nomad is a local MCP server for agentic remote development. It keeps source
code local while an AI agent syncs with rsync, runs commands over SSH, manages
long jobs in remote tmux, and pulls artifacts back into the project.
For Codex, use the project-scoped Streamable HTTP daemon. Stdio remains available for compatible clients and one-off use.
Features
- Multiple remote targets per local project.
- Project-local
.nomad.jsonconfiguration. - SSH preflight checks and read-only network diagnostics.
- Incremental
rsyncpush and guarded artifact pull. - Short remote commands and long-running
tmuxtasks. - Optional persistent reverse SSH tunnels.
- Path guards, dangerous-command checks, output limits, and secret redaction.
Requirements
- Python 3.11+,
ssh, andrsync - Key-based SSH access to remote targets
- Remote
tmuxwhen using long-running tasks
Daemon lifecycle management supports macOS, Linux, and other POSIX systems. Windows is not currently supported or tested.
Installation
Run the latest PyPI release without installing it globally:
uvx --from nomad-mcp nomad
Or install an isolated global command:
pipx install nomad-mcp
Codex Setup
nomad codex setup is an optional Codex configuration adapter, not a protocol
requirement. Any MCP host can use Nomad through the standard stdio or
Streamable HTTP transports without Codex configuration.
From the project you want Codex to control, run:
nomad codex setup --project "$PWD"
nomad codex doctor --project "$PWD"
The adapter starts or repairs a project daemon and writes only the trusted
project's .codex/config.toml. It never changes user-level Codex configuration
or project trust. Resolve any reported global conflict, then fully restart
Codex so it loads the project MCP entry.
Other MCP hosts can launch Nomad directly over stdio:
{
"mcpServers": {
"nomad": {
"command": "uvx",
"args": ["--from", "nomad-mcp", "nomad"]
}
}
}
Use nomad client-config to generate JSON or TOML for standard stdio or
Streamable HTTP clients. See Persistent MCP Daemon
for manual registration, lifecycle, security, and troubleshooting.
Quick Start
- Start and register the project daemon.
- Open Codex in the local project.
- Call
health, theninit_discover. - Select an SSH target and remote workspace.
- Save
.nomad.jsonwithinit_save_config. - Push code with
sync_push. - Use
run_remotefor short commands. - Use
task_startandtask_statusfor long jobs. - Pull artifacts with
sync_pull.
Use run_remote only for short synchronous work. Downloads, builds, training,
servers, and batch jobs belong in task_start. If a call with side effects
times out, inspect its status before retrying it.
Documentation
- Project overview
.nomad.jsonschema and examples- Tools and workflows
- Network and reverse tunnels
- Security model
- Context and output limits
- Workspace isolation
- Persistent MCP daemon
Safety
nomad executes commands over SSH and synchronizes files with rsync. Use it
only with trusted local projects and remote machines. Its guardrails reduce
risk, but cannot make an untrusted agent or host trustworthy.
Development
python -m pip install -e .[dev]
nomad doctor
python -m pytest
python -m compileall -q src tests
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nomad_mcp-0.2.3.tar.gz.
File metadata
- Download URL: nomad_mcp-0.2.3.tar.gz
- Upload date:
- Size: 71.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bfb457fd684269d1e046ded7010ae8707638daba1963533e7ceead58632e3bd
|
|
| MD5 |
cfca00cfea15169aee5cf608f7d1e9ff
|
|
| BLAKE2b-256 |
62b08469bb7e40945bcc64f6a0ee6693fa06597eec5dd8edd0a05bb9c5854c56
|
File details
Details for the file nomad_mcp-0.2.3-py3-none-any.whl.
File metadata
- Download URL: nomad_mcp-0.2.3-py3-none-any.whl
- Upload date:
- Size: 80.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1110af8687e02cf959648a2f0b1a7d6ca8fd1f5cb6bade3876108f02fef3959
|
|
| MD5 |
8e644d66f6638fe63a0d354a1be8f0f7
|
|
| BLAKE2b-256 |
27709dda4f51c8612811d157056c32b22b309a3ec2721154e3027a34dbf342f6
|