关于 Synology Chat
Synology Chat 是面向自托管 Synology Chat 实例的 MCP 服务,允许用户通过 MCP 客户端操作频道、私信和用户。它通过 Synology Web API 以普通 DSM 用户身份登录,因此可见内容与该账户在 Chat 中的权限一致,无需配置机器人或 Webhook。
主要功能
- 01列出已加入的频道和私信
- 02读取近期帖子与文件
- 03按用户名查找用户
- 04向频道或私信发送消息
- 05上传本地文件
适用场景
- 01查看频道近期对话
- 02查找用户并定位私信
- 03通过 MCP 客户端发送消息
- 04在对话中分享本地文件
MCP 相关
MCP 服务提供工具,可在 Synology Chat 实例中列出频道和私信、读取近期帖子、查找用户、发送消息及上传文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 中看到的内容与该用户完全一致(频道和私信),无需配置机器人或 Webhook。
工具
| 工具 | 功能 |
|---|---|
list_channels() | 列出已加入的频道和私信(ID、名称、类型、成员、未读状态) |
find_user(name_query) | 根据部分用户名查找用户 |
get_recent_posts(channel_id, limit=20) | 获取频道或私信中的最新消息和文件 |
dm_channel_for_user(user_id) | 获取某用户的一对一私信频道 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。
注意事项
- 不支持启用了双重身份验证的账户(Web API 每次登录都需要新的 OTP)。请使用未启用 2FA 的账户。
- 私信的类型显示为
anonymous,这是 Synology 对一对一对话的称呼。 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。