Synology Chat について
Synology Chatは、セルフホストのSynology Chatインスタンスを対象とするMCPサーバーで、MCPクライアントからチャンネル、ダイレクトメッセージ、ユーザーを操作できます。Synology Web APIを通じて通常のDSMユーザーとしてログインするため、ボットやWebhookの設定は不要で、そのアカウントの閲覧範囲が適用されます。
主な機能
- 01参加中のチャンネルとDMの一覧表示
- 02最近の投稿とファイルの取得
- 03ユーザー名によるユーザー検索
- 04チャンネルやDMへのメッセージ送信
- 05ローカルファイルのアップロード
活用シーン
- 01チャンネルの最近の会話を確認
- 02ユーザーを検索してDMを特定
- 03MCPクライアントからメッセージを送信
- 04会話でローカルファイルを共有
MCP 対応
MCPサーバーは、Synology ChatインスタンスのチャンネルとDMの一覧表示、最近の投稿の取得、ユーザー検索、メッセージ送信、ファイルアップロード用ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e SYNOLOGY_CHAT_URL -e SYNOLOGY_CHAT_USER -e SYNOLOGY_CHAT_PASS -e SYNOLOGY_CHAT_VERIFY_SSL ghcr.io/louis-lastella/synology-chat-mcp:0.2.0SYNOLOGY_CHAT_URLBase URL of your Synology Chat server, e.g. https://nas.example.com:5001SYNOLOGY_CHAT_USERUsername of the Synology account (no 2FA)SYNOLOGY_CHAT_PASSシークレットPassword of the Synology accountSYNOLOGY_CHAT_VERIFY_SSLSet to false for self-signed certificatesローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/louis-lastella/synology-chat-mcp:0.2.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
synology-chat-mcp
Synology Chat 用の MCP サーバーです。セルフホストの Synology Chat インスタンスであれば、どれでも使用できます。MCP クライアント(Claude Desktop、Claude Code、Hermes など)から、チャンネルの一覧表示、最近の投稿の閲覧、ユーザーの検索、メッセージの送信、ファイルのアップロードができます。
Synology Web API を通じて通常の DSM ユーザーとしてログインするため、そのユーザーが Chat で見られるもの(チャンネルと DM)をそのまま参照できます。ボットや webhook の設定は不要です。
ツール
| ツール | 機能 |
|---|---|
list_channels() | 参加中のチャンネルと DM(ID、名前、種類、メンバー、未読数) |
find_user(name_query) | ユーザー名の一部を指定してユーザーを検索 |
get_recent_posts(channel_id, limit=20) | チャンネルまたは DM の最新メッセージ/ファイルを取得 |
dm_channel_for_user(user_id) | ユーザーとの 1 対 1 の DM チャンネル ID。まだ存在しない場合は null |
send_message(channel_id, message) | テキストメッセージを投稿 |
send_file(channel_id, file_path, message="") | ローカルファイルをアップロードし、必要に応じてメッセージを添付 |
設定
すべての設定は環境変数から読み込みます。MCP クライアントの設定で指定してください。
| 変数 | 必須 | 例 |
|---|---|---|
SYNOLOGY_CHAT_URL | はい | https://chat.example.com、https://nas.local:5001、http://192.168.1.10:5000 |
SYNOLOGY_CHAT_USER | はい | DSM ユーザー名 |
SYNOLOGY_CHAT_PASS | はい | DSM パスワード |
SYNOLOGY_CHAT_VERIFY_SSL | いいえ | 自己署名証明書の場合は false(デフォルトは true) |
スキームを省略した URL は https として扱われます。ポートを省略した場合、https では 443、http では 80 が使用されます。
インストール
uv が必要です。リポジトリをクローンする必要はなく、uvx で GitHub から直接実行できます。
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"synology-chat": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Louis-Lastella/synology-chat-mcp", "synology-chat-mcp"],
"env": {
"SYNOLOGY_CHAT_URL": "https://chat.example.com",
"SYNOLOGY_CHAT_USER": "your-username",
"SYNOLOGY_CHAT_PASS": "your-password"
}
}
}
}
Claude Code:
claude mcp add synology-chat \
-e SYNOLOGY_CHAT_URL=https://chat.example.com \
-e SYNOLOGY_CHAT_USER=your-username \
-e SYNOLOGY_CHAT_PASS=your-password \
-- uvx --from git+https://github.com/Louis-Lastella/synology-chat-mcp synology-chat-mcp
Hermes(~/.hermes/config.yaml):
mcp_servers:
synology-chat:
command: uvx
args: [--from, git+https://github.com/Louis-Lastella/synology-chat-mcp, synology-chat-mcp]
env:
SYNOLOGY_CHAT_URL: https://chat.example.com
SYNOLOGY_CHAT_USER: your-username
SYNOLOGY_CHAT_PASS: your-password
ローカルにクローンして使用する場合:git clone、uv sync の順に実行し、uv に引数 --directory /path/to/synology-chat-mcp run synology-chat-mcp を指定します。
Docker(uv は不要)、イメージ ghcr.io/louis-lastella/synology-chat-mcp:
{
"mcpServers": {
"synology-chat": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "SYNOLOGY_CHAT_URL", "-e", "SYNOLOGY_CHAT_USER", "-e", "SYNOLOGY_CHAT_PASS",
"ghcr.io/louis-lastella/synology-chat-mcp"],
"env": {
"SYNOLOGY_CHAT_URL": "https://chat.example.com",
"SYNOLOGY_CHAT_USER": "your-username",
"SYNOLOGY_CHAT_PASS": "your-password"
}
}
}
}
公式 MCP Registry にも io.github.Louis-Lastella/synology-chat-mcp として登録されています。
注意事項
- 2 要素認証を有効にしたアカウントには対応していません(Web API はログインごとに新しい OTP を要求します)。2FA を有効にしていないアカウントを使用してください。
- DM の種類は
anonymousと表示されます。これは Synology における 1 対 1 の会話の名称です。 find_userはusernameのみを照合し、表示名は対象にしません。- 添付ファイルのダウンロードは、まだツールとして実装されていません。セッションは
synology_chat_mcp._client().sessionから利用できます。ヘッダーX-SYNO-TOKEN: <session.syno_token>を付けてGET /webapi/entry.cgi?api=SYNO.Chat.Post.File&method=get&version=2&post_id=<id>&_sid=<sid>を呼び出してください。
開発
uv sync
uv run python tests/test_parse_url.py
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。