Skip to main content

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.json configuration.
  • SSH preflight checks and read-only network diagnostics.
  • Incremental rsync push and guarded artifact pull.
  • Short remote commands and long-running tmux tasks.
  • Optional persistent reverse SSH tunnels.
  • Path guards, dangerous-command checks, output limits, and secret redaction.

Requirements

  • Python 3.11+, ssh, and rsync
  • Key-based SSH access to remote targets
  • Remote tmux when 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

  1. Start and register the project daemon.
  2. Open Codex in the local project.
  3. Call health, then init_discover.
  4. Select an SSH target and remote workspace.
  5. Save .nomad.json with init_save_config.
  6. Push code with sync_push.
  7. Use run_remote for short commands.
  8. Use task_start and task_status for long jobs.
  9. 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

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

nomad_mcp-0.2.2.tar.gz (71.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nomad_mcp-0.2.2-py3-none-any.whl (80.3 kB view details)

Uploaded Python 3

File details

Details for the file nomad_mcp-0.2.2.tar.gz.

File metadata

  • Download URL: nomad_mcp-0.2.2.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

Hashes for nomad_mcp-0.2.2.tar.gz
Algorithm Hash digest
SHA256 41a926f186eeb3355481e0d9b6e819f84cf6b9f94af71d9f7333f9d54c3cdbb6
MD5 6c90cd8aa26803f0865c8dec434f55d3
BLAKE2b-256 aad0be791e669502f9d82cb27d1baca375e6ecfa2af6d1b7a85977a3fa3af29f

See more details on using hashes here.

File details

Details for the file nomad_mcp-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: nomad_mcp-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 80.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for nomad_mcp-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0e53393c8a8388d1d26013d0bc0e3505f76ab5056fc07a48cf6eccd698ca4ad4
MD5 105d6f7ee47b5ec581a5ddadd2884bb7
BLAKE2b-256 3822f8260bed82332e165901aa2b18fa7bc63d0afffc4c083fb908384834a9de

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

2 files

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page