Synology Chat

io.github.Louis-Lastella由 GitHub 帳號 Louis-Lastella 發布v0.2.0更新於 Oct 27, 2026

Read channels and posts, find users, send messages and files on any Synology Chat server.

已驗證STDIO僅桌面檔案與儲存溝通與協作

概覽

AI 產生的概覽

針對自架 Synology Chat 的 MCP 伺服器:列出頻道與私訊、讀取最近訊息、尋找使用者,並傳送訊息或檔案。

可以做什麼
  • 列出已加入的頻道與私訊,含 ID、名稱、類型、成員與未讀數
  • 依使用者名稱片段尋找使用者,並取得與某使用者的 1:1 私訊頻道 ID
  • 讀取頻道或私訊中最新的訊息與檔案
  • 傳送文字訊息到頻道或私訊
  • 上傳本機檔案到頻道,可附上一則說明訊息
適用情境
適合團隊在 NAS 上自架 Synology Chat 的情境:希望助理讀取近期對話、查找同事,或把訊息與檔案送到頻道,而不必設定機器人或 webhook。
執行需求
透過 uvx 從 GitHub 執行、使用本機複製,或使用 Docker 映像,皆在本機執行。需要 Synology Chat 基底網址、DSM 使用者名稱與密碼(SYNOLOGY_CHAT_PASS),都以環境變數傳入。帳號不可啟用兩步驟驗證。需要能連線到 NAS 的網路;自簽憑證可將 SYNOLOGY_CHAT_VERIFY_SSL 設為 false。
安裝前請注意
用戶端設定中會保存 DSM 帳號密碼(SYNOLOGY_CHAT_PASS),並以該使用者身分登入,因此能看到並發布該使用者可見的一切內容。傳送訊息與上傳檔案會實際寫入頻道與私訊。關閉 SSL 驗證會降低傳輸安全。不支援啟用兩步驟驗證的帳號,可能需要另外準備一個未啟用兩步驟驗證的帳號。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Synology Chat,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

synology-chat-mcp

MCP server for Synology Chat. Works with any self-hosted Synology Chat instance: list channels, read recent posts, find users, send messages and upload files from any MCP client (Claude Desktop, Claude Code, Hermes, ...).

It logs in as a normal DSM user through the Synology Web API, so it sees exactly what that user sees in Chat (channels and DMs), no bot or webhook setup needed.

Tools

ToolWhat it does
list_channels()Joined channels and DMs (id, name, type, members, unread)
find_user(name_query)Find users by partial username
get_recent_posts(channel_id, limit=20)Most recent messages/files in a channel or DM
dm_channel_for_user(user_id)1:1 DM channel id for a user, or null if none exists yet
send_message(channel_id, message)Post a text message
send_file(channel_id, file_path, message="")Upload a local file, optionally followed by a message

Configuration

All config comes from environment variables, set them in your MCP client config:

VariableRequiredExample
SYNOLOGY_CHAT_URLyeshttps://chat.example.com, https://nas.local:5001, http://192.168.1.10:5000
SYNOLOGY_CHAT_USERyesDSM username
SYNOLOGY_CHAT_PASSyesDSM password
SYNOLOGY_CHAT_VERIFY_SSLnofalse for self-signed certificates (default true)

A URL without scheme means https, without port it uses 443 (https) or 80 (http).

Install

Needs uv. No clone required, uvx runs it straight from GitHub.

Claude Desktop (claude_desktop_config.json):

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:

bash
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):

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

From a local clone instead: git clone, uv sync, then use uv with args --directory /path/to/synology-chat-mcp run synology-chat-mcp.

Docker (no uv needed), image ghcr.io/louis-lastella/synology-chat-mcp:

json
{  "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"      }    }  }}

Also listed in the official MCP Registry as io.github.Louis-Lastella/synology-chat-mcp.

Notes

  • Accounts with 2-factor authentication are not supported (the Web API wants a fresh OTP per login). Use an account without 2FA.
  • DMs show up with type anonymous, that is Synology's name for 1:1 conversations.
  • find_user only matches the username, not display names.
  • Downloading attachments is not a tool yet. The session is available via synology_chat_mcp._client().session; call GET /webapi/entry.cgi?api=SYNO.Chat.Post.File&method=get&version=2&post_id=<id>&_sid=<sid> with the header X-SYNO-TOKEN: <session.syno_token>.

Development

bash
uv syncuv run python tests/test_parse_url.py

License

MIT

來源:README.md,提交 7b8cbb6

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.0最新Oct 13, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分