Codex ServerOps MCP

io.github.cyyprezz由 GitHub 帳號 cyyprezz 發布v0.1.0更新於 Oct 24, 2026

Stateful Windows OpenSSH server operations for Codex with local credential handling.

概覽

AI 產生的概覽

讓助理透過 Windows OpenSSH 在你指定的 Linux 伺服器上執行具狀態的 Bash 工作階段,提供明確的設定檔、結構化檔案工具與本機可見的憑證輸入視窗。

可以做什麼
  • 管理明確的伺服器設定檔,並在不把憑證放進對話的前提下建立或恢復工作階段
  • 在保留工作目錄與 shell 環境的工作階段中執行完整命令,回傳結束碼、耗時與截斷狀態
  • 以游標讀取、輸入、中斷、調整大小與狀態查詢來操作互動式終端機
  • 在設定的根目錄內列出、讀取、搜尋、計算雜湊、寫入、套用修補、重新命名、建立與刪除 UTF-8 文字檔,可選用 SHA-256 前置檢查
  • 透過獨立的本機可見視窗處理 OpenSSH 驗證、主機金鑰確認與引導式 sudo,並保留去識別化的本機稽核記錄
適用情境
適合在 Codex 或 Claude Code 中反覆操作同一批 Linux 伺服器,需要持續的 shell 狀態、可審查的結構化檔案修改與明確證據,而不是一次次執行單一 SSH 命令。適用於你已自行管理的伺服器上的診斷、專案工作與受控變更。
執行需求
Windows 10 或 11、Windows OpenSSH 用戶端、Python 3.12 與 uv/uvx;此套件以 stdio 在本機執行。需要一個可透過 SSH 登入且具備 Bash 的 Linux 帳號,結構化檔案工具還需常見命令列工具。伺服器設定檔透過本機助理視窗建立;未宣告任何 API 金鑰或環境變數。
安裝前請注意
屬於 alpha 階段軟體:請先使用可丟棄或非生產帳號,並收緊 Linux 權限。Shell 命令保留 SSH 使用者的真實權限,allowed_roots 只約束結構化檔案工具。檔案工具可寫入、套用修補、重新命名與刪除遠端路徑。結果不確定的變更會回報為 outcome_unknown 且不會自動重試,需以唯讀方式核實。憑證與 sudo 輸入請在本機視窗填寫,勿放入對話或支援請求。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Codex ServerOps MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ServerOps

[CI] [PyPI] [Python] [License]

Operate the Linux servers you choose from Codex or Claude Code—through normal conversation, without installing a ServerOps agent on them.

ServerOps keeps useful Bash state between operations, returns structured evidence, and opens visible local windows when OpenSSH or sudo needs input. It is for freelancers, agencies, support teams, project owners, and operators who need reliable server work without living in an SSH terminal.

Three promises

Easy to start

Thin Codex and Claude Code plugins connect to one shared ServerOps core. A guided local assistant creates explicit server profiles without putting credentials into chat.

Easy to operate

Ask for an outcome in normal language. ServerOps keeps the working directory and shell environment in a held Bash session, supports interactive terminal work, and returns bounded, structured results instead of an uncontrolled wall of terminal text.

Reliable when outcomes matter

Sessions belong to a local broker-owned worker rather than the disposable MCP process. If the result of a remote mutation is uncertain, ServerOps reports outcome_unknown and never retries it automatically. Linux permissions, explicit profiles, visible authentication, controlled elevation, hash preconditions, and a redacted local audit form the trust layer.

See it in action

These are realistic prompts for the eight tools available today:

text
List my ServerOps profiles. Do not connect to a server or change anything.
text
Use the customer-web profile. Start read-only, identify the host and current user, then explainwhy the service is unhealthy. Narrow the diagnosis with evidence instead of dumping every log.
text
Open the project profile, enter /srv/my-app, inspect the current Git and Compose state, and keepthe session open so we can continue from the same directory.
text
Read /srv/my-app/.env.example with the structured file tool. Propose a minimal change and show methe observed SHA-256, but do not apply anything until I approve it.

See the step-by-step reproducible demo for expected evidence and safe boundaries.

Available today

  • Explicit profiles and a visible local profile assistant.
  • Broker-owned, stateful Bash sessions with completed-command and interactive-terminal modes.
  • Rediscovery after an MCP-client restart when the optional managed broker task is installed and the broker, worker, and Bash remain alive.
  • Explicit unknown-outcome errors with no automatic retry of uncertain mutations.
  • Bounded structured UTF-8 text operations inside configured roots, with optional SHA-256 preconditions for edits.
  • Visible local OpenSSH authentication and host-key decisions, plus guided sudo and optional root sessions.
  • Redacted local JSONL audit events without remote output or file contents.
  • One eight-tool MCP core with thin Codex and Claude Code wrappers.
  • Automatic, idempotent local bootstrap on first MCP start.
  • A native Claude Code marketplace and plugin beside Codex.
  • No ServerOps agent or daemon installed on the Linux server.

The current runtime is Windows-first and uses Windows OpenSSH to reach Linux. The detailed tool reference defines the exact operations and schemas.

Codex quickstart

Install the repository marketplace and plugin. The pinned 0.1.1 MCP creates its own local state on first start; no prior setup command is required:

powershell
codex plugin marketplace add cyyprezz/codex-serverops-mcpcodex plugin add codex-serverops-mcp@serverops-codex

Start a new Codex task. Do not add a separate user-wide [mcp_servers.serverops] block when using the plugin. If a previous installer created that alternative block, preview its removal with serverops-install codex-config --remove, then repeat with --apply only after review. This keeps profiles and audit data. Begin without contacting a server:

text
List my ServerOps profiles. Do not create, edit, remove, test, or connect to a profile. If nosuitable profile exists, wait for me to provide non-secret suggestions before opening the visibleprofile assistant. Credentials and host-key decisions belong only in the local ServerOps window.

Claude Code quickstart

The Claude Code wrapper uses the same pinned 0.1.1 runtime and client-neutral skills:

powershell
claude plugin marketplace add cyyprezz/codex-serverops-mcpclaude plugin install serverops@serverops-claude

If the GitHub shorthand requires an SSH key that is not configured, add the marketplace through HTTPS instead:

powershell
claude plugin marketplace add https://github.com/cyyprezz/codex-serverops-mcp.git

Start a new Claude Code session (or reload plugins) and use the same safe first prompt.

Automatic local bootstrap

Version 0.1.1 starts without a separate setup command. MCP, broker, setup, check, Doctor, and update share one idempotent bootstrap that prepares only ServerOps-owned local state: the app, configuration, runtime, audit, migration, and status paths for the current user.

The bootstrap does not edit Codex or Claude configuration, install a Scheduled Task, create a profile, contact a server, request administrator rights, or overwrite an unmanaged file. The visible profile assistant remains the first possible server contact.

The explicit serverops-install setup command remains compatible and idempotent for maintenance and for previewing the optional broker task; it is no longer a plugin prerequisite.

Optional installer and broker task

The version-pinned installer can check the shared runtime or a client path:

powershell
uvx --from "codex-serverops-mcp==0.1.1" serverops-install check --client coreuvx --from "codex-serverops-mcp==0.1.1" serverops-install doctor --client claude

doctor --client codex also checks the alternative installer-managed user configuration. A plugin-only Codex installation can therefore warn that this optional block is absent; that warning does not prove the plugin is broken.

Install the managed current-user broker task only when live sessions must be reliably rediscovered after an MCP client process restarts. Preview first, then apply explicitly:

powershell
uvx --from "codex-serverops-mcp==0.1.1" serverops-install setup --broker-taskuvx --from "codex-serverops-mcp==0.1.1" serverops-install setup --broker-task --apply

The task requests no administrator elevation and stores no password. It does not make sessions survive a Windows reboot or broker crash; the current broker does not adopt orphaned workers.

Typical workflows

Customer server check

Select the named customer profile, start read-only, confirm target and identity, inspect only the relevant service evidence, and report facts, hypotheses, gaps, and any changes separately.

Remote project work

Enter a project directory once, retain its shell environment across calls, run bounded commands, and use structured file reads or preconditioned text edits for configured paths.

Interactive or longer-running work

Use the terminal only when a command genuinely needs interaction, incremental output, interrupt, resize, or retained terminal state. Completed commands can run for up to the configured maximum of 3600 seconds and return exit code, duration, CWD, and truncation state.

Configured remote files

List, inspect, search, read, hash, write, patch, rename, create, or remove UTF-8 text paths inside a profile's configured roots. These roots constrain the structured file tools; they do not sandbox shell commands or replace backups.

Authentication and sudo

Passwords, key passphrases, host-key decisions, and interactive sudo input stay in separate visible local windows. ServerOps can use existing OpenSSH behavior or guide a controlled key transition. Sudo remains governed by the server's PAM and sudoers policy.

One-off SSH command or ServerOps?

Needssh host "command"ServerOps
One isolated commandSmallest direct optionWorks, but often unnecessary
Keep CWD and shell environmentReconstruct it each timeHeld in one live Bash session
Interactive terminal controlRequires a terminal workflowCursor reads, input, interrupt, resize, status
Structured text filesParse and quote shell outputBounded results and optional hash preconditions
Authentication promptsTerminal-ownedSeparate visible local windows
Uncertain remote mutationOperator must reason from transport lossExplicit unknown-outcome result; no automatic retry
Continue after MCP restartNew SSH commandRediscoverable with the optional broker task while processes remain alive

ServerOps does not replace SSH. It uses OpenSSH and adds a stateful, structured boundary for AI-led operations where repeated one-off commands become fragile or difficult to review.

Architecture

mermaid
flowchart LR    C["Codex plugin"] --> M["Shared ServerOps MCP core"]    A["Claude Code plugin"] --> M    M --> B["Local per-user broker"]    B --> W["One worker per live session"]    W --> S["Windows OpenSSH"]    S --> L["Configured Linux server<br/>Bash + common utilities"]    W -. "visible local prompts" .-> U["Operator"]    M --> F["Local profiles + redacted audit"]

The MCP process exposes eight tools. The broker owns session routing, each worker owns exactly one SSH/Bash process, and no ServerOps component is installed remotely. See Architecture and Broker lifecycle.

Requirements and honest limits

  • Windows 10 or 11, Python 3.12, uv/uvx, and Windows OpenSSH Client for the current release.
  • An SSH-accessible Linux account with Bash; structured files require the common utilities listed in Structured remote files.
  • ServerOps is alpha software. Start with a disposable or non-production account and narrow Linux permissions.
  • Stateful means process-held: no durable jobs, resume after reboot, or worker adoption after a broker crash.
  • Structured files are bounded UTF-8 text operations, not binary or resumable transfers and not a transactional filesystem.
  • allowed_roots constrain only structured file tools. Shell commands retain the SSH user's real permissions.
  • ServerOps makes no exactly-once promise. A timeout or connection loss after delivery can leave an effect unknown and requires read-only verification.
  • First-class clients today are Codex and Claude Code. Claude Desktop, Cherry Studio, and other desktop-client onboarding are planned, not shipped.
  • There is no ServerOpsSetup.exe yet; the public release requires Python 3.12 and uvx.

Capability status

CapabilityStatusBoundary
Profiles, completed commands, interactive terminalAvailableEight-tool MCP core
Stateful broker-owned sessionsAvailableWhile broker, worker, and Bash remain alive
MCP-restart rediscoveryAvailableRequires optional managed broker task for reliability
Structured UTF-8 text filesAvailableConfigured roots, bounded data, optional SHA-256 preconditions
Visible auth, guided sudo, local auditAvailableLocal trust layer; Linux policy remains authoritative
Codex pluginAvailable in 0.1.1Exact 0.1.1 runtime pin
Claude Code pluginAvailable in 0.1.1Exact 0.1.1 runtime pin
Automatic local bootstrapAvailable in 0.1.1No setup prerequisite; own state only
ServerOpsSetup.exe and self-contained Windows runtimePlanned 0.1.2No Python/uv prerequisite after delivery
Persistent jobs, receipts, eventlog, logs, resumable transfersPlanned 0.2Durable operation state, not command wrappers
Persistent investigations and incident timelinesPlanned 0.3Built on the operation store
Transactional changes and fleet rolloutsPlanned 0.4Preconditions, verification, compensation; no exactly-once claim
Backup assurance and native database adaptersPlanned 0.5Only where shell prompting is insufficient

The machine-readable capability contract keeps this table, evidence paths, tool names, marketplace identities, and public version pins testable.

Roadmap

  • 0.1.1A: Claude Code, neutral branding, automatic local bootstrap, project foundations.
  • 0.1.1B: this evidence-led product presentation and reproducible demo.
  • 0.1.1C: synchronized version pins, clean-machine cold starts, lifecycle regressions, commit-bound release evidence, and publication hardening.
  • 0.1.2: self-contained Windows packaging, graphical onboarding, and explicitly confirmed desktop-client integration.
  • 0.2–0.5: durable operations, investigations, fleet-safe changes, backup assurance, and narrow native adapters.

See ROADMAP.md for the phase definitions. Planned items are not available features.

Documentation and project

For support, open a GitHub issue without credentials, private keys, customer hostnames, or production output. Report vulnerabilities through SECURITY.md. ServerOps is available under the MIT License.

來源:README.md,提交 b734275

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分