NiFi MCP(模型上下文协议)
此存储库包含NiFi MCP项目。它可以通过两种方式使用:
- 作为一个简单的MCP服务器,Cursor AI、Claude Code、Antigravity等工具可以通过stdio连接
- 或者,使用内置的(包含在此仓库中)聊天机器人,您可以从浏览器连接到它。
无论哪种方法都允许您使用自然语言与Apache NiFi实例进行交互。目前有大约30个工具可供使用,涵盖构建、更新、运行、调试和记录nifi流。这已经在Nifi 1.23和1.28版本上进行了测试,但假设Nifi REST Api保持一致,它应该适用于2.x等其他版本。
内置聊天机器人程序要求您提供自己的LLM API密钥,更好的模型会产生更好的结果,选择更高的令牌上下文也会有所帮助。然而,我发现在自动模式下使用Cursor AI可以获得最佳性能和结果。事实证明,这是一个比我用自己的聊天机器人构建的界面要好得多的界面。所以,如果你没有其他选择,我只推荐内置的聊天机器人。
对话示例(使用内置聊天机器人)
最近的更新
2.0版本-主要UI大修
- 为Cursor AI等IDE添加了直接MCP服务器支持(最佳选项)
- 增强了内置聊天机器人
- 从Streamlit迁移到FastAPI/JavaScript客户端,以提高性能和用户体验 - 增强的实时WebSocket通信,可实现更好的工作流状态更新 - 改进了消息处理和防止重复消息 - 现代、响应迅速的用户界面,具有更好的可访问性和移动支持 - 添加了一个新的工作流程“流程文档”,以帮助生成更好的流程文档
有关最新更新和发行说明,请参阅 .
安装说明
注: 在拉取新版本后,也应遵循这些说明,因为可能有新的包装要求。
通用设置步骤(所有版本)
- 克隆存储库:
git clone git@github.com:ms82119/NiFiMCP.git
cd NiFiMCP- 设置虚拟环境:
建议使用虚拟环境来管理依赖关系。您可以使用创建一个 venv:
python3 -m venv .venv- 激活虚拟环境:
- 在macOS和Linux上:
source .venv/bin/activate- 在Windows上:
.venv\Scripts\activate- 安装依赖关系:
使用 uv 根据以下内容安装依赖项 pyproject.toml 和 uv.lock:
uv sync- 使用您的Nifi服务器详细信息和LLM API密钥更新config.yaml文件
使用config.example.yaml作为格式和结构的指南 请注意,只有在使用内置客户端时才需要LLM API密钥
使用NiFi MCP服务器(stdio、任何MCP客户端)
您可以从以下网址使用NiFi MCP工具 任何支持MCP的客户端 结束 标准,而无需运行REST服务器或聊天UI。配置您的主机以从运行服务器 存储库根目录 至少有一个NiFi服务器 config.yaml.
便携式入口 (之后 uv sync):
{
"command": "uv",
"args": ["run", "python", "-m", "nifi_mcp_server.stdio_server"],
"env": {}
}可选:设置 NIFI_SERVER_ID 在 env 到一个 id 从 config.yaml;如果省略,则使用该文件中的第一个服务器。
- 完整设置 (工作目录,
python没有uv,JSON示例): MCP stdio设置 - 代理人/LLM行为 (任何客户): MCP代理指南
- 仅光标 (
.cursor/mcp.json,重新加载): 光标MCP设置
使用内置聊天机器人
你需要 两个独立的终端进程 (两个不同的Python应用程序)。这 浏览器 是唯一的“客户端”——打开聊天URL一次;做 不 开始第二个副本 api.main 在同一个港口。
| 进程 | 应用程序 | 端口(示例) | 角色 |
|---|---|---|---|
| 1 | nifi_mcp_server.server:app | 8000 或 8001 | MCP/NiFi后端(用户界面调用的REST+工具) |
| 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 80012.聊天UI web服务器(第二终端):
uvicorn api.main:app --reload --port 3000如果MCP服务器使用8001,请将UI指向它:
MCP_SERVER_PORT=8001 uvicorn api.main:app --reload --port 3000您可以使用另一个UI端口(例如。 --port 3001)如果3000人正忙; 唯一 api.main 进程可以使用该端口。
3.在浏览器中打开:\ http://localhost:3000 (或您选择的任何端口 api.main例如。 http://localhost:3001).
使用提示
有关详细的使用信息、提示和UI功能,请参阅 使用指南.
运行自动测试
有关全面的测试信息和示例,请参阅 测试指导.

