mcpField
S
Synology Chat

Synology Chat

ローカル
github.com/Louis-Lastellaコミュニケーション02 週間前に更新

Synology Chat について

Synology Chatは、セルフホストのSynology Chatインスタンスを対象とするMCPサーバーで、MCPクライアントからチャンネル、ダイレクトメッセージ、ユーザーを操作できます。Synology Web APIを通じて通常のDSMユーザーとしてログインするため、ボットやWebhookの設定は不要で、そのアカウントの閲覧範囲が適用されます。

主な機能

  1. 01参加中のチャンネルとDMの一覧表示
  2. 02最近の投稿とファイルの取得
  3. 03ユーザー名によるユーザー検索
  4. 04チャンネルやDMへのメッセージ送信
  5. 05ローカルファイルのアップロード

活用シーン

  1. 01チャンネルの最近の会話を確認
  2. 02ユーザーを検索してDMを特定
  3. 03MCPクライアントからメッセージを送信
  4. 04会話でローカルファイルを共有

MCP 対応

MCPサーバーは、Synology ChatインスタンスのチャンネルとDMの一覧表示、最近の投稿の取得、ユーザー検索、メッセージ送信、ファイルアップロード用ツールを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"louis-lastella-synology-chat": {
"command": "docker",
"args": [
"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.0"
],
"env": {
"SYNOLOGY_CHAT_URL": "<SYNOLOGY_CHAT_URL>",
"SYNOLOGY_CHAT_USER": "<SYNOLOGY_CHAT_USER>",
"SYNOLOGY_CHAT_PASS": "<SYNOLOGY_CHAT_PASS>",
"SYNOLOGY_CHAT_VERIFY_SSL": "<SYNOLOGY_CHAT_VERIFY_SSL>"
}
}
}
}
起動コマンド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.0
設定が必要な環境変数
SYNOLOGY_CHAT_URLBase URL of your Synology Chat server, e.g. https://nas.example.com:5001
SYNOLOGY_CHAT_USERUsername of the Synology account (no 2FA)
SYNOLOGY_CHAT_PASSシークレットPassword of the Synology account
SYNOLOGY_CHAT_VERIFY_SSLSet to false for self-signed certificates

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

パッケージ
ocighcr.io/louis-lastella/synology-chat-mcp:0.2.0

ツール

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

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

詳細

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

コメント

MCP は初めてですか?

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

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