此仓库包含NiFi MCP项目。该项目提供了一个聊天界面,允许用户通过自然语言查询与Apache NiFi实例进行交互。该系统使用大型语言模型(LLM)集成自定义工具(MCP工具),这些工具可以与NiFi API通信以检索信息、记录流程,并对NiFi组件执行创建和操作。
它已在Nifi版本1.23和1.28上进行了测试,但假设Nifi REST API保持一致的情况下,可能在其他版本上也能工作。尽管功能强大,你会发现所使用的LLM模型类型会对如何遵循你的指令产生很大影响。我发现o4-mini和gpt-4.1表现良好。
其读取和记录现有流程的能力非常好。其创建新流程和修改现有流程的能力尚可,但通常需要多次迭代和一些用户帮助。我未来的计划是改进这些工具以提高这方面的能力。我还可能会引入一些工具来帮助它自行调试流程。
有关最新更新和发行说明,请参阅GitHub发布页面。
我未来的工作重点是提高工具的准确性和效率(减少实现目标所需的令牌数量)。为此,我将专注于引入指导性工作流,这可以提供更细粒度的步骤控制和质量控制,这可能也会导致能够使用较不强大的且成本较低的LLM同时改善结果。我认为创建新流程和记录大规模流程将特别受益于这一点。
之后,我将考虑支持更多模型。我要说的是,由于Gemini使用了protobuf,其支持比预期的要困难得多,这减缓了我的发展进度,因此出于这个原因,我现在将推迟添加其他模型。
注意: 在拉取新版本后也应遵循这些步骤,因为可能存在新的包要求。
为了设置开发环境并安装所有依赖项,请按照以下步骤操作:
克隆仓库:
git clone git@github.com:ms82119/NiFiM
cd NiFiMCP
设置虚拟环境:
建议使用虚拟环境来管理依赖项。你可以使用venv创建一个:
python3 -m venv .venv
激活虚拟环境:
source .venv/bin/activate
.venv\Scripts\activate
安装依赖项:
使用uv基于pyproject.toml和uv.lock安装依赖项:
uv sync
更新config.yaml文件,填写你的Nifi详细信息和LLM API密钥 使用config.example.yaml作为格式和结构的参考
运行MCP服务器: 启动MCP服务器:
uvicorn nifi_mcp_server.server:app --reload --port 8000
运行Streamlit客户端: 启动Streamlit客户端:
python -m streamlit run nifi_chat_ui/app.py
有关详细的使用信息、技巧和UI功能,请参阅使用指南。
有关全面的测试信息和示例,请参阅测试指南。