Skip to main content
Glama

mcp-flowise

mcp-flowise is a Python package implementing a Model Context Protocol (MCP) server that integrates with the Flowise API. It provides a standardized and flexible way to list chatflows, create predictions, and dynamically register tools for Flowise chatflows or assistants.

It supports two operation modes:

  • LowLevel Mode (Default): Dynamically registers tools for all chatflows retrieved from the Flowise API.

  • FastMCP Mode: Provides static tools for listing chatflows and creating predictions, suitable for simpler configurations.


Features

  • Dynamic Tool Exposure: LowLevel mode dynamically creates tools for each chatflow or assistant.

  • Simpler Configuration: FastMCP mode exposes list_chatflows and create_prediction tools for minimal setup.

  • Flexible Filtering: Both modes support filtering chatflows via whitelists and blacklists by IDs or names (regex).

  • MCP Integration: Integrates seamlessly into MCP workflows.


Related MCP server: n8n-MCP

Installation

Installing via Smithery

To install mcp-flowise for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @matthewhand/mcp-flowise --client claude

Prerequisites

  • Python 3.12 or higher

  • uvx package manager

Install and Run via uvx

Confirm you can run the server directly from the GitHub repository using uvx:

uvx --from git+https://github.com/matthewhand/mcp-flowise mcp-flowise

Adding to MCP Ecosystem (mcpServers Configuration)

You can integrate mcp-flowise into your MCP ecosystem by adding it to the mcpServers configuration. Example:

{
    "mcpServers": {
        "mcp-flowise": {
            "command": "uvx",
            "args": [
                "--from",
                "git+https://github.com/matthewhand/mcp-flowise",
                "mcp-flowise"
            ],
            "env": {
                "FLOWISE_API_KEY": "${FLOWISE_API_KEY}",
                "FLOWISE_API_ENDPOINT": "${FLOWISE_API_ENDPOINT}"
            }
        }
    }
}

Modes of Operation

1. FastMCP Mode (Simple Mode)

Enabled by setting FLOWISE_SIMPLE_MODE=true. This mode:

  • Exposes two tools: list_chatflows and create_prediction.

  • Allows static configuration using FLOWISE_CHATFLOW_ID or FLOWISE_ASSISTANT_ID.

  • Lists all available chatflows via list_chatflows.

2. LowLevel Mode (FLOWISE_SIMPLE_MODE=False)

Features:

  • Dynamically registers all chatflows as separate tools.

  • Tools are named after chatflow names (normalized).

  • Uses descriptions from the FLOWISE_CHATFLOW_DESCRIPTIONS variable, falling back to chatflow names if no description is provided.

Example:

  • my_tool(question: str) -> str dynamically created for a chatflow.


Running on Windows with uvx

If you're using uvx on Windows and encounter issues with --from git+https, the recommended solution is to clone the repository locally and configure the mcpServers with the full path to uvx.exe and the cloned repository. Additionally, include APPDATA, LOGLEVEL, and other environment variables as required.

Example Configuration for MCP Ecosystem (mcpServers on Windows)

{
  "mcpServers": {
    "flowise": {
      "command": "C:\\Users\\matth\\.local\\bin\\uvx.exe",
      "args": [
        "--from",
        "C:\\Users\\matth\\downloads\\mcp-flowise",
        "mcp-flowise"
      ],
      "env": {
        "LOGLEVEL": "ERROR",
        "APPDATA": "C:\\Users\\matth\\AppData\\Roaming",
        "FLOWISE_API_KEY": "your-api-key-goes-here",
        "FLOWISE_API_ENDPOINT": "http://localhost:3000/"
      }
    }
  }
}

Notes

  • Full Paths: Use full paths for both uvx.exe and the cloned repository.

  • Environment Variables: Point APPDATA to your Windows user profile (e.g., C:\\Users\\<username>\\AppData\\Roaming) if needed.

  • Log Level: Adjust LOGLEVEL as needed (ERROR, INFO, DEBUG, etc.).

Environment Variables

General

  • FLOWISE_API_KEY: Your Flowise API Bearer token (required).

  • FLOWISE_API_ENDPOINT: Base URL for Flowise (default: http://localhost:3000).

LowLevel Mode (Default)

  • FLOWISE_CHATFLOW_DESCRIPTIONS: Comma-separated list of chatflow_id:description pairs. Example:

    FLOWISE_CHATFLOW_DESCRIPTIONS="abc123:Chatflow One,xyz789:Chatflow Two"

FastMCP Mode (FLOWISE_SIMPLE_MODE=true)

  • FLOWISE_CHATFLOW_ID: Single Chatflow ID (optional).

  • FLOWISE_ASSISTANT_ID: Single Assistant ID (optional).

  • FLOWISE_CHATFLOW_DESCRIPTION: Optional description for the single tool exposed.


Filtering Chatflows

Filters can be applied in both modes using the following environment variables:

  • Whitelist by ID:
    FLOWISE_WHITELIST_ID="id1,id2,id3"

  • Blacklist by ID:
    FLOWISE_BLACKLIST_ID="id4,id5"

  • Whitelist by Name (Regex):
    FLOWISE_WHITELIST_NAME_REGEX=".*important.*"

  • Blacklist by Name (Regex):
    FLOWISE_BLACKLIST_NAME_REGEX=".*deprecated.*"

Note: Whitelists take precedence over blacklists. If both are set, the most restrictive rule is applied.

Security

  • Protect Your API Key: Ensure the FLOWISE_API_KEY is kept secure and not exposed in logs or repositories.

  • Environment Configuration: Use .env files or environment variables for sensitive configurations.

Add .env to your .gitignore:

# .gitignore
.env

Troubleshooting

  • Missing API Key: Ensure FLOWISE_API_KEY is set correctly.

  • Invalid Configuration: If both FLOWISE_CHATFLOW_ID and FLOWISE_ASSISTANT_ID are set, the server will refuse to start.

  • Connection Errors: Verify FLOWISE_API_ENDPOINT is reachable.


License

This project is licensed under the MIT License. See the LICENSE file for details.

TODO

  • Fastmcp mode

  • Lowlevel mode

  • Filtering

  • Claude desktop integration

  • Assistants

Available Tools

2 tools
create_predictionA
Create a prediction by sending a question to a specific chatflow or assistant.

Args:
    chatflow_id (str, optional): The ID of the chatflow to use. Defaults to FLOWISE_CHATFLOW_ID.
    question (str): The question or prompt to send to the chatflow.

Returns:
    str: The raw JSON response from Flowise API or an error message if something goes wrong.
ParametersJSON Schema
NameRequiredDescriptionDefault
chatflow_idNo
questionYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that this is a creation/mutation tool ('Create a prediction') and mentions the API source ('Flowise API'), but lacks details about authentication needs, rate limits, error handling beyond 'error message', or whether predictions are stored persistently.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with clear sections (purpose, args, returns). The first sentence states the core purpose, and subsequent details are necessary. Minor improvement could be merging the first two sentences for better flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters with 0% schema coverage and no output schema, the description provides basic parameter semantics and return type ('raw JSON response' or 'error message'), but lacks details on response structure, error cases, or integration context (e.g., what a 'prediction' entails in this system).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful context for both parameters: chatflow_id is optional with a default value from environment, and question is the prompt to send. However, it doesn't explain format constraints or provide examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create a prediction by sending a question to a specific chatflow or assistant.' It specifies the verb ('Create a prediction') and resource ('chatflow or assistant'), but doesn't explicitly differentiate from the sibling tool 'list_chatflows' beyond their different functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'chatflow or assistant' and referencing 'FLOWISE_CHATFLOW_ID' as a default, but doesn't provide explicit guidance on when to use this tool versus alternatives or any prerequisites. The sibling tool 'list_chatflows' is mentioned but not compared.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_chatflowsA
List all available chatflows from the Flowise API.

This function respects optional whitelisting or blacklisting if configured
via FLOWISE_CHATFLOW_WHITELIST or FLOWISE_CHATFLOW_BLACKLIST.

Returns:
    str: A JSON-encoded string of filtered chatflows.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it's a read operation (implied by 'List'), respects configuration-based filtering, and returns JSON-encoded data. However, it doesn't mention potential rate limits, authentication needs, or error handling, leaving some gaps in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise and well-structured: three sentences with zero waste. The first sentence states the purpose, the second explains configuration behavior, and the third specifies the return format. Every sentence earns its place and information is appropriately front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description provides good contextual completeness. It covers purpose, behavioral constraints (filtering), and return format. However, without annotations or output schema, it could benefit from more detail about the structure of returned JSON or error conditions for a fully complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the description doesn't need to compensate for parameter documentation. The description appropriately focuses on behavioral aspects rather than parameter semantics, which is correct for a parameterless tool. It adds value by explaining the filtering behavior beyond what the empty schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List all available chatflows from the Flowise API.' This specifies the verb ('List') and resource ('chatflows'), though it doesn't explicitly differentiate from its sibling tool 'create_prediction' beyond the obvious action difference. The purpose is clear but lacks explicit sibling comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning whitelisting/blacklisting configuration, but it doesn't provide explicit guidance on when to use this tool versus alternatives. There's no mention of when not to use it or direct comparison to 'create_prediction', leaving usage context somewhat implied rather than clearly articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

The two tools have completely distinct purposes: one lists available chatflows, and the other creates predictions using a specific chatflow. There is no overlap in functionality or ambiguity between them.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (list_chatflows, create_prediction) with clear, descriptive names that align with their functions. No deviations or mixed conventions are present.

Tool Count2/5

With only 2 tools, the server feels thin for its apparent domain of interacting with Flowise chatflows. While the tools cover basic operations, the lack of tools for updating, deleting, or managing chatflows suggests an incomplete surface that may limit agent workflows.

Completeness2/5

The toolset is severely incomplete for a chatflow management domain. It provides listing and prediction creation but lacks essential CRUD operations like creating, updating, or deleting chatflows, as well as tools for managing predictions (e.g., retrieving or canceling them), which will likely cause agent failures in complex tasks.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/matthewhand/mcp-flowise'

If you have feedback or need assistance with the MCP directory API, please join our Discord server