risingwavelabs/risingwave-mcp
If you are the rightful owner of risingwave-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
RisingWave MCP Server is a lightweight Model Context Protocol server designed to facilitate natural language querying and management of RisingWave streaming databases through AI assistants.
RisingWave MCP Server
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.
๐ Features
- 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
๐ฆ Installation
git clone https://github.com/risingwavelabs/risingwave-mcp.git
cd risingwave-mcp
pip install -r requirements.txt
โ๏ธ Setting Up
Youโll need a running RisingWave instanceโeither locally or in the cloud.
Option 1: Run RisingWave Locally
# 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
Option 2: Use RisingWave Cloud
You can also spin up a free-tier cluster in seconds: ๐ https://cloud.risingwave.com/auth/signin
๐งฉ Integration
VS Code Copilot
- In the VS Code Chat panel: Agent Mode โ Select Tools โ Create MCP Server.
- Add the following to
.vscode/mcp.json
.
โ Option 1: Use a connection string
{
"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
โ Option 2: Use individual parameters
{
"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"
Claude Desktop
- 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.
Manual Testing (Dev / CI)
You can run the MCP server directly from the CLI:
python src/main.py
This will listen for MCP messages over STDIN/STDOUT.
๐ ๏ธ Available Tools
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 .