RTC MCP Server

by gnuhpc

1 411 downloads Not rated yet
GitHub

About

A Model Context Protocol (MCP) server implementation for managing Alibaba Cloud Realtime Computing Flink resources

Explore

- Create and manage Flink clusters
- Create and manage Flink SQL jobs
- Deploy and control Flink applications
- Monitor job status and metrics
- Create and manage savepoints
- List and manage deployments
- Workspace and namespace management

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name RTC MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- JDK 17 or higher
- Maven 3.6 or higher
- Alibaba Cloud account with RTC (Realtime Compute) access
- Alibaba Cloud Access Key ID and Secret

To use this server as an MCP client, add the following configuration to your MCP settings file (e.g., cline_mcp_settings.json):

{
  "mcpServers": {
    "rtc-mcp-server": {
      "command": "java",
      "args": [
        "-Dtransport.mode=stdio",
        "-Dspring.main.web-application-type=none",
        "-Dspring.main.banner-mode=off",
        "-Dlogging.file.name=/path/to/rtc-mcp-server/mcpserver.log",
        "-jar",
        "/path/to/rtc-mcp-server/target/rtc-mcp-server-1.0-SNAPSHOT.jar"
      ],
      "env": {
        "ALIYUN_ACCESS_KEY_ID": "your-access-key-id",
        "ALIYUN_ACCESS_KEY_SECRET": "your-access-key-secret"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Replace /path/to/rtc-mcp-server with your actual server path and provide your Alibaba Cloud credentials in the environment variables.

start_job

Start a deployed Flink job

stop_job

Stop a running Flink job

list_jobs

List all jobs in a deployment

delete_job

Delete a non-running job

get_job_diagnosis

Get job diagnosis information

create_deployment

Create a new Flink deployment

get_deployment_metrics

Get deployment metrics

create_savepoint

Create a savepoint for a job

create_variable

Create a new variable

update_variable

Update an existing variable

delete_variable

Delete a variable

list_variables

List variables with pagination

create_workspace

Create a new workspace

get_workspace_info

Get workspace information

list_workspaces

List all workspaces

get_catalogs

Get catalog information

get_deployment_databases

Get database information

get_tables

Get table information

execute_sql_statement

Execute SQL statements

The server provides the following MCP tools:

1. Job Management
- start_job: Start a deployed Flink job
- stop_job: Stop a running Flink job
- list_jobs: List all jobs in a deployment
- delete_job: Delete a non-running job
- get_job_diagnosis: Get job diagnosis information

2. Deployment Management
- create_deployment: Create a new Flink deployment
- get_deployment_metrics: Get deployment metrics
- create_savepoint: Create a savepoint for a job

3. Variable Management
- create_variable: Create a new variable
- update_variable: Update an existing variable
- delete_variable: Delete a variable
- list_variables: List variables with pagination

4. Workspace Management
- create_workspace: Create a new workspace
- get_workspace_info: Get workspace information
- list_workspaces: List all workspaces

5. Catalog Operations
- get_catalogs: Get catalog information
- get_deployment_databases: Get database information
- get_tables: Get table information
- execute_sql_statement: Execute SQL statements

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "rtc mcp server": {
            "rtc-mcp-server": {
                "command": "java",
                "args": [
                    "-Dtransport.mode=stdio",
                    "-Dspring.main.web-application-type=none",
                    "-Dspring.main.banner-mode=off",
                    "-Dlogging.file.name=/path/to/rtc-mcp-server/mcpserver.log",
                    "-jar",
                    "/path/to/rtc-mcp-server/target/rtc-mcp-server-1.0-SNAPSHOT.jar"
                ],
                "env": {
                    "ALIYUN_ACCESS_KEY_ID": "your-access-key-id",
                    "ALIYUN_ACCESS_KEY_SECRET": "your-access-key-secret"
                },
                "disabled": false,
                "autoApprove": []
            }
        }
    }
}

McpServers

{
    "rtc-mcp-server": {
        "command": "java",
        "args": [
            "-Dtransport.mode=stdio",
            "-Dspring.main.web-application-type=none",
            "-Dspring.main.banner-mode=off",
            "-Dlogging.file.name=/path/to/rtc-mcp-server/mcpserver.log",
            "-jar",
            "/path/to/rtc-mcp-server/target/rtc-mcp-server-1.0-SNAPSHOT.jar"
        ],
        "env": {
            "ALIYUN_ACCESS_KEY_ID": "your-access-key-id",
            "ALIYUN_ACCESS_KEY_SECRET": "your-access-key-secret"
        },
        "disabled": false,
        "autoApprove": []
    }
}

A Model Context Protocol (MCP) server implementation for managing Alibaba Cloud Realtime Compute for Apache Flink resources. This server provides a standardized interface for AI models to interact with Alibaba Cloud Flink services.

Features

- Create and manage Flink clusters
- Create and manage Flink SQL jobs
- Deploy and control Flink applications
- Monitor job status and metrics
- Create and manage savepoints
- List and manage deployments
- Workspace and namespace management

Prerequisites

- JDK 17 or higher
- Maven 3.6 or higher
- Alibaba Cloud account with RTC (Realtime Compute) access
- Alibaba Cloud Access Key ID and Secret

Client Configuration

To use this server as an MCP client, add the following configuration to your MCP settings file (e.g., cline_mcp_settings.json):

{
  "mcpServers": {
    "rtc-mcp-server": {
      "command": "java",
      "args": [
        "-Dtransport.mode=stdio",
        "-Dspring.main.web-application-type=none",
        "-Dspring.main.banner-mode=off",
        "-Dlogging.file.name=/path/to/rtc-mcp-server/mcpserver.log",
        "-jar",
        "/path/to/rtc-mcp-server/target/rtc-mcp-server-1.0-SNAPSHOT.jar"
      ],
      "env": {
        "ALIYUN_ACCESS_KEY_ID": "your-access-key-id",
        "ALIYUN_ACCESS_KEY_SECRET": "your-access-key-secret"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Replace /path/to/rtc-mcp-server with your actual server path and provide your Alibaba Cloud credentials in the environment variables.

Available Tools

The server provides the following MCP tools:

1. Job Management
- start_job: Start a deployed Flink job
- stop_job: Stop a running Flink job
- list_jobs: List all jobs in a deployment
- delete_job: Delete a non-running job
- get_job_diagnosis: Get job diagnosis information

2. Deployment Management
- create_deployment: Create a new Flink deployment
- get_deployment_metrics: Get deployment metrics
- create_savepoint: Create a savepoint for a job

3. Variable Management
- create_variable: Create a new variable
- update_variable: Update an existing variable
- delete_variable: Delete a variable
- list_variables: List variables with pagination

4. Workspace Management
- create_workspace: Create a new workspace
- get_workspace_info: Get workspace information
- list_workspaces: List all workspaces

5. Catalog Operations
- get_catalogs: Get catalog information
- get_deployment_databases: Get database information
- get_tables: Get table information
- execute_sql_statement: Execute SQL statements

Build and Run

1. Build the project:

mvn clean package

2. Run the server:

java -jar target/rtc-mcp-server-1.0-SNAPSHOT.jar

For development mode with stdio transport:

java -Dtransport.mode=stdio -Dspring.main.web-application-type=none -jar target/rtc-mcp-server-1.0-SNAPSHOT.jar

Server Modes

The server supports multiple transport modes:
- webflux: Default mode using Spring WebFlux
- stdio: Command-line mode for development and testing

Logging

Logs are configured in application.yml with the following default settings:
- Root level: WARN
- Application level (com.rtc): INFO
- Log files are rotated daily with GZIP compression

Contributing

1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Create a pull request

License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.