SynoLink MCP Server について
SynoLink MCP サーバーは、Synology NAS のファイル操作を行う Node.js 製の MCP サーバーです。Claude などの AI アシスタントから、DSM 上のファイルやフォルダの一覧取得、転送、管理ができます。
主な機能
- 01Synology DSM へのログインとログアウト
- 02ファイルの一覧表示、アップロード、ダウンロード
- 03項目の作成、削除、移動、名前変更
- 04ファイルとフォルダのキーワード検索
- 05共有リンクとボリュームの容量情報
活用シーン
- 01AI アシスタントから NAS のフォルダを閲覧する
- 02指定したパスへファイルをアップロードする
- 03ストレージボリュームごとの容量使用状況を確認する
MCP 対応
本プロジェクトは MCP サーバーで、ログイン、ファイル管理、検索、共有リンク、サーバー情報取得のツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SynoLink MCP サーバー
Synology NAS のファイル操作のために Model Context Protocol (MCP) を実装した Node.js サーバーです。このサーバーにより、Claude やその他の互換性のある AI アシスタントを通じて Synology NAS デバイスとやり取りできます。
機能
- Synology DSM へのログイン/ログアウト
- ファイルとフォルダの一覧表示
- ファイル内容のダウンロード
- ファイルのアップロード
- フォルダの作成
- ファイル/フォルダの削除
- ファイルとフォルダの移動/名前変更
- 検索機能
- 共有リンクの作成と一覧表示
- サーバー情報の取得
- クォータ情報の取得
前提条件
- Node.js 18 以上
- npm または yarn
- DSM 6.0 以上の Synology NAS
- Synology NAS へのネットワークアクセス
インストール
このリポジトリをクローンします:
git clone https://github.com/Do-Boo/MCP-SynoLink.git
cd MCP-SynoLink
依存関係をインストールします:
npm install
プロジェクトをビルドします:
npm run build
Claude Desktop での使用方法
Node.js 方式
claude_desktop_config.json に以下を追加します:
{
"mcpServers": {
"synolink": {
"command": "node",
"args": [
"/path/to/MCP-SynoLink/dist/index.js",
"https://your-synology-url:port",
"your-username",
"your-password"
]
}
}
}
Docker 方式
Docker イメージをビルドします:
docker build -t mcp/synolink .
次に、claude_desktop_config.json に以下を追加します:
{
"mcpServers": {
"synolink": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/synolink",
"https://your-synology-url:port",
"your-username",
"your-password"
]
}
}
}
セキュリティに関する注意
認証情報の取り扱いには常に注意してください。現在の実装ではパスワードをコマンドライン引数として送信するため、プロセス一覧に表示される可能性があります。本番環境でのセキュリティを向上させるには、代替の認証方法の実装を検討してください。
API ドキュメント
サーバーは以下のツールを提供します:
認証ツール
-
login
- Synology NAS で認証します
- パラメータは不要です (コマンドラインの認証情報を使用します)
-
logout
- Synology NAS からログアウトします
- パラメータは不要です
ファイル管理ツール
-
list_folders
- ディレクトリ内のファイルとフォルダを一覧表示します
- 入力:
path(文字列) - ファイルを一覧表示するパス (例: '/photos')
-
get_file
- ファイルの内容を取得します
- 入力:
path(文字列) - Synology NAS 上のファイルへのフルパス
-
upload_file
- Synology NAS にファイルをアップロードします
- 入力:
path(文字列) - ファイル名を含む Synology NAS 上の宛先パスcontent(文字列) - アップロードするファイルの内容
-
create_folder
- 新しいフォルダを作成します
- 入力:
path(文字列) - フォルダを作成するフルパスname(文字列) - 新しいフォルダの名前
-
delete_item
- ファイルまたはフォルダを削除します
- 入力:
path(文字列) - 削除するファイルまたはフォルダへのフルパス
-
move_item
- ファイルまたはフォルダを移動または名前変更します
- 入力:
source(文字列) - 移動元のファイルまたはフォルダへのフルパスdestination(文字列) - 移動先の場所へのフルパス
検索と情報ツール
-
search
- ファイルとフォルダを検索します
- 入力:
keyword(文字列) - 検索キーワードpath(文字列、任意) - 検索するパス (デフォルトは "/")
-
get_share_links
- ファイルまたはフォルダの共有リンクを取得または作成します
- 入力:
path(文字列) - 共有リンクを取得するパス
-
get_server_info
- Synology サーバーに関する情報を取得します
- パラメータは不要です
-
get_quota_info
- ボリュームのクォータ情報を取得します
- 入力:
volume(文字列、任意) - ボリューム名 (省略した場合はすべてのボリュームを表示します)
ライセンス
MIT License
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。