SnowLuma Remote MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SnowLuma Remote MCP Serversend a message to group 123456 saying hello"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SnowLuma Remote MCP Server
💡 Why This Project?
The official and community MCP solutions for SnowLuma (such as @snowluma/mcp) primarily target desktop environments (Claude Desktop, Cline, DSH) using local stdio process pipes.
However, when running AI agents on mobile devices (e.g. RikkaHub on Android) or remote cloud containers, clients cannot spawn local processes inside your server. They require a Remote MCP endpoint (Streamable HTTP / SSE) over public HTTPS.
Instead of wrapping bloated subprocess gateways like supergateway (which suffer from process stalls, high memory consumption, and zombie pipes during mobile network switches), SnowLuma Remote MCP provides an ultra-lightweight, native Python + FastMCP server.
Key Highlights
🚀 Native Remote Architecture: Pure asynchronous ASGI service, zero subprocess wrappers, zero pipe stalls.
🪶 Extremely Lightweight: Built on Python 3.12 + official
mcpSDK; resident memory is only ~15 MB (vs 100MB+ for Node.js suites).💬 Tailored for AI Agents: Flat, intuitive tooling for messaging, history retrieval, group management, and quotation replies.
✨ Full 280+ QQ System Reaction Support: Built-in 345+ popular Chinese aliases & network memes directly mapped to Linux NTQQ official Reaction IDs, plus full integer ID passthrough.
🛡️ Hardened Production Security: Bearer Token authentication, DNS-rebinding protection bypass for reverse proxies, and single-port HTTPS multiplexing.
⚡ Universal OneBot Pass-through: Includes
call_onebot_actionto access all 170+ native OneBot v11 actions without writing extra code.
Related MCP server: astral-bridge
🏗️ Architecture
flowchart TD
Client["📱 Mobile Client (Android RikkaHub)"] -->|"HTTPS POST + Bearer Token<br/>(Streamable HTTP: /mcp)"| Nginx["🌐 Nginx (Reverse Proxy)"]
Nginx -->|"HTTP (127.0.0.1:8766)"| MCP["⚡ SnowLuma Remote MCP Server (FastMCP ASGI)<br/>• BearerAuthMiddleware<br/>• 17 Standard Agent Tools<br/>• 280+ Official Reactions & 345+ Meme Map"]
MCP -->|"HTTP POST (127.0.0.1:3000)"| SnowLuma["🐧 SnowLuma Runtime (Linux NTQQ + OneBot v11)"]🛠️ Tool Catalog (17 Tools)
1. Messaging & Interaction
Tool | Description | Highlights |
| Send group message | Supports |
| Send private message | Supports plain text and CQ codes |
| Universal message sender | Unified interface for both group and private |
| Recall message | Recalls a message within timeout |
| Get message detail | Retrieves sender and raw content by message ID |
| Read recent group history | Strips redundant fields to save LLM tokens |
| Set message Reaction | Supports 345+ Chinese names (e.g. |
| List reaction emojis | Returns categorized lists and full dictionary with 345+ mappings |
2. Group & Profile Management
Tool | Description | Highlights |
| Get bot QQ number and nickname | Retrieves logged-in account info |
| Get SnowLuma service status | Returns connection health and online status |
| List all friends | Retrieves friend account list |
| List all joined groups | Returns group IDs, names, and capacity |
| Get group details | Supports |
| Get complete group member list | Returns full member details |
| Mute/unmute group member | Duration in seconds (0 = unmute) |
| Change member group nickname | Sets custom group card |
| Kick member from group | Optional |
3. Escape Hatch
Tool | Description | Highlights |
| Universal OneBot pass-through | Direct access to all 170+ OneBot v11 actions |
🚀 Quick Start
1. Clone & Install
git clone https://github.com/MorphieEndless/snowluma-remote-mcp.git
cd snowluma-remote-mcp
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt2. Configure Environment
cp .env.example .envEdit .env:
MCP_HOST=127.0.0.1
MCP_PORT=8766
MCP_AUTH_TOKEN=generate_a_secure_token_here
SNOWLUMA_API_BASE=http://127.0.0.1:3000
SNOWLUMA_API_TOKEN=your_snowluma_onebot_token_here
SNOWLUMA_TIMEOUT=30.03. Run
python server.pyHealth check:
curl http://127.0.0.1:8766/health🌐 Production Deployment
Systemd Daemon
sudo cp systemd/snowluma-mcp.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now snowluma-mcp.serviceNginx Reverse Proxy
Add the following locations into your HTTPS server block:
# Remote MCP Endpoint
location /mcp {
proxy_pass http://127.0.0.1:8766/mcp;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Disable buffering for streamable transport
proxy_buffering off;
proxy_cache off;
chunked_transfer_encoding on;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
# Health Probe (Exempt from auth)
location /mcp-health {
proxy_pass http://127.0.0.1:8766/health;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}📱 Connecting with RikkaHub (Android)
In RikkaHub:
Navigate to Settings → MCP → Add (+)
Select Streamable HTTP protocol
Fill in:
Name:
SnowLumaURL:
https://your-domain.com/mcpAuthorization:
Bearer <your_MCP_AUTH_TOKEN>
Save and verify that your tools appear in your Agent's tool palette!
🎭 Reaction Emojis Cheat Sheet (280+ Supported)
When calling set_msg_emoji_like, you can pass either the Chinese Name, Meme Alias, or the Numeric ID:
Categorized Popular Picks
Approval & Praise (认同赞美):
点赞/赞(76),超级赞(364),666(356),强(76),OK/好的(124),收到(428),鼓掌(99),崇拜(318)
Affection & Warmth (喜爱亲昵):
贴贴/蹭蹭(350),比心(319),爱心/红心(66),抱抱(49),亲亲(109),蹭一蹭(242),么么哒(410)
Fun & Memes (幽默搞怪):
狗头/汪汪(277),菜狗/菜汪(317),打call(311),摸鱼(285),尊嘟假嘟(354),喵喵(307),摇起来(413)
Shock & Banter (震惊吐槽):
吃瓜(271),问号脸/疑惑(268),托腮(212),辣眼睛(265),不是吧(476),给你一拳(474),裂开(357),大怨种(344)
Mood & Empathy (情绪状态):
笑哭(182),坏笑(101),微笑(14),大哭(9),流泪(5),委屈(106),捂脸(264),emo(382),头秃(267)
(Call list_supported_emojis tool at any time to get the complete dictionary of all 345+ aliases and 280+ system IDs).
📄 License
Distributed under the MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
Command your AI agents by voice: PTT rooms, channels, E2EE DMs, agent email, private recall.
MCP server for Sendbird — chat users, channels, members, and messages from your AI client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA MCP server that exposes QQ bot capabilities over Streamable HTTP, enabling clients to query bot status, read group and friend info, fetch chat history, and send group/private text messages.2MIT
- AlicenseBqualityBmaintenanceConnects QQ via NapCat OneBot v11 to an Astral Code app-server, exposing MCP tools for sending messages, files, images, and fetching conversation history.101Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables cloud agents like Notion AI to connect to a local Roblox Studio MCP server via a persistent SSE bridge with authentication.-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to manage DoneTick chores, subtasks, labels, projects, members, and smart sensor triggers over HTTP SSE.MIT