mcpField
S
Synology Chat

Synology Chat

Local
github.com/Louis-LastellaCommunication0Updated 2w ago

About Synology Chat

Synology Chat is an MCP server for self-hosted Synology Chat instances, enabling users to work with channels, direct messages and users from an MCP client. It logs in as a regular DSM user through the Synology Web API, so access follows that account's Chat visibility without bot or webhook setup.

Key features

  1. 01List joined channels and DMs
  2. 02Read recent posts and files
  3. 03Find users by username
  4. 04Send messages to channels or DMs
  5. 05Upload local files

Use cases

  1. 01Review recent channel conversations
  2. 02Find a user and locate a DM
  3. 03Send a message from an MCP client
  4. 04Share a local file in a conversation

MCP support

The MCP server exposes tools to list channels and DMs, read recent posts, find users, send messages and upload files on a Synology Chat instance.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"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>"
}
}
}
}
Run commanddocker 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
Environment variables to set
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_PASSSecretPassword of the Synology account
SYNOLOGY_CHAT_VERIFY_SSLSet to false for self-signed certificates

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/louis-lastella/synology-chat-mcp:0.2.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project 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):

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

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:

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

uv sync
uv run python tests/test_parse_url.py

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.