Metadata-Version: 2.4
Name: iflow-mcp_ocean-zhc-seatunnel-mcp
Version: 0.1.1
Summary: A Model Context Protocol (MCP) server for interacting with SeaTunnel through LLM interfaces
Author: SeaTunnel MCP Team
License: Apache License
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.95.0
Requires-Dist: uvicorn>=0.21.1
Requires-Dist: pydantic>=2.0.0
Requires-Dist: httpx>=0.24.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: requests>=2.28.2
Requires-Dist: mcp>=0.1.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: black>=23.1.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.1; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: build>=1.0.3; extra == "dev"
Requires-Dist: twine>=4.0.2; extra == "dev"
Requires-Dist: pre-commit>=3.3.2; extra == "dev"
Dynamic: license-file

# SeaTunnel MCP Server

A Model Context Protocol (MCP) server for interacting with SeaTunnel through LLM interfaces like Claude.

![SeaTunnel MCP Logo](./docs/img/seatunnel-mcp-logo.png)

![SeaTunnel MCP Server](./docs/img/img.png)

## Operation Video

To help you better understand the features and usage of SeaTunnel MCP, we provide a video demonstration. Please refer to the link below or directly check the video file in the project documentation directory.

https://www.youtube.com/watch?v=JaLA8EkZD7Q

[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/JaLA8EkZD7Q/0.jpg)](https://www.youtube.com/watch?v=JaLA8EkZD7Q)


> **Tip**: If the video does not play directly, make sure your device supports MP4 format and try opening it with a modern browser or video player. 


## Features

* Job management (submit, stop, monitor)
* System monitoring and information retrieval
* REST API interaction with SeaTunnel services
* Built-in logging and monitoring tools
* Dynamic connection configuration
* Comprehensive job information and statistics

## Installation

```bash
# Clone repository
git clone <repository_url>
cd seatunnel-mcp

# Create virtual environment and install
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e .
```

## Requirements

* Python ≥ 3.12
* Running SeaTunnel instance
* Node.js (for testing with MCP Inspector)

## Usage

### Environment Variables

```
SEATUNNEL_API_URL=http://localhost:8090  # Default SeaTunnel REST API URL
SEATUNNEL_API_KEY=your_api_key           # Optional: Default SeaTunnel API key
```

### Dynamic Connection Configuration

The server provides tools to view and update connection settings at runtime:

* `get-connection-settings`: View current connection URL and API key status
* `update-connection-settings`: Update URL and/or API key to connect to a different SeaTunnel instance

Example usage through MCP:

```json
// Get current settings
{
  "name": "get-connection-settings"
}

// Update connection settings
{
  "name": "update-connection-settings",
  "arguments": {
    "url": "http://new-host:8090",
    "api_key": "new-api-key"
  }
}
```

### Job Management

The server provides tools to submit and manage SeaTunnel jobs:

* `submit-job`: Submit a new job with job configuration
* `submit-jobs`: Submit multiple jobs in batch
* `stop-job`: Stop a running job
* `get-job-info`: Get detailed information about a specific job
* `get-running-jobs`: List all currently running jobs
* `get-finished-jobs`: List all finished jobs by state (FINISHED, CANCELED, FAILED, etc.)

### Running the Server

```bash
python -m src.seatunnel_mcp
```

### Usage with Claude Desktop

To use this with Claude Desktop, add the following to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "seatunnel": {
      "command": "python",
      "args": ["-m", "src.seatunnel_mcp"],
      "cwd": "Project root directory"
    }
  }
}
```

### Testing with MCP Inspector

```bash
npx @modelcontextprotocol/inspector python -m src.seatunnel_mcp
```

## Available Tools

### Connection Management

* `get-connection-settings`: View current SeaTunnel connection URL and API key status
* `update-connection-settings`: Update URL and/or API key to connect to a different instance

### Job Management

* `submit-job`: Submit a new job with configuration in HOCON format
* `submit-job/upload`: submit job source upload configuration file
* `submit-jobs`: Submit multiple jobs in batch, directly passing user input as request body
* `stop-job`: Stop a running job with optional savepoint
* `get-job-info`: Get detailed information about a specific job
* `get-running-jobs`: List all currently running jobs
* `get-running-job`: Get details about a specific running job
* `get-finished-jobs`: List all finished jobs by state

### System Monitoring

* `get-overview`: Get an overview of the SeaTunnel cluster
* `get-system-monitoring-information`: Get detailed system monitoring information

## Changelog

### v1.2.0 (2025-06-10)

**New Features in v1.2.0**
- **SSE Support**: Added `st-mcp-sse` for real-time communication with SeaTunnel MCP via Server-Sent Events (SSE). Corresponding sse branch
- **UV/Studio Mode**: Added `st-mcp-uv` (or `st-mcp-studio`) to support running the MCP server using the `uv` tool for improved performance and async support. Corresponding to uv branch

#### Example `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "st-mcp-sse": {
      "url": "http://your-server:18080/sse"
    },
    "st-mcp-uv": {
      "command": "uv",
      "args": ["run", "seatunnel-mcp"],
      "env": {
        "SEATUNNEL_API_URL": "http://127.0.0.1:8080"
      }
    }
  }
}

```

### v1.1.0 (2025-04-10)

- **New Feature**: Added `submit-jobs` and `submit-job/upload` tool for batch job submission and Document submission operations
  - Allows submitting multiple jobs at once with a single API call
  - Input is passed directly as the request body to the API
  - Supports JSON format for job configurations
  - Allow submission of jobs based on documents

### v1.0.0 (Initial Release)

- Initial release with basic SeaTunnel integration capabilities
- Job management tools (submit, stop, monitor)
- System monitoring tools
- Connection configuration utilities

## License

Apache License 
