NiFiMCP について
NiFiMCP は Apache NiFi 向けの MCP サーバーおよび内蔵チャットボットで、自然言語によるデータフロー操作を可能にします。Cursor AI や Claude Code などのクライアントから stdio 経由で利用するほか、ブラウザーから使うこともできます。内蔵チャットボットには独自の LLM API キーが必要です。
主な機能
- 01自然言語による Apache NiFi インスタンスの操作
- 02フローの構築、実行、デバッグに使う約 30 のツール
- 03MCP 対応クライアントから使える stdio エントリーポイント
- 04FastAPI ベースの内蔵チャット UI
- 05フローのドキュメント生成ワークフロー
活用シーン
- 01仕様書からの NiFi フローの作成
- 02既存フローの問題の診断と修正
- 03NiFi フローのドキュメント作成
MCP 対応
本プロジェクトは MCP サーバーとして、NiFi 操作ツールを stdio 経由で Cursor AI や Claude Code などの MCP クライアントに公開します。内蔵チャットボットも同じバックエンドに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
NiFi MCP(Model Context Protocol)
このリポジトリには、NiFi MCP プロジェクトが含まれています。次のいずれかの方法で使用できます。
- Cursor AI、Claude Code、Antigravity などのツールが stdio 経由で接続する、通常の MCP サーバーとして使用する
- または、このリポジトリに組み込まれたチャットボットを使用し、ブラウザーから接続する
どちらの方法でも、自然言語を使って Apache NiFi インスタンスを操作できます。現在、NiFi フローの構築、更新、実行、デバッグ、ドキュメント作成をカバーする約 30 個のツールを利用できます。NiFi バージョン 1.23 および 1.28 でテスト済みですが、NiFi REST API の一貫性が保たれていれば、2.x などの他のバージョンでも動作するはずです。
組み込みのチャットボットを使用するには、ご自身の LLM API キーが必要です。より高性能なモデルを使うと、より良い結果が得られます。また、より大きなトークンコンテキストを選択すると、役立つ場合があります。ただし、Cursor AI を Auto モードで使用したときに、最高のパフォーマンスと結果が得られることがわかりました。自分で構築できるチャットボットよりも、はるかに優れたインターフェースでした。そのため、他に選択肢がない場合に限り、組み込みのチャットボットをおすすめします。
会話例(組み込みのチャットボットを使用)
- 仕様から新しいフローを構築する - 要件に基づいてシステムが NiFi フロー全体を作成する方法をご覧ください
- 既存のフローをデバッグする - システムが既存のフローの問題を診断して修正する様子をご覧ください
最近の更新
バージョン 2.0 - UI の大幅な刷新
- Cursor AI などの IDE 向けに、MCP サーバーの直接サポートを追加(最もおすすめの方法)
- 組み込みチャットボットを強化
- パフォーマンスとユーザーエクスペリエンスを向上させるため、Streamlit から FastAPI/JavaScript クライアントに移行
- ワークフローのステータスをより適切に更新できるよう、リアルタイム WebSocket 通信を強化
- メッセージ処理と重複メッセージの防止を改善
- アクセシビリティとモバイル対応を強化した、モダンでレスポンシブな UI
- フローのドキュメント作成を支援する、新しいワークフロー「Flow Documentation」を追加
最新の更新情報とリリースノートについては、GitHub Releases ページをご覧ください。
セットアップ手順
注: 新しいパッケージ要件が追加されている場合があるため、新しいバージョンをプルした後も、これらの手順に従ってください。
共通セットアップ手順(すべてのバージョン)
-
リポジトリをクローンする:
git clone [email protected]:ms82119/NiFiMCP.git cd NiFiMCP -
仮想環境をセットアップする: 依存関係を管理するため、仮想環境の使用をおすすめします。
venvを使って作成できます。python3 -m venv .venv -
仮想環境を有効化する:
- macOS および Linux の場合:
source .venv/bin/activate - Windows の場合:
.venv\Scripts\activate
- macOS および Linux の場合:
-
依存関係をインストールする:
uvを使って、pyproject.tomlとuv.lockに基づき依存関係をインストールします。uv sync -
config.yaml ファイルに NiFi サーバーの詳細と LLM API キーを設定する 書式と構成については、config.example.yaml を参考にしてください。 組み込みクライアントを使用する場合に限り、LLM API キーが必要です。
NiFi MCP サーバーの使用(stdio、任意の MCP クライアント)
REST サーバーやチャット UI を起動せずに、任意の MCP 対応クライアントから stdio 経由で NiFi MCP ツールを使用できます。ホストを設定し、config.yaml に少なくとも 1 つの NiFi サーバーを登録したうえで、リポジトリのルートディレクトリからサーバーを実行してください。
ポータブルなエントリーポイント(uv sync の実行後):
{
"command": "uv",
"args": ["run", "python", "-m", "nifi_mcp_server.stdio_server"],
"env": {}
}
任意:env に NIFI_SERVER_ID を設定し、config.yaml の id を指定します。省略した場合は、そのファイルに記載された最初のサーバーが使用されます。
- 完全なセットアップ(作業ディレクトリ、
uvを使用しないpython、JSON の例):MCP stdio セットアップ - エージェント/LLM の動作(任意のクライアント):MCP エージェントガイド
- Cursor のみ(
.cursor/mcp.json、再読み込み):Cursor MCP セットアップ
組み込みチャットボットの使用
2 つの独立したターミナルプロセス(異なる Python アプリ)が必要です。クライアントはブラウザーのみです。チャット URL を一度開いてください。同じポートで api.main の 2 つ目のインスタンスを起動しないでください。
| プロセス | アプリ | ポート(例) | 役割 |
|---|---|---|---|
| 1 | nifi_mcp_server.server:app | 8000 または 8001 | MCP / NiFi バックエンド(REST + UI が呼び出すツール) |
| 2 | api.main:app | 3000 または 3001 | チャットの Web UI を提供し、プロセス 1 と通信 |
MCP_SERVER_PORT はプロセス 1 がリッスンするポートと一致させる必要があります(プロセス 2 に MCP サーバーの場所を知らせます)。
1. MCP バックエンド(最初に実行):
uvicorn nifi_mcp_server.server:app --reload --port 8000
ポート 8000 が使用中の場合は、別のポートを選び、MCP_SERVER_PORT に同じ値を設定してください:
MCP_SERVER_PORT=8001 uvicorn nifi_mcp_server.server:app --reload --port 8001
2. チャット UI Web サーバー(2 つ目のターミナル):
uvicorn api.main:app --reload --port 3000
MCP サーバーが 8001 を使用する場合は、UI の接続先を指定してください:
MCP_SERVER_PORT=8001 uvicorn api.main:app --reload --port 3000
3000 が使用中の場合は、別の UI ポート(例:--port 3001)を使用できます。このポートを使用できる api.main プロセスは1 つだけです。
3. ブラウザーで開く:
http://localhost:3000(または api.main に選んだポート。例:http://localhost:3001)。
使用上のヒント
詳しい使用方法、ヒント、UI 機能については、使用ガイドを参照してください。
自動テストの実行
テストの詳しい情報と例については、テストガイドを参照してください。
ライセンス
このプロジェクトは、Apache License 2.0 のもとでライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。