RisingWave MCP Server is a lightweight Model Context Protocol (MCP) server that lets you query and manage your RisingWave streaming database using natural language through AI assistants like VS Code Copilot and Claude Desktop.
- Real-time access to RisingWave tables, materialized views, and streaming data
- Built on
FastMCP
andrisingwave-py
with high-performance STDIO transport - Seamless integration with VS Code Copilot, Claude Desktop, and other MCP-compatible tools
git clone https://github.com/risingwavelabs/risingwave-mcp.git
cd risingwave-mcp
pip install -r requirements.txt
You’ll need a running RisingWave instance—either locally or in the cloud.
# Install RisingWave standalone
curl -L https://risingwave.com/sh | sh
# macOS
risingwave
# Linux
./risingwave
For Docker or other options, see the docs: 👉 https://docs.risingwave.com/get-started/quickstart
You can also spin up a free-tier cluster in seconds: 👉 https://cloud.risingwave.com/auth/signin
- In the VS Code Chat panel: Agent Mode → Select Tools → Create MCP Server.
- Add the following to
.vscode/mcp.json
.
{
"servers": {
"risingwave-mcp": {
"type": "stdio",
"command": "python",
"args": ["path_to/risingwave-mcp/src/main.py"],
"env": {
"RISINGWAVE_CONNECTION_STR": "postgresql://root:root@localhost:4566/dev"
}
}
}
}
Explanation:
postgresql://
— Use PostgreSQL protocol (RisingWave is compatible)root:root@
— Username and passwordlocalhost:4566
— Host and port/dev
— Database name
{
"servers": {
"risingwave-mcp": {
"type": "stdio",
"command": "python",
"args": ["path_to/risingwave-mcp/src/main.py"],
"env": {
"RISINGWAVE_HOST": "localhost",
"RISINGWAVE_PORT": "4566",
"RISINGWAVE_USER": "root",
"RISINGWAVE_PASSWORD": "root",
"RISINGWAVE_DATABASE": "dev",
"RISINGWAVE_SSLMODE": "disable"
}
}
}
}
-
Start chatting!
Ask questions like:
- "List my tables"
- "Create a materialized view that aggregates payments by minute"
- Add the MCP server to your
claude_desktop_config.json
undermcpServers
:
{
"mcpServers": {
"risingwave-mcp": {
"command": "python",
"args": ["path_to/risingwave-mcp/src/main.py"],
"env": {
"RISINGWAVE_CONNECTION_STR": "postgresql://root:root@localhost:4566/dev"
}
}
}
}
- Restart Claude Desktop to apply changes.
You can run the MCP server directly from the CLI:
python src/main.py
This will listen for MCP messages over STDIN/STDOUT.
Tool Name | Description |
---|---|
list_databases |
List all databases |
show_tables |
List tables in the current database |
describe_table |
Describe the schema of a table |
run_select_query |
Safely execute a SELECT query |
explain_query |
Get query execution plan without running it |
explain_analyze |
Get detailed execution statistics by running the query (only in v2.4) |
table_row_count |
Return row count for a table |
check_table_exists |
Check whether a table exists |
list_schemas |
List all available schemas |
list_materialized_views |
List all materialized views |
get_table_columns |
Return detailed info about table columns |
create_materialized_view |
Create a new materialized view |
drop_materialized_view |
Drop an existing materialized view |
execute_ddl_statement |
Run generic DDL like CREATE TABLE |
get_database_version |
Return the current RisingWave version |
flush_database |
Force flush any pending writes |
For a full list of tools, see src/tools.py
.