プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Homebutler

作者:Higangsshバージョン 1.4.0i★ –iパソコンで動く
レジストリ名io.github.Higangssh/homebutler

インストール

概要

作者による説明(英語の原文)

Tells an agent what changed on a server since it last looked - status, Docker, backups, Proxmox.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 開発者ツール

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

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

ターミナルでこれを実行します

claude mcp add homebutler -- npx -y homebutler

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "homebutler": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "homebutler"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント Higangssh で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

開発者ツールのほかのサーバーとの比較i

  • このカテゴリのほかの1395件のうち0%よりスターが多い
  • このカテゴリのほかの1395件のうち82%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1395件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Homebutlerは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.4.0)がレジストリに届いたのは8 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

GitHub

作者:github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

パソコンでもクラウドでも★ 34,245MIT4 日前更新
インストール

Desktop Commander

作者:wonderwhy-er

MCP server for terminal commands, file operations, and process management

パソコンで動く★ 10,225MIT16 日前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

HomeButler

Only the changes worth mentioning.

A single Go binary that remembers what your server looked like last time, and tells you — or an agent — what moved.

Website · Docs · Releases

That is the whole idea. Most homelab tools show you a graph of right now, and leave "does this matter?" to you. HomeButler remembers what your server looked like last time, decides what is worth saying, and says it — six containers before and six after is not "no change" when one of them is a different container.

Reading a report

homebutler report

homebutler report --keep 7 # retain only the latest 7 snapshots homebutler report --no-save # preview without writing a snapshot

report gives you a concise butler-style summary of your homelab: current health, warnings, notable changes since the previous snapshot, and suggested next commands. On the first run, HomeButler creates a baseline under ~/.homebutler/reports/snapshots/; later runs compare against the latest snapshot. Old snapshots are pruned automatically (--keep 30 by default) so reports do not grow forever.

Section rules, labels, and severities are colour-coded in a terminal. Colour is dropped automatically when output is piped, redirected, or run from cron.

Reading a change

Every change line, like those in the card at the top, is three columns: what kind of change, what it happened to, and what exactly happened. The kind is one of eight words, and it is the same word in --json, so an agent branches on it without reading prose:

KindMeansYou would see it after
goneit was there last time and is not nowdocker rm, a service stopping, a port closing
newit was not there last time and is nowstarting anything
replacedsame name, different thing underneathdocker compose up -d — the container is recreated, so the name and the count are unchanged
imagesame container, different imagepulling a new tag
statesame container, running where it was stopped, or the reverse; or a process that keeps restartinga crash, a crash loop, or bringing something back up
portsame port, a different process answering on itone service taking over another's port
diska mount moved by more than half a gigabyteanything that writes
skippedthe comparison could not be madeDocker was down when either snapshot was taken

replaced is the one the rest of this exists for. A container recreated under the same name leaves every count identical, which is why a report that compares counts — as this one did before 0.26.0 — answers "no significant changes" while the thing you were running has been swapped out underneath you.

skipped is the second: homebutler says it could not compare rather than reporting nothing changed. An all-clear it cannot stand behind is worse than no answer.

The header names the snapshot being compared against, so "what changed" is never ambiguous about the window it covers.

📖 [What earns a line, and what is deliberately suppressed →](docs/report.md)

See it run

The whole thing in half a minute · watch it full size

Why homebutler?

HomeButler helps you answer the boring but painful questions every homelab eventually creates:

  • What is running on my server right now?
  • Which container owns this port?
  • Why did this service restart at 3 AM?
  • Is my backup actually restorable?
  • Can I install this self-hosted app without hand-writing another compose file?
  • Can I let an AI assistant inspect my server without handing it a full SSH shell?

No daemon required, no database. Run it from a terminal, cron, a web dashboard you start when you want one, or an AI agent.

The design goal is simple: give humans and agents a narrow, structured interface to the server. HomeButler returns readable summaries and JSON instead of asking you to trust a black-box shell session.

Self-hosting is not hard because one docker compose up is hard. It is hard because the maintenance never ends: ports collide, containers restart silently, backups look fine until restore day, and every server becomes a slightly different snowflake.

HomeButler is a small operations toolkit for that messy middle.

Alongside what you already run

Keep Uptime Kuma for *is it up*, Beszel or Netdata for *the graph*, Dozzle for *the logs*. HomeButler answers the question none of them ask: what is different from last time, and does it matter?

  • No agent on the machines it watches. The binary is put there once with homebutler deploy and runs only when asked, over SSH — no daemon, no open port, nothing listening between runs.
  • The judgement is a written rule, not a model. What earns a line is in docs/report.md, and the same input gives the same report — no AI required, no account, no paid tier.
  • It checks that a backup comes back. A backup you have never restored is a folder. backup drill boots the archive as a second copy of the app, on a network and port of its own, and requires it to answer an HTTP health check before calling the archive good — then removes everything it made. A failed drill exits non-zero, so backup drill --all belongs in the same cron entry as backup. docs/backup.md has what it does and what it does not prove.
  🔐 Integrity: ✅ tar valid (8 files)

🚀 Boot: ✅ container started in 0s 🌐 Health: ✅ HTTP 200 on port 60405

✅ DRILL PASSED

Quick Start

# One-line install (auto-detects OS/arch)

curl -fsSL https://raw.githubusercontent.com/Higangssh/homebutler/main/install.sh | sh

Or via Homebrew

brew install Higangssh/homebutler/homebutler

Or as a container — the hub that reaches your machines over SSH

docker run -d -p 8080:8080 -v ~/.config/homebutler:/config -v ~/.ssh:/root/.ssh:ro \ ghcr.io/higangssh/homebutler serve --host 0.0.0.0 --token "$(openssl rand -hex 16)"

Interactive setup — add your servers in seconds

homebutler init

Or as a container, reaching your machines over SSH — docs/docker.md: docker run -v ~/.config/homebutler:/config -v ~/.ssh:/root/.ssh:ro ghcr.io/higangssh/homebutler

Use it right away:

homebutler status                    # CPU, memory, disk, uptime

homebutler docker list # running containers homebutler inventory scan # containers + ports + topology homebutler report # butler-style health report + change summary homebutler install uptime-kuma # deploy a self-hosted app homebutler backup drill uptime-kuma # verify a backup actually restores homebutler watch tui # terminal dashboard homebutler serve # web dashboard at http://localhost:8080

Machine-readable output is available everywhere:

homebutler status --json

homebutler inventory scan --json homebutler report --json

What else it does

  • Install apps — deploy Uptime Kuma, Jellyfin, Pi-hole, Gitea, Portainer, and more with one command
  • Map your server — see containers, exposed ports, system ports, and service topology
  • Run a doctor check — diagnose resource pressure, stopped containers, public ports, backup hygiene, notifications, report baseline readiness, and configured Proxmox endpoint reachability
  • Catch crashes — save logs before/after Docker, systemd, or PM2 restarts and detect flapping loops
  • Verify backups — boot backups in isolated containers before you trust them
  • See a Proxmox cluster — nodes, QEMU and LXC guests, storage, task status, and honest dashboard freshness, with power actions that name their target explicitly
  • Use it anywhere — CLI, JSON, web dashboard, or MCP for AI agents without giving them SSH

🩺 Doctor Check

homebutler doctor

homebutler doctor --strict # non-zero exit if warnings/failures are found homebutler doctor --json # automation / MCP friendly

doctor is a read-only preflight for the problems homelab users usually discover too late: high disk or memory usage, stopped containers, public bind ports, stale or missing backups, missing notifications, whether report has a baseline for change detection, and whether each configured Proxmox endpoint is reachable with the token it has. Every finding names the next command to run, so --strict makes it usable from cron or CI — including a Proxmox host that is unreachable or rebooting.

Every finding carries a category, and --json carries the same word, so a caller filters on it without reading the title:

CategoryWhat it is about
systemCPU, memory, disk
dockercontainers that are stopped or unhealthy
exposureports listening on every interface
backupbackups missing, stale, never drilled, or growing without a retention limit
reportwhether there is a baseline to compare against
watchtargets listed with nothing polling them
notificationschannels configured, or never tested
proxmoxan endpoint that cannot be reached with the token it has
configthe config file itself — permissions, keys homebutler does not know

| incomplete | a collector did not answer, so this dia

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く