Skip to main content

Add your description here

Project description

NiFi MCP (Model Context Protocol)

This repository contains the NiFi MCP project. It provides a chat interface allowing users to interact with Apache NiFi instances using natural language queries. The system uses a Large Language Model (LLM) integrated with custom tools (MCP Tools) that can communicate with the NiFi API to retrieve information, document flows, and create and perform actions on NiFi components.

It has been tested with Nifi versions 1.23 and 1.28, but could work on other versions assuming the Nifi REST Api stays consistent. While it is quite functional, you will find that the type of LLM model you use will have a big effect on how well it follows your instructions. I have found o4-mini and gpt-4.1 to be good.

It's ability to read and document existing flows is very good. It's ability to create new and modify existing flows is OK, but often takes several iterations and some user help. My future plans are to refine the tools to improve this aspect. I may also introduce some tools to help it debug flows itself.

Example Conversations

Recent Updates

For the latest updates and release notes, see the GitHub Releases page.

Roadmap

My future plan is to work on improving the tool's accuracy and efficiency (reducing the number of tokens needed to acheive the goal). To do this I will focus on introducing guided workflows which can provide more granular control over the steps and quality, which may also lead to the ability to use less powerful and cheaper LLM's while improving the results. I feel creating new flows and documenting large flows will particularly benefit from this.

After this I will consider looking into support for more models. I will say that the Gemini support has been harder than expected due to its protobuf usage, and has slowed my progress along the roadmap, so for this reason I am going to hold off adding other models for now.

Setup Instructions

Note: These instructions should also be followed after pulling a new version as there may be new package requirements.

To set up the development environment and install all dependencies, follow these steps:

  1. Clone the Repository:

    git clone git@github.com:ms82119/NiFiMCP.git
    cd NiFiMCP
    
  2. Set Up a Virtual Environment: It's recommended to use a virtual environment to manage dependencies. You can create one using venv:

    python3 -m venv .venv
    
  3. Activate the Virtual Environment:

    • On macOS and Linux:
      source .venv/bin/activate
      
    • On Windows:
      .venv\Scripts\activate
      
  4. Install Dependencies: Use uv to install dependencies based on pyproject.toml and uv.lock:

    uv sync
    
  5. Update the config.yaml file with your Nifi details and LLM API keys Use the config.example.yaml as your guide for format and structure

  6. Run the MCP Server: Start the MCP server with:

    uvicorn nifi_mcp_server.server:app --reload --port 8000
    
  7. Run the Streamlit Client: Start the Streamlit client with:

    python -m streamlit run nifi_chat_ui/app.py
    

Usage Tips

For detailed usage information, tips, and UI features, see the Usage Guide.

Running Automated Tests

For comprehensive testing information and examples, see the Testing Guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_ms82119_nifimcp-0.1.3.tar.gz (233.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_ms82119_nifimcp-0.1.3-py3-none-any.whl (263.5 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_ms82119_nifimcp-0.1.3.tar.gz.

File metadata

  • Download URL: iflow_mcp_ms82119_nifimcp-0.1.3.tar.gz
  • Upload date:
  • Size: 233.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_ms82119_nifimcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0352bd15964f8f29eedbc94e8a5ac2d2211fabbeda8d9740a417120589523462
MD5 800fad9e2b7a3d945e6a1e7d1633a7b2
BLAKE2b-256 c531c9dcd2b1468a9e959414fd4e9b7503a2daa3ac755fe41f8a75f1d976b04c

See more details on using hashes here.

File details

Details for the file iflow_mcp_ms82119_nifimcp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_ms82119_nifimcp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 263.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_ms82119_nifimcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 34c79f35dc5c9cc40c4709a35d6ef0a118e188e9575a9504c2884ca7a01d6b41
MD5 6eb242520fe2c5663cc01fffc07423fa
BLAKE2b-256 758563d6ace6f96f029dc1f9e4a6a3e0b7dde10d00c67b22b6fa055bd74389b3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page