mcpField
S
Synology Chat

Synology Chat

本地服务
github.com/Louis-Lastella通信协作02 周前更新

关于 Synology Chat

Synology Chat 是面向自托管 Synology Chat 实例的 MCP 服务,允许用户通过 MCP 客户端操作频道、私信和用户。它通过 Synology Web API 以普通 DSM 用户身份登录,因此可见内容与该账户在 Chat 中的权限一致,无需配置机器人或 Webhook。

主要功能

  1. 01列出已加入的频道和私信
  2. 02读取近期帖子与文件
  3. 03按用户名查找用户
  4. 04向频道或私信发送消息
  5. 05上传本地文件

适用场景

  1. 01查看频道近期对话
  2. 02查找用户并定位私信
  3. 03通过 MCP 客户端发送消息
  4. 04在对话中分享本地文件

MCP 相关

MCP 服务提供工具,可在 Synology Chat 实例中列出频道和私信、读取近期帖子、查找用户、发送消息及上传文件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 中看到的内容与该用户完全一致(频道和私信),无需配置机器人或 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。