Backstage MCP Actions
OFFICIAL SERVERBackstage backend plugin that serves your portal's registered actions as MCP tools over HTTP
Browse SnowLuma's OneBot v11 action reference for QQ bots, and optionally call those actions
By SnowLuma TypeScript Local · stdio CommunicationDeveloper tools
85 popularity score ★ 3.8k ↓ 51k/wk
Opens the app, which asks before it adds the server.
claude mcp add snowluma -- npx -y @snowluma/mcp{
"mcpServers": {
"snowluma": {
"command": "npx",
"args": [
"-y",
"@snowluma/mcp"
]
}
}
}{
"mcpServers": {
"snowluma": {
"command": "npx",
"args": [
"-y",
"@snowluma/mcp"
]
}
}
}{
"servers": {
"snowluma": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@snowluma/mcp"
]
}
}
}[mcp_servers.snowluma]
command = "npx"
args = ["-y", "@snowluma/mcp"]gemini mcp add --scope user snowluma npx -- -y @snowluma/mcpSNOWLUMA_MCP_ENDPOINT |
Optional: OneBot HTTP endpoint of a running SnowLuma, e.g. http://127.0.0.1:3000/. Unset means docs-only. |
|---|---|
SNOWLUMA_MCP_TOKEN |
Optional: Access token sent as a Bearer header, when the endpoint requires one. |
SNOWLUMA_MCP_MODE |
Optional: docs, read or write. Defaults to read with an endpoint, docs without; ignored without an endpoint. |
SNOWLUMA_MCP_TIMEOUT_MS |
Optional: Request timeout, and idle timeout for streams. Default 30000. |
SNOWLUMA_MCP_STREAM_DIR |
Optional: Folder for finished stream downloads. Default: a onebot-mcp-downloads folder in the system temp dir. |
SNOWLUMA_MCP_UPLOAD_ROOT |
Optional: Existing folder automatic uploads may read from; uploads are off when unset. |
SNOWLUMA_MCP_MAX_STREAM_BYTES |
Optional: Per-file download/upload cap in bytes, up to 4 GiB (the default). |
SnowLuma is a third-party runtime that turns a QQ client session into OneBot v11 actions and events. This package, @snowluma/mcp, is its MCP server. In its default mode it needs nothing else: it serves the OneBot action catalog that ships inside the package, so an assistant can list actions by category, search them, and fetch one action's parameters, constraints and JSON Schema without loading the whole reference. The full catalog is also offered as the resource snowluma://onebot/actions.
When SNOWLUMA_MCP_ENDPOINT points at the OneBot HTTP adapter of a running SnowLuma instance, the server can also call actions. In read mode (the default once an endpoint is set) query_action runs only actions the catalog marks read-only. In write mode invoke_action can run any catalog action, including sending messages, changing groups and the file stream actions that download to, or upload from, the machine the server runs on. Actions outside the catalog are refused by both tools.
The catalog is a snapshot taken when the package is built, so it matches the SnowLuma release it was published with (1.14.22 at the time of writing) rather than whatever instance you connect to. One detail the README leaves out: in server.ts, setting SNOWLUMA_MCP_MODE to read or write without an endpoint is ignored with a warning on stderr and the server stays docs-only.
| Runtime | Node.js 22+ |
|---|
Node.js with npx. Docs mode needs nothing more. Execution needs a running SnowLuma instance (a QQ client plus the SnowLuma runtime, whose Lite build wants Node.js 22.13+) with its OneBot httpServer adapter enabled, and that endpoint's access token if it has one.
Speaks stdio only. Execution covers OneBot actions over HTTP; it does not receive events. Stream actions count as writes, so file downloads and uploads need write mode. At most four stream actions run at once; files are capped at 4 GiB each by default (SNOWLUMA_MCP_MAX_STREAM_BYTES), downloads share a quota of twice that cap, and finished downloads are never deleted by the server. Automatic upload is off unless SNOWLUMA_MCP_UPLOAD_ROOT is set. SnowLuma is not affiliated with Tencent/QQ, is offered for study and research only, and its makers tell users to follow the QQ user agreement.
Suits developers writing OneBot v11 bots against SnowLuma who want an assistant to look up action names and parameters; docs mode reads nothing outside the package and is low-stakes. Execution suits operators who already run SnowLuma and want an assistant to inspect or drive a QQ account, read mode first. Write mode lets the assistant send messages as that account, so pick it only with a client that asks before destructive calls. Not useful for other OneBot implementations' extras, or for anyone without a QQ bot setup.
list_actionsget_actionsearch_actionslist_categoriesquery_actioninvoke_action