risingwave-mcp

risingwavelabs/risingwave-mcp

3.4

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 and risingwave-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

  1. In the VS Code Chat panel: Agent Mode โ†’ Select Tools โ†’ Create MCP Server.
  2. 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 password
  • localhost: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"
      }
    }
  }
}
  1. Start chatting!

    Ask questions like:

    • "List my tables"
    • "Create a materialized view that aggregates payments by minute"

Claude Desktop

  1. Add the MCP server to your claude_desktop_config.json under mcpServers:
{
  "mcpServers": {
    "risingwave-mcp": {
      "command": "python",
      "args": ["path_to/risingwave-mcp/src/main.py"],
      "env": {
        "RISINGWAVE_CONNECTION_STR": "postgresql://root:root@localhost:4566/dev"
      }
    }
  }
}
  1. 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 NameDescription
list_databasesList all databases
show_tablesList tables in the current database
describe_tableDescribe the schema of a table
run_select_querySafely execute a SELECT query
explain_queryGet query execution plan without running it
explain_analyzeGet detailed execution statistics by running the query (only in v2.4)
table_row_countReturn row count for a table
check_table_existsCheck whether a table exists
list_schemasList all available schemas
list_materialized_viewsList all materialized views
get_table_columnsReturn detailed info about table columns
create_materialized_viewCreate a new materialized view
drop_materialized_viewDrop an existing materialized view
execute_ddl_statementRun generic DDL like CREATE TABLE
get_database_versionReturn the current RisingWave version
flush_databaseForce flush any pending writes

For a full list of tools, see .