mcpField
S
Synapse RMCP

Synapse RMCP

ローカル
github.comクラウド・インフラ27 週間前に更新

Synapse RMCP について

Synapse RMCPは、Docker、ホスト、SSH環境を管理する運用者向けのRust製MCPサーバー兼CLIです。fluxとscoutの2つのツールでコンテナ、ログ、ZFS、制限付きファイル操作を提供し、読み書き権限と破壊的操作の確認を備えています。

主な機能

  1. 01Docker、コンテナ、Composeの管理
  2. 02ローカルおよびSSHホストの調査
  3. 03ログ取得とZFS情報の確認
  4. 04許可リスト方式のコマンド実行と制限付きファイル転送
  5. 05CLIからの同等操作

活用シーン

  1. 01Dockerコンテナとリソースの状態確認
  2. 02リモートホストからのログ取得
  3. 03設定された範囲内でのファイル読み取りや転送

MCP 対応

MCPサーバーとしてfluxとscoutのツールを公開し、Docker、ホスト調査、SSH、ログ、ZFS、ファイル操作をクライアントから利用できます。stdioとStreamable HTTPに対応しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ai-dinglebear-synapse-rmcp": {
"command": "npx",
"args": [
"-y",
"synapse-rmcp"
],
"env": {
"SYNAPSE_HOME": "<SYNAPSE_HOME>",
"SYNAPSE_HOSTS_CONFIG": "<SYNAPSE_HOSTS_CONFIG>",
"SYNAPSE_CONFIG_FILE": "<SYNAPSE_CONFIG_FILE>",
"SYNAPSE_RMCP_VERSION": "<SYNAPSE_RMCP_VERSION>",
"SYNAPSE_RMCP_REPO": "<SYNAPSE_RMCP_REPO>",
"SYNAPSE_RMCP_RELEASE_BASE_URL": "<SYNAPSE_RMCP_RELEASE_BASE_URL>",
"RUST_LOG": "<RUST_LOG>"
}
}
}
}
起動コマンドnpx -y synapse-rmcp
設定が必要な環境変数
SYNAPSE_HOMEOptional Synapse appdata directory.
SYNAPSE_HOSTS_CONFIGInline host topology as a JSON array.
SYNAPSE_CONFIG_FILEPath to a host configuration file.
SYNAPSE_RMCP_VERSIONOptional GitHub release tag override for the downloaded Synapse binary.
SYNAPSE_RMCP_REPOOptional GitHub owner/repo override for release asset downloads.
SYNAPSE_RMCP_RELEASE_BASE_URLOptional release download base URL override.
RUST_LOGTracing filter for Synapse logs.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsynapse-rmcp0.5.4

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

synapse-rmcp

MCP と CLI で、ホスト、Docker、Compose、SSH、ログ、ZFS、ファイル操作を実行します。

Synapse は、rmcp フレームワークで構築された、synapse-mcp の完全互換な Rust 移植版です。

このサーバーは 2 つの MCP ツール(flux と scout)と、それに相当する CLI コマンドを公開し、元の TypeScript サーバーにある本番用の 59 のアクションすべてを網羅しています。

目次

命名

リポジトリ名は synapse-rmcp、Rust クレート名は synapse、MCP サーバーの ID は synapse、インストールされるバイナリ名は synapse です。npm ランチャーパッケージ名は synapse-rmcp です。

RMCP ファミリーの大半では、命名規則は repo=<service>-rmcp、npm=<service>-rmcp、CLI=r<service> です。Synapse は、旧 TypeScript プロジェクト synapse-mcp の Rust 移植版であり、運用者向けの synapse バイナリ名を維持しているため例外です。

機能と境界

Synapse は、2 つの MCP ツールとそれに相当する CLI を通じて、Docker、Compose、ホスト、SSH、ログ、ZFS、ファイル操作のローカルワークフローを提供します。

  • flux は Docker インフラストラクチャ、コンテナー、Compose プロジェクト、ホストの調査を管理します。
  • scout は SSH/ローカルホストの調査、安全なファイル読み取り、許可リストに基づくコマンド実行、ディスクリプターで制限されたファイル転送、ZFS のイントロスペクション、ログ取得を処理します。
  • REST は、一部のアクションに対する互換性用シムとしてのみ存在します。
  • Web インターフェースは軽量な静的管理シェルであり、フル機能のダッシュボードではありません。

対象外: 任意のシェルアクセス、監査されていないリモートでの変更、ホストの SSH 信頼設定の回避。破壊的な Docker/Compose/exec/ファイル転送アクションには、明示的なホスト指定と確認ポリシーが必要です。

MCP 呼び出し元は、アクション引数として認証情報、トークン、キー、シークレットを渡しません。トークン、OAuth 設定、ホストトポロジー、SSH 信頼設定、許可リストは、サーバー側の設定またはローカルの SSH 環境に保存されます。

インストール

手動でバイナリをインストールせずに stdio MCP または CLI を利用するには、npm ランチャーを使用します。

npx -y @dinglebear/synapse --help
npx -y @dinglebear/synapse mcp

コマンドを永続的に使うには:

npm i -g @dinglebear/synapse
synapse --version

npm パッケージは postinstall 時に GitHub Releases から synapse バイナリをダウンロードし、リリースタグを packages/synapse-rmcp/package.json と一致させます。

ソースからインストールする場合:

cargo build --release

本番用イメージには Python 3 と公式の Docker CLI/Compose プラグインが含まれています。Scout のリモートディスクリプターラッパーと Flux の Compose 操作は、これらのランタイムツールを呼び出すためです。イメージには Docker デーモンは含まれていません。Flux はマウントされたソケット、または SSH で転送されたリモートソケットを使用します。永続的なアプリデータは、ホスト上の ~/.synapse とコンテナー内の /data に保存されます。

クイックスタート

最初の画面から 30 秒で試せる手順は次のとおりです。

npx -y @dinglebear/synapse mcp

次に、stdio を使用する MCP クライアントを設定します。

{
  "mcpServers": {
    "synapse": {
      "command": "npx",
      "args": ["-y", "synapse-rmcp", "mcp"]
    }
  }
}

まずは読み取り専用の呼び出しから始めます。

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "scout",
    "arguments": {
      "action": "nodes"
    }
  }
}

クライアント設定

ローカル MCP クライアントには stdio を推奨します。

{
  "mcpServers": {
    "synapse": {
      "command": "synapse",
      "args": ["mcp"]
    }
  }
}

Streamable HTTP は、設定済みのホストとポートで /mcp を使用します。

{
  "mcpServers": {
    "synapse": {
      "url": "http://127.0.0.1:40080/mcp",
      "headers": {
        "Authorization": "Bearer ${SYNAPSE_MCP_TOKEN}"
      }
    }
  }
}

プラグインパッケージ

plugins/synapse/ には、同じ HTTP MCP エンドポイントと共有スキルを参照する Claude Code、Codex、Gemini CLI のマニフェストが含まれています。

これらのパッケージにはライフサイクルフックはありません。すでに実行中のサーバーへの接続にセットアップは不要です。マニフェストが server_url と api_token を直接置き換えます。このマシンでもサーバーを実行する場合は、手動で一度だけブートストラップしてください。

synapse setup install                  # put/refresh the binary on PATH
synapse setup plugin-hook              # check, then repair on blocking failures
synapse setup plugin-hook --no-repair  # audit only; never mutates appdata

先に該当する SYNAPSE_* 変数をエクスポートするか、~/.synapse/.env に書き込んでください。各プラグインのオプションと変数の対応は plugins/README.md に記載されています。プラグインの更新後は synapse setup install を再実行してください。

ランタイムのインターフェース

インターフェース状態目的
MCP必須エージェント向けの flux および scout ツール
CLI必須運用担当者向けのスクリプト可能な同等インターフェース
REST互換性59 個中 14 個のアクションに対応する、シンプルなローカルアクションエンドポイント
Web提供中軽量な静的管理シェル

MCP ツールのリファレンス

Synapse は 2 つの MCP ツールを公開します。

  • flux:Docker デーモン、コンテナー、ホスト、Compose の操作。
  • scout:SSH/ローカルホストの調査、ファイルシステムの読み取り、許可リストに登録された exec、複数ホストへの送信、ファイル転送、ZFS、ログ。

両方のツールで、アクションを振り分ける次の JSON 形式を使用します。

{"name":"flux","arguments":{"action":"docker","subaction":"info"}}
{"name":"scout","arguments":{"action":"nodes"}}

以下の詳細なアクション表は、README のリファレンス用に整理した内容です。稼働中のツールの契約については、生成されたランタイム MCP スキーマと Rust のアクション定義が信頼できる唯一の情報源です。

CLI リファレンス

よく使うコマンド:

synapse flux docker info
synapse flux container list
synapse flux compose list --host myhost
synapse scout nodes
synapse scout exec --host myhost --command hostname
synapse scout zfs pools --host myhost
synapse scout logs journal --host myhost --unit docker

認証

マウントされた HTTP では、Bearer と Google OAuth のモードをサポートしています。ループバックの stdio/ローカル開発環境では、マウントされた HTTP 認証なしで実行できます。重要な変数:

SYNAPSE_MCP_HOST=127.0.0.1
SYNAPSE_MCP_PORT=40080
SYNAPSE_MCP_TOKEN=change-me
SYNAPSE_MCP_AUTH_MODE=bearer

認証の全体像については、設定 と docs/CONFIG.md を参照してください。

安全性と信頼モデル

Synapse は読み取りスコープと書き込みスコープ(synapse:read、synapse:write)を分離し、破壊的な操作には確認ゲートを使用します。SYNAPSE_MCP_ALLOW_DESTRUCTIVE は、ループバックの安全なコンテキストでのみプロンプトを省略できます。ホストの protocol が優先され、省略時は SSH がデフォルトになります。ローカル実行には、明示的な組み込みの local ホスト、または protocol: "local" が必要です。SSH ホストの信頼性は OpenSSH の known-hosts の動作に委ねられ、コマンド実行ではシェルによる補間を行わず、execvp/argv のセマンティクスを使用します。scout beam は両エンドポイントに設定された読み取りルートを適用し、機密パスおよびシンボリックリンクのパスをブロックし、各転送のサイズを 64 MiB までに制限します。

scout exec と scout emit で使用できるのは、次の 18 個の型付きコマンドのみです(src/synapse/command_policy.rs の ALLOWED_READ_COMMANDS)。

cat、head、tail、grep、rg、ls、tree、wc、uniq、diff、stat、 file、du、df、pwd、hostname、uptime、whoami

git は意図的に除外されています。シェル、インタープリター、ネットワーククライアント、変更を加えるツールも同様です(EXEC_DENYLIST)。許可リストに find や sort はありません。ファイルシステムの検索には、専用の scout find アクションを使用してください。ホストごとのカスタムコマンドは execAllowlist で有効にできますが、型付き引数ポリシーが登録されるまでは、引数なしのポリシーが適用されます。

配布契約

リリース ID の信頼できる唯一の情報源は、Cargo.toml、.release-please-manifest.json、packages/synapse-rmcp/package.json、リリース成果物、server.json で共有されるバージョンです。

配布/バージョンに関する不変条件:

  • npm パッケージは、対応する GitHub Release のバイナリをダウンロードします。
  • インストールされるバイナリ名は引き続き synapse です。
  • server.json は ghcr.io/dinglebear-ai/synapse:<version> を参照する必要があります。
  • マーケットプレイスが git の状態から ID を特定する場合、プラグインマニフェストにはバージョンを記載しません。
  • 生成されるドキュメントとスキーマは、ソース管理されている生成入力から作成する必要があります。詳細については、整理された README/ドキュメントから信頼できる唯一の情報源となるファイルを参照してください。

検証

just validate-plugin          # plugin manifests, MCP config, monitors, skills
npm --prefix packages/synapse-rmcp run check
cargo fmt --check
cargo check
cargo test
git diff --check

デプロイ

永続的なマウント型 HTTP サーバーの場合:

SYNAPSE_MCP_HOST=0.0.0.0 \
SYNAPSE_MCP_PORT=40080 \
SYNAPSE_MCP_TOKEN=change-me \
synapse serve

ループバックの外部にエンドポイントを公開する前に、Bearer または OAuth を使用してください。本番環境の Docker/Compose に関する説明は、docs/DEPLOYMENT.md および docs/DOCKER.md が存在する場合はそちらに記載されています。ローカルの運用では stdio のまま使用できます。

トラブルシューティング

  • /mcp から 401 または 403 が返される場合:ベアラー/OAuth の設定とゲートウェイのヘッダーを確認してください。
  • ホストが表示されない場合:SYNAPSE_HOSTS_CONFIG、SYNAPSE_CONFIG_FILE、および ~/.ssh/config を確認してください。
  • 破壊的な操作が拒否される場合:ホストの対象と確認ポリシーを確認してください。
  • SSH エラーが発生する場合:まず OpenSSH の known_hosts、mux/ソケットの利用可否、および Synapse 外からホストに到達できることを確認してください。

ツールとアクション

flux — Docker インフラストラクチャの管理
flux docker — Docker デーモンの操作(9 アクション)
サブアクションスコープ説明
infosynapse:readDocker デーモンの情報
dfsynapse:readDocker のディスク使用量
imagessynapse:readDocker イメージの一覧表示。dangling_only でタグのないイメージを絞り込み
networkssynapse:readDocker ネットワークの一覧表示
volumessynapse:readDocker ボリュームの一覧表示
pullsynapse:writeDocker イメージをプル。host、image が必要
buildsynapse:writeDocker イメージをビルド。host、context、tag が必要。dockerfile、no_cache は任意
rmisynapse:writeDocker イメージを削除。host、image、force=true が必要
prunesynapse:write未使用のリソースを削除。host、prune_target、force=true が必要
flux container — コンテナのライフサイクルと検査(14 アクション)
サブアクションスコープ説明
listsynapse:readコンテナの一覧表示。state、name_filter、image_filter、label_filter は任意
inspectsynapse:readコンテナの詳細情報。container_id が必要。summary は任意
logssynapse:readコンテナのログ。container_id が必要。lines、since、until、grep、stream は任意
statssynapse:readリソース使用状況の統計。container_id は任意
topsynapse:read実行中のプロセスを表示。container_id が必要
searchsynapse:read名前/イメージ/ラベルによる全文検索。query が必要
startsynapse:write停止中のコンテナを起動。host、container_id が必要
stopsynapse:write実行中のコンテナを停止(破壊的)。host、container_id が必要
restartsynapse:writeコンテナを再起動。host、container_id が必要
pausesynapse:write実行中のコンテナを一時停止。host、container_id が必要
resumesynapse:write一時停止中のコンテナを再開。host、container_id が必要
pullsynapse:writeコンテナの最新イメージをプル。host、container_id が必要
recreatesynapse:writeイメージをプルしてコンテナを再作成(破壊的)。host、container_id が必要。pull は任意(デフォルトは true)
execsynapse:writeコンテナ内でコマンドを実行(破壊的、execvp)。host、container_id、command 配列が必要
flux host — ホストの検査(9 アクション)
サブアクションスコープ説明
statussynapse:readホスト上の Docker 接続を確認
infosynapse:readOS、カーネル、アーキテクチャ
uptimesynapse:readシステムの稼働時間
resourcessynapse:readCPU、メモリ、ディスクの使用量
servicessynapse:readsystemd サービスの状態。host が必要。state、service は任意
networksynapse:readネットワークインターフェース
mountssynapse:readマウント済みファイルシステム。host が必要
portssynapse:readポートマッピング。host が必要。protocol、limit、offset は任意
doctorsynapse:read診断チェック。host が必要。checks は任意(カンマ区切り)
flux compose — Docker Compose プロジェクト管理(10 アクション)
サブアクションスコープ説明
listsynapse:readすべての Docker Compose プロジェクトを一覧表示します。host が必要です
statussynapse:readプロジェクトのサービス状態を取得します。host、project が必要です。service は任意です
upsynapse:writeCompose プロジェクトを起動します。host、project が必要です
downsynapse:writeCompose プロジェクトを停止します(破壊的操作)。host、project が必要です。remove_volumes、force は任意です
restartsynapse:writeCompose プロジェクトを再起動します(破壊的操作)。host、project が必要です
recreatesynapse:writeCompose コンテナーを再作成します(破壊的操作)。host、project が必要です
logssynapse:readプロジェクトのログを取得します。host、project が必要です。service、lines、since は任意です
buildsynapse:writeCompose プロジェクトのイメージをビルドします。host、project が必要です。service は任意です
pullsynapse:writeCompose プロジェクトのイメージをプルします。host、project が必要です。service は任意です
refreshsynapse:readCompose プロジェクトのキャッシュを更新します。host が必要です
flux help — 自動生成される flux ドキュメント
アクションスコープ説明
helppublicflux アクションのリファレンスを返します。topic(例:"container:list")、format(markdown|json)は任意です

scout — SSH/ローカルホストの調査
Scout のシンプルなアクション(9 アクション)
アクションスコープ説明
nodessynapse:read設定済みの SSH ホストをすべて一覧表示します
peeksynapse:readファイルまたはディレクトリ一覧を読み取ります。host、path が必要です。tree、depth は任意です
findsynapse:readglob パターンでファイルを検索します。host、path、pattern が必要です。depth、limit は任意です
pssynapse:readプロセスを一覧表示します。host が必要です。sort(cpu|mem|pid|time)、grep、user、limit は任意です
dfsynapse:readディスク使用量を表示します。host が必要です。path は任意です
deltasynapse:readファイルまたはコンテンツを比較します。source_host、source_path が必要です。そのうえで、target_host と target_path、または content のいずれかが必要です
execsynapse:write許可リストに登録されたコマンドを実行します(破壊的操作、execvp)。host、command が必要です。path、args、timeout_secs は任意です
emitsynapse:write複数ホストでコマンドを実行します(破壊的操作)。targets 配列、command が必要です。args、timeout_secs は任意です
beamsynapse:writeルート配下に制限したファイル転送を行います(破壊的操作)。source_host、source_path、dest_host、dest_path が必要です。両方のパスが、設定済みの Scout/Compose ルート配下にある必要があります
scout zfs — ZFS の情報取得(3 サブアクション)
サブアクションスコープ説明
poolssynapse:readZFS プールを一覧表示します。host が必要です。プール名による絞り込み用の pool は任意です
datasetssynapse:readZFS データセットを一覧表示します。host が必要です。pool、dataset_type、recursive は任意です
snapshotssynapse:readZFS スナップショットを一覧表示します。host が必要です。pool、dataset、limit は任意です
scout logs — ログの取得(4 サブアクション)
サブアクションスコープ説明
syslogsynapse:read/var/log/syslog を読み取ります(存在しない場合は /var/log/messages にフォールバックします)。host が必要です。lines、grep は任意です
journalsynapse:readsystemd ジャーナルを読み取ります。host が必要です。lines、unit、priority、since、until、grep は任意です
dmesgsynapse:readカーネルリングバッファーを読み取ります。host が必要です。lines、grep は任意です
authsynapse:read/var/log/auth.log を読み取ります(存在しない場合は /var/log/secure にフォールバックします)。host が必要です。lines、grep は任意です
scout help — 自動生成される scout ドキュメント
アクションスコープ説明
helppublicscout アクションのリファレンスを返します。topic(例:"zfs:pools")、format(markdown|json)は任意です

既知のパリティギャップ

synapse は synapse-mcp とアクションレベルのパリティを実現しており、synapse-mcp/docs/INVENTORY.md にある本番用アクション 59 件すべてが実装されています。ただし、元の TypeScript サーバーにある以下の機能は、まだ移植されていません。

未移植
機能説明
claude/channel 通知元のサーバーは、Docker イベントとログの末尾を notifications/claude/channel MCP 通知として転送します。Rust に同等の機能はありません。
テンプレート化された MCP リソース元のサーバーは synapse://hosts/{host}、synapse://hosts/{host}/stacks、synapse://stacks、synapse://stacks/{host}/{stack}、synapse://stacks/{host}/{stack}/env、synapse://containers/{host}、synapse://containers/{host}/{id} を公開します。Rust は、ツール固有のスキーマおよびヘルプリソースに加え、読み取りスコープの synapse://hosts、synapse://compose/projects、synapse://status、synapse://activity を公開します。
root SSH ログインゲート元のサーバーは、SYNAPSE_ALLOW_ROOT_LOGIN=true が設定されていない場合、エリシテーションを通じて sshUser=root を制限します。Rust には破壊的操作のエリシテーションはありますが、root ログインゲートはありません。
TOFU フィンガープリントストア元のサーバーはフィンガープリントを ~/.config/synapse/known_hosts.json に保存し、変更されたフィンガープリントを拒否します。Rust は厳密な OpenSSH known_hosts を使用し、ワイルドカードに関する警告を表示します。オペレーターの操作は異なります。
SYNAPSE_EXCLUDE_HOSTSフリートの検出対象からホストを除外する元の環境変数は、Rust にはありません。
SYNAPSE_MCP_ALLOW_YOLO元の「すべての確認ゲートをスキップする」モードです。Rust には SYNAPSE_MCP_ALLOW_DESTRUCTIVE(再起動ごとのオーバーライド、ループバック限定)がありますが、同一ではありません。
SYNAPSE_DEBUG_ERRORS完全な内部エラーの詳細を返す、元のオプトインモードです。Rust は内部ツールエラーを常にサニタイズします。
exec 許可リストの git元のサーバーは、フラグガード付きで ALLOWED_READ_COMMANDS に git を含めています。Rust は意図的に git を除外しています。

設定

SYNAPSE_MCP_HOST=127.0.0.1
SYNAPSE_MCP_PORT=40080
SYNAPSE_MCP_TOKEN=change-me

主な環境変数:

変数デフォルト説明
SYNAPSE_MCP_HOST127.0.0.1HTTP トランスポートのバインドホストです。
SYNAPSE_MCP_PORT40080HTTP トランスポートのバインドポートです。
SYNAPSE_MCP_TOKEN未設定認証用の静的ベアラートークンです。
SYNAPSE_MCP_NO_AUTHfalseループバックでの開発に限り、認証を無効にします。
SYNAPSE_NOAUTHfalse認証/認可を、分離された信頼済み上流ゲートウェイに委任します。
SYNAPSE_MCP_ALLOW_DESTRUCTIVEfalse破壊的操作の確認プロンプトをスキップします(ループバック限定)。
SYNAPSE_MCP_MAX_CONCURRENCY50同時に処理中となる運用リクエストの最大数です。上限を超えたリクエストには、Retry-After を付けて HTTP 429 が返されます。無効にするには 0 を設定してください。公開プローブ、OAuth ディスカバリー、静的アセットは、同時実行数の制限対象外です。
SYNAPSE_MCP_PUBLIC_URL未設定OAuth の公開 URL です。ループバックでの開発を除き、HTTPS が必要です。
SYNAPSE_HOSTS_CONFIG未設定インラインのホストトポロジーです。ホストのプロトコルを省略した場合は SSH がデフォルトになります。ローカル実行には protocol: "local" が必要です。

環境変数の全一覧は .env.example、設定の詳細は docs/CONFIG.md、トランスポート、パス、転送、コンテナー、CI ランナーの信頼境界については docs/SECURITY.md を参照してください。

実行

# Start MCP server (stdio transport)
cargo run -- mcp

# Start HTTP server
cargo run -- serve

# CLI examples
cargo run -- flux docker info
cargo run -- flux container list
cargo run -- flux compose list --host myhost
cargo run -- scout nodes
cargo run -- scout exec --host myhost --command hostname
cargo run -- scout zfs pools --host myhost
cargo run -- scout logs journal --host myhost --unit docker

MCP の例:

{"name":"flux","arguments":{"action":"docker","subaction":"info"}}
{"name":"flux","arguments":{"action":"container","subaction":"list","state":"running"}}
{"name":"flux","arguments":{"action":"compose","subaction":"status","host":"myhost","project":"mystack"}}
{"name":"scout","arguments":{"action":"nodes"}}
{"name":"scout","arguments":{"action":"exec","host":"myhost","command":"hostname"}}
{"name":"scout","arguments":{"action":"zfs","subaction":"pools","host":"myhost"}}
{"name":"scout","arguments":{"action":"logs","subaction":"journal","host":"myhost","unit":"docker"}}

アーキテクチャ

FluxService   (src/flux_service/)  Docker/container/compose/host ops
ScoutService  (src/scout_service/) SSH/exec/fs/zfs/logs ops
      ↓ via SynapseService facade (src/app.rs)
MCP shims     (src/mcp/tools.rs)  tool args → service → Value
CLI shim      (src/cli.rs)        argv → service → stdout
REST layer    (src/api.rs)        POST /v1/synapse → service → JSON

開発

cargo fmt --check
cargo test
cargo clippy -- -D warnings
cargo build --release

just dev     # serve with no auth (loopback, dev mode)
just test    # cargo test
just lint    # clippy
just fmt     # cargo fmt

参考ドキュメント:

  • ツールの契約全般については docs/API.md
  • 環境と認証については docs/CONFIG.md
  • ローカルでのスモークテストについては docs/QUICKSTART.md
  • エージェントの使用ガイダンスについては plugins/synapse/skills/synapse/SKILL.md
  • synapse-mcp INVENTORY との自動パリティ検証については tests/parity.rs

ドキュメント

この README は、初回利用時の案内と、アクションを大まかに把握するために構成されています。 正本となるドキュメントとコードは、次のとおりです。

  • キュレーションされたアクション契約のリファレンスは docs/API.md を参照してください。
  • MCP スキーマの形式と変更への想定は docs/MCP_SCHEMA.md を参照してください。
  • 環境と認証ポリシーは docs/CONFIG.md を参照してください。
  • ローカルでのスモークテストは docs/QUICKSTART.md を参照してください。
  • エージェントとマーケットプレイスの利用方法は docs/PLUGINS.md および plugins/synapse/skills/synapse/SKILL.md を参照してください。
  • 生成された OpenAPI 出力は docs/generated/openapi.json を参照してください。
  • ランタイムの正本となるソースは src/flux_service/、src/scout_service/、src/mcp/ を参照してください。

関連サーバー

  • runifi - UniFi コントローラーの REST API ブリッジです。
  • rtailscale - デバイス、ユーザー、tailnet の操作に対応する Tailscale API ブリッジです。
  • unraid / runraid - NAS とサーバー管理に対応する Unraid GraphQL ブリッジです。
  • rapprise - 多数の配信バックエンドに対応する Apprise 通知ファンアウトブリッジです。
  • rgotify - 送信、メッセージ、アプリ、クライアントに対応する Gotify プッシュ通知ブリッジです。
  • rarcane - コンテナーと関連リソースに対応する Arcane Docker 管理ブリッジです。
  • yarr - Sonarr、Radarr、Prowlarr、Plex、および関連サービスに対応するメディアスタックブリッジです。
  • rytdl - メディアのダウンロードとメタデータのワークフローに対応するサーバーです。
  • cortex - Syslog とホームラボのログを集約する MCP サーバーです。
  • axon - RAG、クロール、スクレイピング、抽出、セマンティック検索のプロジェクトです。
  • labby - ホームラボのコントロールプレーンと Labby ゲートウェイのプロジェクトです。
  • lumen - ローカルのセマンティックコード検索 MCP サーバーです。
  • nugs - ローカルエージェントのワークフロー向けプロジェクト/パッケージ管理ヘルパーです。
  • agentcast - エージェントのトランスクリプトとアクティビティを公開するプロジェクトです。
  • soma - 新しいプロバイダー連携サーバー向けの RMCP スキャフォールド/ランタイムテンプレートです。

ライセンス

このプロジェクトのうち、Dinglebear が作成した部分は AGPL-3.0-only の下でライセンスされています。AGPL の適用範囲外の条件を必要とする組織向けに、別途商用ライセンスも提供しています。サードパーティの素材には、それぞれの元のライセンスが適用されます。詳細は LICENSING.md を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。