A Model Context Protocol (MCP) server for Svelte projects using the qrwc-svelte npm package. This MCP server provides tools, resources, and prompts to help LLMs build UI components that interact with Q-SYS systems.
ā ļø Experimental: This MCP server is currently in the experimental stage. The API and features may change.
š” Recommended: For the best experience, use this MCP server alongside the Official Svelte MCP server to get comprehensive Svelte documentation and code analysis.
The QRWC Svelte MCP server helps LLMs and AI agents write better code for Q-SYS systems by providing:
The setup varies based on your chosen MCP client. The core IP address must be provided as the first argument, and you can optionally pass --no-svelte to disable Svelte-specific resources and prompts (useful if you're using a different UI framework).
npx qrwc-svelte-mcp <core-ip> [--no-svelte]
To include the QRWC Svelte MCP server in Claude Code, run:
claude mcp add -t stdio -s [scope] qrwc-svelte -- npx qrwc-svelte-mcp <core-ip>
Replace <core-ip> with your Q-SYS Core IP address. The [scope] must be user, project or local.
To disable Svelte-specific resources:
claude mcp add -t stdio -s [scope] qrwc-svelte -- npx qrwc-svelte-mcp <core-ip> --no-svelte
In the Settings > Developer section, click on Edit Config. It will open the folder with a claude_desktop_config.json file in it. Edit the file to include the following configuration:
{
"mcpServers": {
"qrwc-svelte": {
"command": "npx",
"args": ["-y","qrwc-svelte-mcp","<core-ip>"]
}
}
}
Replace <core-ip> with your Q-SYS Core IP address.
To disable Svelte-specific resources:
{
"mcpServers": {
"qrwc-svelte": {
"command": "npx",
"args": ["-y","qrwc-svelte-mcp","<core-ip>", "--no-svelte"]
}
}
}
Add the following to your config.toml (which defaults to ~/.codex/config.toml):
[mcp_servers.qrwc-svelte]
command = "npx"
args = ["-y", "qrwc-svelte-mcp", "<core-ip>"]
Replace <core-ip> with your Q-SYS Core IP address.
To disable Svelte-specific resources:
[mcp_servers.qrwc-svelte]
command = "npx"
args = ["-y", "qrwc-svelte-mcp", "<core-ip>", "--no-svelte"]
To include the QRWC Svelte MCP server in Gemini CLI, run:
gemini mcp add -t stdio -s [scope] qrwc-svelte npx -y qrwc-svelte-mcp <core-ip>
Replace <core-ip> with your Q-SYS Core IP address. The [scope] must be user, project or local.
To disable Svelte-specific resources:
gemini mcp add -t stdio -s [scope] qrwc-svelte npx -y qrwc-svelte-mcp <core-ip> --no-svelte
Run the command:
opencode mcp add
and follow the instructions, selecting 'Local' under the 'Select MCP server type' prompt:
opencode mcp add
ā Add MCP server
ā
ā Enter MCP server name
ā qrwc-svelte
ā
ā Select MCP server type
ā Local
ā
ā Enter command to run
ā npx -y qrwc-svelte-mcp <core-ip>
Replace <core-ip> with your Q-SYS Core IP address.
npx -y qrwc-svelte-mcp <core-ip> in the input and press Enter (replace <core-ip> with your Q-SYS Core IP address)qrwc-svelteGlobal or Workspace MCP serverTo disable Svelte-specific resources, use npx -y qrwc-svelte-mcp <core-ip> --no-svelte in step 4.
It will open a file with your MCP servers where you can add the following configuration:
{
"mcpServers": {
"qrwc-svelte": {
"command": "npx",
"args": ["-y", "qrwc-svelte-mcp", "<core-ip>"]
}
}
}
Replace <core-ip> with your Q-SYS Core IP address.
To disable Svelte-specific resources:
{
"mcpServers": {
"qrwc-svelte": {
"command": "npx",
"args": ["-y", "qrwc-svelte-mcp", "<core-ip>", "--no-svelte"]
}
}
}
Model Context Protocol (MCP) ServersIt will open a popup with MCP server config where you can add the following configuration:
{
"qrwc-svelte": {
"command": "npx",
"args": ["-y", "qrwc-svelte-mcp", "<core-ip>"]
}
}
Replace <core-ip> with your Q-SYS Core IP address.
To disable Svelte-specific resources:
{
"qrwc-svelte": {
"command": "npx",
"args": ["-y", "qrwc-svelte-mcp", "<core-ip>", "--no-svelte"]
}
}
If we didn't include the MCP client you are using, refer to their documentation for stdio servers and use npx as the command with -y qrwc-svelte-mcp <core-ip> as the arguments. You can optionally add --no-svelte as an additional argument to disable Svelte-specific features.
The MCP server provides the following tools:
get_componentsGet a list of components that are currently available on a Q-SYS core.
Input: None
Output:
success: Boolean indicating if the request was successfulerror: Optional error messagedata: Array of component objects with:name: Component namecontrolCount: Number of controls in the componentget_controlsGet all controls on a Component, including the type and read/write direction of the control.
Input:
componentName: The name of the component to list controls for. Use the get_components tool to get a list of component names.Output:
success: Boolean indicating if the request was successfulerror: Optional error messagedata: Array of control objects with:name: Control nametype: Control type (e.g., "Boolean", "Integer", "Float", "String")direction: Control direction ("Read", "Write", or "ReadWrite")qrwc-taskPerform a task that involves the creation or modification of UI elements that are part of a Q-SYS Design. This prompt ensures that common Q-SYS terms and qrwc-svelte knowledge is in the context window.
Arguments:
task: Description of the task to performNote: This prompt is only available when NOT using the --no-svelte flag.
The following resources are available to provide documentation and examples for working with qrwc-svelte:
static://qrwc-svelte/setupInitial setup and configuration guide for using QRWC with Svelte projects.
static://qrwc-svelte/core-conceptsCore concepts and terminology for working with Q-SYS systems and the QRWC protocol.
static://qrwc-svelte/componentsDocumentation on working with Q-SYS Components in a Svelte project, including component instantiation and usage.
static://qrwc-svelte/controlsDocumentation on working with Q-SYS controls, including how to read and write control values.
static://qrwc-svelte/button-examplesExample code for working with Boolean controls (buttons, toggles, etc.).
static://qrwc-svelte/knob-examplesExample code for working with Integer, Float, and other numeric type controls (knobs, sliders, etc.).
static://qrwc-svelte/text-examplesExample code for working with Text/String based controls.
Note: All resources are only available when NOT using the --no-svelte flag.
Connect to a Q-SYS Core at IP address 192.168.1.100:
npx -y qrwc-svelte-mcp 192.168.1.100
If you're using a different UI framework (not Svelte), you can disable Svelte-specific resources and prompts:
npx -y qrwc-svelte-mcp 192.168.1.100 --no-svelte
When using --no-svelte, only the core tools (get_components and get_controls) are available. All Svelte-specific resources and the qrwc-task prompt are disabled.
This is helpful if you are using another framework, and want to create your own prompts that instruct the LLM to fetch controls and components from a Q-SYS Core.
Apache 2.0