2025-5-11
Words 1045Read Time 3 min
Score:85

NiFi MCP服务器,提供自然语言交互接口,用于与Apache NiFi实例通信,支持流程文档化、信息检索和组件操作。

NiFi MCP (Model Context Protocol)

本仓库包含 NiFi MCP 项目。该项目提供了一个聊天界面,允许用户通过自然语言查询与 Apache NiFi 实例进行交互。系统使用了一个集成自定义工具(MCP Tools)的大型语言模型(LLM),这些工具可以与 NiFi API 通信,以检索信息、记录流程、以及对 NiFi 组件执行操作。
该项目已在 NiFi 1.23 和 1.28 版本上进行了测试,但假设 NiFi REST API 保持一致,它也可能适用于其他版本。虽然功能相当完善,但你会发现所使用的 LLM 模型类型会对其遵循指令的效果产生很大影响。我个人发现 o4-minigpt-4.1 表现良好。
该系统在读取和记录现有流程方面表现非常出色。在创建新流程和修改现有流程方面的表现尚可,但通常需要多次迭代和一些用户帮助。我未来的计划是优化工具以改进这一方面。此外,我可能还会引入一些工具来帮助系统自行调试流程。

其他使用说明

顶部的文本框“Define the overall objective for this session”是可选的,如果你在这里输入内容,它将被附加到每个 LLM 请求的系统提示中。建议在此处包含你希望 LLM 操作的进程组 ID,或者将目标保持在 LLM 的前沿和中心。
每次 LLM 响应后的令牌计数值得关注,因为它会随着对话历史的增加而增长。你可能需要时不时地重置对话历史(侧边栏中的按钮)。
LLM 的响应可以通过响应下方的白色图标复制到剪贴板,侧边栏中还有一个按钮可以复制完整的对话。
“Tool Phase filter”下拉菜单允许你在不同的工作阶段向 LLM 暴露不同的工具。例如,如果你只想让它记录流程,可以将下拉菜单设置为“Review”,这样它只会使用读取工具,而不是写入工具。

安装说明

要设置开发环境并安装所有依赖项,请按照以下步骤操作:
  1. 克隆仓库:
    1. 设置虚拟环境: 建议使用虚拟环境来管理依赖项。你可以使用 venv 创建一个虚拟环境:
      1. 激活虚拟环境:
          • 在 macOS 和 Linux 上:
            • 在 Windows 上:
          1. 安装依赖项: 使用 uv 根据 pyproject.tomluv.lock 安装依赖项:
            1. 更新 config.yaml 文件,填写你的 NiFi 详细信息和 LLM API 密钥:config.example.yaml 为参考,确保格式和结构正确。
            1. 运行 MCP 服务器: 使用以下命令启动 MCP 服务器:
              1. 运行 Streamlit 客户端: 使用以下命令启动 Streamlit 客户端:

                运行自动化测试

                项目中包含一个测试脚本,用于通过 REST API 验证 NiFi MCP 工具的核心功能。
                1. 确保 MCP 服务器正在运行: 按照安装说明中的步骤 6 启动服务器:
                  1. 设置目标 NiFi 实例 ID: 测试脚本需要知道要针对哪个配置的 NiFi 服务器实例。将 NIFI_TEST_SERVER_ID 环境变量设置为 config.yaml 中所需服务器的 id
                      • 在 macOS/Linux 上:
                        • 在 Windows(命令提示符)上:
                          • 在 Windows(PowerShell)上:
                            "your_nifi_server_id_here" 替换为实际的 ID。
                        1. 运行测试脚本: 从项目根目录执行脚本:
                          1. 脚本将输出日志,指示每个步骤的进度和成功或失败。它将在目标 NiFi 实例上创建并清理一个名为 mcp-auto-test-pg-... 的进程组。
                        上一篇
                        air-mcp
                        下一篇
                        MiniMax-MCP