dsm-mcp
dsm-mcp
Synology DSM および Container Manager 用の Model Context Protocol サーバーです。MCP クライアント(Claude)が NAS を検査し、Synology Web API 経由でコンテナを直接管理できるようにします。ブラウザは不要で、リクエストごとの DSM ログインや 2FA も不要です。サーバーは専用サービスアカウントで一度ログインし、セッションを自ら維持します。これは実質的に、あなたが求めていた「期限切れにならないセッション」です。Claude が再認証することはありません。
arr-mcp の姉妹品です。同じ構成(Python、streamable-HTTP、ベアラ認証)で、ポートが異なり(8788)、Synology 専用のクライアントです。
ツール
領域 | ツール |
検出/ヘルス |
|
システム |
|
コンテナ |
|
* = 書き込みアクション(コンテナの開始/停止/再起動)。dsm_raw_call は任意の DSM メソッドを呼び出せます(書き込みも含む)。これは DSM の API のうちバージョンによって異なる部分のための逃げ道です。
DSM の API について(必読)
Synology の Web API はディスカバリ駆動型で、バージョン/モデルに依存します。各ツールは呼び出し時に SYNO.API.Info を介して正しい CGI パスとバージョンを解決するため、システム/ストレージ/利用状況ツールは堅牢です。Docker/Container Manager のメソッドは DSM のリリース間で一貫して文書化されていないことがあります。dsm_docker_logs、dsm_docker_projects、またはアクションのパラメータがお使いの DSM と一致しない場合は、dsm_api_discover(SYNO.Docker または all をクエリ)を実行して NAS が公開している内容を正確に確認し、dsm_raw_call で操作してください。ライブで回避できないハードコードはありません。
Related MCP server: Synology_MCP
サービスアカウント(最初にこれを行ってください)
これをメインの管理者に向けないでください。DSM で:
コントロールパネル → ユーザーとグループ → 作成 でユーザー(例:
claude-svc)を作成します。必要なものだけを付与します: Container Manager アプリの権限、およびシステム/ストレージの読み取り。DSM のバージョンが管理者なしで Docker API を許可している場合は
administratorsグループから外してください。管理者が必要な場合は、ここでのみ使用する別の管理者グループアカウントを推奨します。注: 現時点では、コンテナマネージャのエンドポイントにアクセスするには、サービスアカウントが administrators グループのメンバーである必要があります。
このアカウントで 2FA を無効 にします(デーモンは回転コードを入力できません)。ポリシーで 2FA が強制されている場合は、信頼できるデバイスを一度登録し、そのトークンを
DSM_DEVICE_IDに設定します。オプションで LAN に制限します(コントロールパネル → セキュリティ → ファイアウォール / IP ルール)。MCP サーバーは LAN 上にあり、トンネルのみが公開されているためです。
セットアップ
cp config.example.env .env
# edit .env: DSM_URL, the service account + password, a strong MCP_AUTH_TOKEN.
# HTTPS with the self-signed cert? use :5001 and set DSM_VERIFY_SSL=false
docker compose up -d --build
docker logs -f dsm-mcp # confirm it starts; auth runs on the first tool callDocker なしで実行(開発用):
pip install -r requirements.txt
set -a; source .env; set +a
python server.pyClaude に公開する
エンドポイント: https://<your-hostname>/mcp。arr-mcp と同じです:
トンネルを張ります(専用の
cloudflared、または既存の Jellyfin トンネル上のホスト名 →http://dsm-mcp:8788)。理想的には Cloudflare Access の背後に置きます。Claude → 設定 → コネクタ → カスタムコネクタ →
/mcpURL に、Authorization: Bearer <MCP_AUTH_TOKEN>を指定します。
セキュリティに関する注意
これはコンテナの再起動やシステム内部の読み取りが可能で、DSM ユーザーとして認証されます。アカウントは最小権限に保ち、2FA オフはその LAN アカウントのみに限定し、エンドポイントは常にベアラトークン(理想的には Cloudflare Access)の背後に置いてください。
資格情報は
.env(git/docker で無視)にのみ存在します。MCP クライアントがそれらを見ることはありません。ツールの結果のみを見ます。アカウント削除、DSM 設定の変更、ボリューム/プールの破壊的なツールは公開されていません。
dsm_raw_callは設計上強力です。エンドポイントの認証をそれに応じて扱ってください。
ファイル
server.py— MCP サーバー + ツール(streamable-HTTP + ベアラ認証)dsm_client.py— Synology Web API クライアント(ディスカバリ、ログイン、セッション更新)config.py— 環境変数からクライアントを構築Dockerfile/docker-compose.yml— コンテナ + オプションのトンネルconfig.example.env—.envにコピー
This server cannot be deployed
Maintenance
Related MCP Connectors
Host any HTTP API as a standard MCP server; auto-distribute to 12+ mainstream agent platforms.
Manage uptime monitors, incidents and status pages from any MCP client.
Agent-first web hosting: deploy sites, apps, databases and domains over MCP.
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceComprehensive Synology NAS management through MCP, enabling file operations, downloads, backups, Docker, photos, VMs, snapshots, and more across up to 9 NAS units.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Synology NAS services including DSM, File Station, Calendar, Note Station, Contacts, Chat, Download Station, and Container Manager through a modular MCP interface with configurable safety modes.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes a Synology NAS through the official DSM WebAPI, covering File Station, Download Station, Synology Photos, Container Manager, and system management with curated tools and a generic bridge for other APIs.MIT
- FlicenseAqualityDmaintenanceMCP server enabling AI agents to manage and monitor Synology NAS via official DSM API, including file operations, system stats, backups, downloads, and camera lists.15-