Flink Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Flink Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This project provides an MCP server that connects to Apache Flink SQL Gateway.
./bin/start-cluster.sh./bin/sql-gateway.sh start -Dsql-gateway.endpoint.rest.address=localhostcurl http://localhost:8083/v3/infoSQL_GATEWAY_API_BASE_URL (default http://localhost:8083). You can use a .env file at repo root.Install and run via the console script:
pip install -e .
flink-mcpMCP clients should launch the server over stdio with command: flink-mcp.
Ensure SQL_GATEWAY_API_BASE_URL is set in your environment or .env.
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 }.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.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.