Skip to content

MCP (Model Context Protocol)

MCP-сервер DataFlow помогает генерировать манифесты DataFlow и мигрировать конфигурации Kafka Connect в DataFlow. Он работает без доступа к Kubernetes или Prometheus — только генерация и валидация YAML. Используйте его в IDE (например, Cursor) для создания манифестов и миграции коннекторов.

Возможности

Инструмент Описание
generate_dataflow_manifest Генерация YAML-манифеста DataFlow по описанию (тип source/sink, опциональные конфиги и трансформации).
validate_dataflow_manifest Валидация YAML-манифеста (apiVersion, kind, spec.source, spec.sink).
migrate_kafka_connect_to_dataflow Миграция конфигурации Kafka Connect (один или два коннектора: source + sink) в манифест DataFlow с заметками о границах миграции.
list_dataflow_connectors Справочник поддерживаемых коннекторов (sources и sinks).
list_dataflow_transformations Справочник трансформаций с примерами.

Docker-образ

Сервер публикуется в GitHub Container Registry. Рекомендуемый образ для использования:

Образ: ghcr.io/dataflow-operator/dataflow-mcp:25979c2

Также можно использовать ghcr.io/dataflow-operator/dataflow-mcp:latest для последней сборки.

Запуск через Docker

Сервер общается через stdin/stdout, поэтому флаг -i обязателен:

docker run -i --rm ghcr.io/dataflow-operator/dataflow-mcp:25979c2

Подключение в Cursor

Добавьте сервер в настройки MCP (например, ~/.cursor/mcp.json или настройки проекта).

Через Docker (рекомендуется)

{
  "mcpServers": {
    "dataflow": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/dataflow-operator/dataflow-mcp:25979c2"
      ]
    }
  }
}

Через локальный бинарник

Если вы собрали сервер локально:

{
  "mcpServers": {
    "dataflow": {
      "command": "/абсолютный/путь/к/dataflow-mcp/target/release/dataflow-mcp",
      "args": []
    }
  }
}

Через cargo (разработка)

{
  "mcpServers": {
    "dataflow": {
      "command": "cargo",
      "args": ["run", "--release", "--manifest-path", "/путь/к/dataflow-mcp/Cargo.toml"]
    }
  }
}

Тестирование с MCP Inspector

MCP Inspector — интерактивный браузерный инструмент для тестирования и отладки MCP-серверов.

npx @modelcontextprotocol/inspector /путь/к/dataflow-mcp/target/release/dataflow-mcp

Веб-интерфейс открывается по адресу http://localhost:6274. Выберите транспорт stdio и вызывайте инструменты с JSON-параметрами.

Примеры

Генерация манифеста Kafka → PostgreSQL

Используйте generate_dataflow_manifest с параметрами:

  • source_type: "kafka"
  • sink_type: "postgresql"
  • source_config: "{\"brokers\":[\"localhost:9092\"],\"topic\":\"input-topic\",\"consumerGroup\":\"dataflow-group\"}"
  • sink_config: "{\"connectionString\":\"postgres://user:pass@host:5432/db\",\"table\":\"output_table\"}"
  • name: "kafka-to-postgres" (опционально)

Миграция Kafka Connect JDBC Sink

Используйте migrate_kafka_connect_to_dataflow с конфигом коннектора в JSON:

{
  "name": "jdbc-sink",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "connection.url": "jdbc:postgresql://pg:5432/mydb",
    "table.name.format": "events",
    "topics": "events"
  }
}

Ответ содержит YAML-манифест DataFlow и заметки о перенесённых и неподдерживаемых опциях.

Генерация манифеста Kafka → ClickHouse

Используйте generate_dataflow_manifest с параметрами:

  • source_type: "kafka"
  • sink_type: "clickhouse"
  • source_config: "{\"brokers\":[\"localhost:9092\"],\"topic\":\"input-topic\",\"consumerGroup\":\"dataflow-group\"}"
  • sink_config: "{\"connectionString\":\"clickhouse://default@localhost:9000/default?dial_timeout=10s\",\"table\":\"output_table\"}"
  • name: "kafka-to-clickhouse" (опционально)

Валидация манифеста

Вставьте YAML-манифест в validate_dataflow_manifest (параметр config). Ответ покажет, корректен ли конфиг или перечислит ошибки.