Skip to main content

flink-mcp — Flink MCP Server

This project provides an MCP server that connects to Apache Flink SQL Gateway.

Prerequisites

  • A running Apache Flink cluster and SQL Gateway

    • Start cluster: ./bin/start-cluster.sh
    • Start gateway: ./bin/sql-gateway.sh start -Dsql-gateway.endpoint.rest.address=localhost
    • Verify: curl http://localhost:8083/v3/info
  • Configure environment:

    • Set SQL_GATEWAY_API_BASE_URL (default http://localhost:8083). You can use a .env file at repo root.

Run

Install and run via the console script:

pip install -e .
flink-mcp

MCP clients should launch the server over stdio with command: flink-mcp.

Ensure SQL_GATEWAY_API_BASE_URL is set in your environment or .env.

Tools (v0.2.5)

  • flink_info (resource): returns cluster info from /v3/info.
  • open_new_session(properties?: dict) -> { sessionHandle, ... }.
  • get_config(sessionHandle: str): returns session configuration.
  • configure_session(sessionHandle: str, statement: str): apply session-scoped DDL/config (CREATE/USE/SET/RESET/LOAD/UNLOAD/ADD JAR).
  • run_query_collect_and_stop(sessionHandle: str, query: str, max_rows: int=5, max_seconds: float=15.0): execute, fetch up to N rows within T seconds, then STOP the job if a jobID is present; closes the operation.
  • run_query_stream_start(sessionHandle: str, query: str): execute a streaming query and return { jobID, operationHandle }; the job is left running.
  • fetch_result_page(sessionHandle: str, operationHandle: str, token: int): fetch a single page; returns { page, nextToken, isEnd }.
  • cancel_job(sessionHandle: str, jobId: str): issue STOP JOB '<jobId>', wait until DESCRIBE JOB status is not RUNNING; returns { jobID, status, jobGone, jobStatus }.

Notes

  • Tools are stateless; clients manage and pass session/operation handles explicitly.

  • run_query_stream_start returns both jobID and operationHandle; use fetch_result_page to stream results.

  • cancel_job issues STOP and waits using DESCRIBE JOB; close_operation is invoked internally where appropriate.

  • Endpoints target SQL Gateway v3-style paths.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flink_mcp-0.2.6.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flink_mcp-0.2.6-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

Release history Release notifications | RSS feed

This release

0.2.6 This release

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page