NiFiMCP

io.github.nifimcp由 GitHub 帳號 nifimcp 發布v0.1.0-rc.1更新於 Nov 6, 2026

Evidence-backed, read-only Apache NiFi investigation: cited evidence and reviewable flow drafts

已驗證STDIO僅桌面開發者工具資料與分析

概覽

AI 產生的概覽

唯讀的 Apache NiFi 調查伺服器:讓助理描述流程、追蹤溯源並起草可審閱的流程檔案,並附上引用證據。

可以做什麼
  • 描述指定範圍內的 NiFi 流程、參數、服務與設定檢查結果,並回報佇列、公告與附標籤假設的流程健康狀態
  • 追蹤單一 FlowFile 的溯源時間軸,檢視未符合路由的上游來源,並比較已註冊的流程快照
  • 將調查匯出為 JSON 或自包含的 HTML 報告,內含證據紀錄與完整性雜湊
  • 查詢固定版本的處理器目錄,靜態驗證擬議的子流程,並起草一個停止狀態的本機流程定義與審閱頁面
  • 透過命令列完成同樣的工作(describe、investigate、report、draft、register、catalog),並使用三個內建提示詞
適用情境
適合值班或平台團隊讓助理解釋不熟悉的 NiFi 流程、排查堆積的佇列或追蹤單一 FlowFile,並把觀察到的事實與假設分開。也適合在隔離網路中審閱匯出的流程定義,以及把路由子流程起草成本機檔案。
執行需求
本機 Python 3.12 執行環境;透過 uvx 或 pip 安裝 PyPI 套件 nifimcp-server(預覽版 0.1.0rc1,需固定版本)。即時模式需要操作員設定檔,以及一個僅具唯讀策略的專用 NiFi 用戶端憑證,透過 HTTPS 雙向 TLS 連線至 NiFi 2.12.0。示範與離線包模式不需要 NiFi。
安裝前請注意
即時模式需要一個 NiFi 身分;只授予讀取策略,絕不要授予寫入策略,因為「檢視資料」策略也會讓該身分能在 NiFi 介面中開啟 FlowFile 內容。流程草稿是實驗性的本機檔案,需由人工另行匯入;沒有任何工具會修改 NiFi。NiFi 的名稱與屬性視為不可信文字,MCP 主機的模型可能把工具結果傳送給其供應商。叢集會被拒絕,且僅在 Linux x86_64 上測試過。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 NiFiMCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[NiFiMCP. Make NiFi agentic. Open-source MCP for Apache NiFi: read-only investigation and reviewable flow drafts. Explore nifimcp.com.]

NiFiMCP

Give AI the context to understand your NiFi flows, investigate failures with cited evidence, and draft what comes next.

Explore NiFiMCP · How it works · Bring us one critical NiFi workflow

NiFiMCP is an open-source Model Context Protocol server for evidence-backed Apache NiFi investigation. It reads; it does not change your NiFi.

Public preview 0.1.0rc1. Tested on Linux x86_64 with Python 3.12 against stock Apache NiFi 2.12.0 (single node, certificate authentication) and Claude Code. Live NiFi access is read-only; a flow draft is a local file that an authorized person imports separately. Anything outside that boundary is listed as untested or unsupported in the capability matrix. Expect rough edges and report them.

NiFiMCP is an independent project for Apache NiFi, founded and maintained by Lloyd Clark. It is not affiliated with, sponsored by or endorsed by the Apache Software Foundation or Cloudera. Apache NiFi and NiFi are trademarks of the Apache Software Foundation. Website: nifimcp.com.

1. Try NiFiMCP in one minute

The demo needs no NiFi, no model and no account. It replays evidence captured from a real NiFi 2.12.0 instance running a synthetic flow. With uv installed:

sh
uvx --from nifimcp-server==0.1.0rc1 nifimcp demo --output ./nifimcp-demo

Open nifimcp-demo/report.html. Every statement in it links to the exact source bytes it came from.

[Investigation report produced by the demo]

2. Install

NiFiMCP needs Python 3.12. The package on PyPI is nifimcp-server and it installs the nifimcp command (nifi-mcp is an unrelated project, and PyPI treats nifimcp as the same name). 0.1.0rc1 is a pre-release, so pin the version:

sh
uv tool install nifimcp-server==0.1.0rc1   # installs the nifimcp commandnifimcp --version

or, with pip in a Python 3.12 virtual environment, pip install nifimcp-server==0.1.0rc1.

From source, for development or to run the test suites:

sh
git clone https://github.com/nifimcp/nifimcp.gitcd nifimcpuv sync --frozenuv run nifimcp demo --output ./nifimcp-demo

For machines without internet access, use the offline kit (hash-locked wheels, SBOM and licenses) from the GitHub release and follow docs/OFFLINE_INSTALL.md.

3. How it works

[NiFiMCP preview: understand scoped NiFi context, investigate with cited evidence, and propose reviewable flow drafts. Execute with approval is a roadmap goal, not a preview feature.]
  1. Understand (preview): read scoped flows, configuration and live status through a read-only identity.
  2. Investigate (preview): follow evidence to a finding; unknowns stay explicit and every statement cites its source bytes.
  3. Propose (preview, experimental): generate a reviewable flow draft as local files; a person decides what to import, and the separate lab CLI can test it in a disposable NiFi first.
  4. Execute with approval (roadmap, not in this preview): no tool in this release changes NiFi.

4. Connect a scoped NiFi identity

NiFiMCP works in three modes:

ModeReads fromUse it for
demothe bundled synthetic capturetrying it out
bundleflow definitions and evidence bundles you registerair-gapped review, sharing a case
liveone NiFi 2.12.0 origin over HTTPS with mutual TLSinvestigating a running system

For live mode, create a dedicated NiFi identity (a client certificate) and give it read-only access to the process groups you want the assistant to see, nothing more:

NiFi policyNeeded for
view the user interface (/flow)every live call
view the component, on each scoped process groupdescribe and health
query provenance (/provenance) and view provenance, on each scoped grouptrace_feed, unmatched history
view the data, on each scoped groupprovenance queries and queue metadata sampling (NiFi 2.12.0 requires it for both)

NiFi's "view the data" policy would also let this identity open FlowFile content in the NiFi UI. NiFiMCP has no route to content, attribute dumps or replay, and only allowlisted attribute values leave the server. Without that policy, describe and health still work, and provenance and sampling return a permission error that names the missing policy.

Never grant write policies. NiFiMCP has no tool that modifies NiFi, and the scoped identity is your second line of defense. Then write an operator config (docs/CONFIGURATION.md) and check it:

sh
nifimcp doctor --config operator.json

Add the server to your MCP host:

json
{  "mcpServers": {    "nifimcp": {      "command": "uvx",      "args": ["--from", "nifimcp-server==0.1.0rc1", "nifimcp", "serve", "--config", "/path/to/operator.json"]    }  }}

The recorded Claude Code sessions in evidence/host/ used the source-checkout form of the same command (uv run --frozen --project /path/to/nifimcp nifimcp serve --config ...). Other MCP hosts that launch stdio servers should work with the same command but have not been tested.

5. Five useful prompts

  1. "Explain the flow in scope orders-intake for an on-call operator who did not build it. Cite evidence and list unknowns."
  2. "Events are piling up on connection <id>. Investigate the last hour and separate observed facts, plausible explanations and missing evidence."
  3. "Trace FlowFile <uuid> through scope orders-intake between 09:00 and 10:00 UTC. Where did it go and what can't you see?"
  4. "Compare the flow definitions I registered as before and after. What changed in routing and queue settings?"
  5. "Draft an attribute router that sends status=critical to out_critical, standard to out_standard and everything else to out_unmatched. Validate it and give me labeled test cases."

The server also ships three MCP prompts: explain_this_flow, investigate_this_feed and draft_bounded_routing_flow.

6. What it actually does

ToolWhat it returns
get_capabilitiesmode, scopes, limits, NiFi version and which features are available
describe_flowbounded graph, parameters, services and fixed-rule configuration findings
get_flow_healthtimestamped status, queues, bulletins and labeled hypotheses
trace_feedprovenance timeline for one exact FlowFile UUID, filename or approved indexed attribute (max 24 h)
inspect_unmatchedwhat feeds an unmatched route, its recent events and an optional metadata sample
compare_flow_snapshotsvalue-safe structural diff of two registered snapshots
export_investigationthe investigation as JSON or a self-contained HTML report
get_processor_catalogthe pinned NiFi 2.12.0 processor catalog used for drafts
validate_flow_planstatic checks of a proposed subflow
draft_flowa stopped, local NiFi flow definition plus a review page and receipt

Every result uses one envelope: status, scope, source version, collection time, evidence records (source hash plus JSON pointer), findings labeled as observed, static rule, hypothesis or operator note, explicit gaps, and the limits that were applied.

A non-AI command line covers the same ground: nifimcp describe, investigate, report, draft, register, unregister and catalog. Run nifimcp --help. For a sample subflow plan, run nifimcp draft --example attribute_router > plan.json, then nifimcp draft --plan plan.json --output ./draft.

7. Three separate things: investigate, draft, execute

StepWho writes to NiFiIdentityWhere
Investigate (describe_flow, get_flow_health, trace_feed, inspect_unmatched, export_investigation)nobodyyour read-only observer certificateyour NiFi, over 14 allowlisted read endpoints
Draft (validate_flow_plan, draft_flow)nobodynone; no NiFi connection is usedlocal files in the artifact directory
Verify a draft (scripts/lab_verify_draft.py, optional)the separate lab CLIthe lab's own admin certificate, which exists only inside the disposable container the lab createda throwaway NiFi container on 127.0.0.1, deleted afterward

In the recorded Claude Code session the assistant drafted a router with draft_flow, which wrote files and touched no NiFi. The import you see in evidence/host/*/lab-verification/ was done afterward by the lab CLI with the lab admin certificate (CN=nifimcp-lab-admin) through NiFi's upload endpoint, into a scratch group of a container that was then destroyed. The MCP server has no upload, start or deploy route, and the observer identity holds no write policy. Execution against a real NiFi is not part of this release. It is planned as a separate, approval-controlled component.

8. Boundaries

  • Read-only. No start, stop, delete, upload or deploy tool exists. Drafts are local files and never touch NiFi.
  • Scoped. Only configured process groups are visible; out-of-scope IDs are refused without revealing whether they exist. Clusters are refused.
  • Bounded. Hard limits on time windows, events, components, depth, sample size, result size and run time.
  • No content. FlowFile content is never read. Attribute values appear only when allowlisted. Sensitive values, secret-like literals and common credential shapes are masked (best-effort pattern matching).
  • No hidden calls. No telemetry, no update checks, no embedded model. Only allowlisted NiFi REST endpoints.
  • Honest about evidence. Current settings are never presented as the cause of a past event. Empty provenance results are not proof that data never existed. A SEND event is not proof of downstream receipt.
  • Drafts are experimental. A draft passes static checks only. Runtime behavior is unknown until the separate lab CLI imports it into a disposable NiFi and runs labeled cases.
  • Your model is yours. NiFiMCP itself runs without network access, but it embeds no model: the MCP host supplies the model and may send tool results to its provider. A fully offline AI setup has not been tested here.

NiFi names, messages and attributes are treated as untrusted text. Your MCP host's model still decides what to say; check its claims against the cited evidence.

9. Known limits of this preview

Three acceptance gates are BLOCKED, not passed, and they matter in practice:

GateWhat it means for you
ClustersA clustered NiFi is detected and refused in live mode (UNSUPPORTED_TOPOLOGY). Bundle mode still reviews exported flow definitions from any NiFi. Safe read-only cluster support is the first roadmap item.
Other platformsOnly Linux x86_64 has run the test suites. macOS, Windows and ARM are untested; the code is pure Python and may well run, but nobody has checked file permissions, Docker labs or the offline kit there.
Model accuracyNo measurement of how accurately any AI model uses these tools exists. The deterministic findings are tested; the assistant's prose is not. Treat its narrative as a draft and follow the evidence links.

Also untested: NiFi versions other than 2.12.0 (refused at preflight), bearer-token login against a real NiFi (unit tests only), MCP hosts other than Claude Code, and provenance searches by custom indexed attribute.

10. The evidence report

export_investigation (or nifimcp report) writes one HTML file with no scripts or external resources: collections and intervals, a flow map, findings with their kind and limitations, the provenance timeline, gaps, every evidence record and integrity hashes.

[Findings with evidence links]

11. How it was qualified

Tests run against a real, disposable NiFi 2.12.0 container (the official image, pinned by digest) with real TLS identities and policies. Mocks never count as an integration pass.

SuiteCommand
Offline unit, security, protocol and evaluation testsuv run pytest
Live adapter against secure NiFiuv run python scripts/lab_bootstrap.py --create-owned-lab then uv run pytest -m integration
Draft import and labeled runtime casesuv run pytest -m lab
Offline install with networking disabledscripts/offline_acceptance_docker.sh

The acceptance ledger with commands, versions and results is in docs/ACCEPTANCE.md, and the release validation summary with checksums in docs/VALIDATION.md. The incident corpus measures the fixed rules, not any language model.

12. Contributing and roadmap

Bug reports, compatibility reports for other NiFi versions and new labeled incident cases are the most useful contributions. Start with the starter issues, CONTRIBUTING.md and SECURITY.md. The roadmap leads with safe read-only cluster support and external validation.

13. Engineering help

NiFiMCP stays free and open source. For teams running NiFi on restricted or air-gapped networks, or building their own NiFi expertise, the maintainer's company, Federal SI, offers three separately scoped services:

  • Supported Air Gap Kit: deployment and configuration help around the free offline kit, validation in your environment, operating guidance and handover.
  • Forward Deployed Engineering: practical deployment, integration and workflow assistance, remote or on site.
  • Technical Exchange: hands-on knowledge transfer using representative workflows.

Services add people, not software features: the preview limits still apply, and a fully offline AI setup has not been tested. Discuss your environment.

Licensed under the Apache License 2.0. Third-party notices: NOTICE, ATTRIBUTION.md.

來源:README.md,提交 f978c84

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:軟體包安裝失敗。

版本歷史

1
  1. v0.1.0-rc.1最新Oct 30, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分