Skip to main content
Table of Contents

Connecting to Flourish with an LLM using our MCP Server

Connect Flourish to Claude and other LLMs via MCP server to query inventory, update attributes, and manage package locks. Read tools always allowed; write actions require approval.

Use Flourish's MCP server to access tools from your LLM (Large Language Model) interface of choice, including Claude, ChatGPT, Gemini, Grok, etc.

What's an MCP Server? The Model Context Protocol (MCP) is a new way for AI tools to communicate with software applications. The Flourish MCP server exposes a set of tools to perform certain actions in Flourish using an LLM chat interface.

What tools are available? We're working closely with accounts to safely expose functionality through this interface, and we will regularly update the tool list as we add new capabilities.

Important: Read tools return Flourish data only. Write tools (items_update, packages_lock, packages_unlock) change records in Flourish. They do not sync changes to Metrc, BioTrack, or other state compliance systems.

If you have feedback or requests, please submit this form: MCP Connector Product Feedback & Feature Request
Core things it can do

1. Explore facilities

You can list facilities you have access to, including facility type, license info, location, company compliance configuration, and whether the company/facility is tied to Metrc or BioTrack integrations.

2. Search and review items

You can search active items by item name, retail display name, part number, or SKU. The item data includes category/class, inventory type, ecommerce fields, sellable/purchasable flags, pricing/cost fields, cannabis attributes, serving size, THC/CBD fields, supplier info, tracking flags, and more.

3. Update item attributes

It can make limited item edits, such as SKU, part number, retail display name, brand, sellable/purchasable flags, lot tracking, reorder point, storage instructions, serving size, THC/CBD fields, and other approved fields. The tool is intentionally allow-listed, so it cannot edit every item field. Changes are saved in Flourish only.

4. Query packages and inventory, including an inventory summary

You can search packages by item/SKU/part number, lot number, package status, and locked/unlocked state. Package data includes available and non-available quantity, lot, location, lock state, item details, testing status, THC/CBD percentages, unit cost, total cost, package status, PO linkage, and compliance sync status. This includes a dedicated tool for querying inventory summary levels.

5. Lock, unlock, and locate packages

You can apply facility-specific lock codes to packages or clear lock states. Before locking, you can query valid lock codes for a facility. The package lock tool has guardrails, including a max of 50 entries and restrictions around packages allocated to open orders or manufacturing runs. There is also a tool to locate packages that includes querying areas and locations.

6. Search and review outbound (B2B) orders

You can search wholesale outbound orders by facility, order ID, destination, sales rep, order status, and payment status. You can also open a single order to see header details, order lines, charges, discounts, payments, and per-line inventory levels.

7. Review outbound order inventory and compliance readiness

For B2B outbound orders, it can check per-line inventory availability, including on-hand, locked, allocated, on-order, and available-to-sell quantities (including by lot when applicable). It can also check whether allocated packages are synced with the compliance system before shipment.

8. Review retail order metrics

It can pull retail order dashboard counts by company and store: all purchases, pickup, delivery, in-store, open orders, back orders, pre-orders, needs-review orders, today's orders, and tomorrow's orders.

9. Review delivery and shipment route orders

It can list orders assigned to a delivery route or outbound shipment, including stop sequence, delivery timestamp, order/payment status, destination facility/address, totals, and package counts. Shipment results can include manifest and external transfer fields where your integration supports them.

10. Work with brands and reference data

It can list brand records used for retail/ecommerce menus (including active status and logo/image metadata), units of measure, order payment types, order payment statuses, and company integration sync status summaries.

11. View & disable user connections

In Flourish, admins with access to Admin → Integrations → MCP Server can review MCP connections. They can see which users are connected, each connection’s client name (for example, Claude or ChatGPT), tool call count, and expiry date. They can disable a connection or all of a user’s connections.


Managing MCP connections in Flourish

Company admins can review and revoke MCP access inside Flourish.

  1. Go to Admin → Integrations → MCP Server.
  2. The MCP Users grid lists users who have connected an AI client, their last access time, and how many active connections they have.
  3. Click a username to open that user's Active Connections. Each row shows the client name (for example, Claude or ChatGPT), when the connection was created, last access, expiration, and a tool call count for that connection.
  4. Use Disconnect on a connection to revoke that client immediately, or disable all connections for a user from the connections modal.

Each MCP connection stays active for up to 90 days. After it expires, sign in again through your AI client to reconnect.

Flourish stores aggregate tool call counts per connection. A per-call audit log you can browse in the app is not available yet; that may be added in a future release.


User Permissions

Enable full or read-only permissions directly in a user's profile within Flourish. You have to grant access to use any of the tools via the MCP. You can also disconnect a user from the Integrations > MCP screen.

Connect Flourish Software to Claude (claude.ai chat)

You'll need a Claude.ai Pro/Max/Team/Enterprise subscription (custom connectors aren't available on Free).

Follow these steps to connect your Flourish account to Claude using Flourish's MCP server. Claude only sees data you have permission to access in Flourish, scoped to your user's facility access. You can opt out of exposing data to AI training when you configure your Claude account.

1. Add Flourish as a new Connector

First, click "Customize" to show the customization screen. Navigate to Connectors, click the plus sign, and click "Add customer connector."

Then, name the connector. For example, "Flourish Software." Enter the Flourish MCP Server URL into the screen, and click "add."

Flourish Server URL: https://flourish-mcp-server.prd.k8s.flourishsoftware.com/mcp

2. Connect to Flourish

Click "Connect" to open the login page.

Sign in with your normal Flourish username and password. Client name is used to identify the connection in Flourish (for example, "Claude").

3. Customize Permissions

Modify the tool permissions to align with your comfort level for tool approval.

Note: We update tools on a regular basis, so you may need to refresh the tool list to access new tools.

Other Claude clients (Desktop, Claude Code)

Claude Desktop and Claude Code can use the same production MCP URL and OAuth sign-in flow as Claude on the web. Add a remote HTTP MCP server pointing at https://flourish-mcp-server.prd.k8s.flourishsoftware.com/mcp, then authenticate with your Flourish username and password when prompted.


Connect to OpenAI's ChatGPT

If your Flourish MCP server is a remote MCP endpoint, you can connect it to ChatGPT using the Connectors feature and Developer Mode. ChatGPT supports custom MCP servers through Connectors.

If "Developer Mode" is disabled, please contact your IT Admin. At the end of the setup steps, we've included instructions on publishing the Flourish App to make it available to other users in your organization.
1. Enable Developer Mode
  1. Open ChatGPT.
  2. Click your profile picture → Settings.
  3. Go to Apps
  4. Click on Advanced Settings at the bottom
  5. Enable Developer Mode

2. Add the Flourish MCP Server
  1. In Settings → Apps, click New App.
  2. Enter:
3. Authenticate

Sign into the App using your Flourish username (email) and password.

4. Use It in a Chat
  1. Start a new chat.
  2. Open Tools or Add Sources.
  3. Enable the Flourish Software connector.
  4. Ask ChatGPT something like:
    • "List my Flourish facilities."
    • "Show inventory for facility X."
    • "Find all items with SKU Y."

ChatGPT will discover the tools exposed by your MCP server and call them as needed.

Make the App available to the others in your org
  1. Go to the Organization Settings
  2. Navigate to Apps
  3. Click on "Drafts"
  4. Click Publish


Claude and other MCP clients let you choose how each tool is gated. We recommend the following starting configuration. You can tighten or loosen these later as you build trust with the workflow.

Rule of thumb: tools that only read data are safe to allow freely (most names end in _query, _get, or _get_by_id). The three write tools — items_update, packages_lock, and packages_unlock — should stay on "Ask every time" until you're comfortable with how your AI client uses them. We will never auto-elevate a read tool to a write tool. New write tools always arrive on the "Needs approval" default.

Tool

Type

Recommended Setting

Notes

User: Who Am I (user_whoami)

Read

Always allow

Identifies your session. No business data exposure.

User: Get Facilities (user_facilities)

Read

Always allow

Lists facilities you already have access to.

MCP Tools: Search (tool_search)

Read

Always allow

Discovery only; doesn't return business data.

UOMs: Get (uoms_query)

Read

Always allow

Static reference data for units of measure.

Areas: Locations Query (area_locations_query)

Read

Always allow

Lists locations within your facilities.

Area Types: Query (area_types_query)

Read

Always allow

Static reference data for area types.

Areas: Query (areas_query)

Read

Always allow

Lists storage areas within your facility.

Brands: Query (brands_query)

Read

Always allow

Lists brands configured in your account.

Delivery Orders: Get by Delivery ID (delivery_orders_get_by_delivery_id)

Read

Always allow

Returns line items for a specific delivery.

Integration Sync Statuses: Query (integration_sync_statuses_query)

Read

Always allow

Returns Metrc/compliance sync status.

Inventory Summary: Query (inventory_summary_query)

Read

Always allow

Returns aggregated inventory data across your facility.

Item Categories: Query (item_categories_query)

Read

Always allow

Static reference data for item categories.

Item Classes: Query (item_classes_query)

Read

Always allow

Static reference data for item classes.

Items: Query (items_query)

Read

Always allow

Returns product catalog items with filters.

Items: Update (items_update)

Write

Ask each time

Modifies item records. Requires explicit confirmation.

Lab Test Result Statuses: Query (lab_test_result_statuses_query)

Read

Always allow

Returns available lab result status values.

Lock Codes: Query (lock_codes_query)

Read

Always allow

Returns package lock code reference data.

Order: Allocation Sync Status (order_allocation_sync_status_get_by_id)

Read

Always allow

Returns allocation and sync status for a specific order.

Order: Get by ID (order_get_by_id)

Read

Always allow

Returns full detail for a single order.

Order: Inventory Availability (order_inventory_availability_get_by_id)

Read

Always allow

Checks available inventory for fulfilling an order.

Order Payment Status: Query (order_payment_status_query)

Read

Always allow

Returns payment status reference values.

Order Payment Types: Query (order_payment_types_query)

Read

Always allow

Static reference data for payment types.

Orders: Query (orders_query)

Read

Always allow

Returns order list with filtering support.

Package Statuses: Query (package_statuses_query)

Read

Always allow

Static reference data for package statuses.

Packages: Locate (packages_locate)

Write

Ask each time

Updates package location. Compliance-relevant; creates an audit trail in Metrc.

Packages: Lock (packages_lock)

Write

Ask each time

Locks a package. Compliance-relevant action.

Packages: Query (packages_query)

Read

Always allow

Returns package inventory with filtering support.

Packages: Unlock (packages_unlock)

Write

Ask each time

Unlocks a package. Compliance-relevant action.

Retail Order Metrics: Get (retail_order_metrics_get)

Read

Always allow

Returns aggregated retail sales metrics.

Shipment Orders: Get by Shipment ID (shipment_orders_get_by_shipment_id)

Read

Always allow

Returns orders associated with a specific shipment.

Strains: Query (strains_query)

Read

Always allow

Returns strain catalog data.


Example Prompts

Once connected, try these to get a feel for what the integration can do. Your AI client will ask you to choose a facility on the first prompt of a session if you have access to more than one.

Inventory & operations

  • "What facilities do I have access to in Flourish?"
  • "Show me all packages at [facility name] that are currently locked, and why."
  • "List items where the SKU starts with 'GUM-' and the product class is edible."
  • "How many packages of [strain name] do I have on hand, grouped by facility?"

Outbound orders

  • "Show submitted outbound orders from [facility] with payment status Awaiting Payment."
  • "Open order OUT-20240115-0001 and tell me whether each line has enough available inventory to allocate."
  • "For order OUT-20240115-0001, are all allocated packages in sync with Metrc?"
  • "List the orders on shipment SHP-20240115-0001 in stop order."

Retail

  • "Give me today's and tomorrow's retail order counts for each store."
  • "List orders on delivery route [delivery ID] with stop sequence and payment status."

Compliance & sync health

  • "What's the current sync status of my Metrc integration? Are there any failed records?"
  • "Show me any integration sync errors from the last 24 hours and explain what they likely mean."

Lock workflow (write actions — your AI client will ask before executing)

  • "Find all packages at [facility] tagged with the test batch ID 1A4… and lock them with the 'Pending QA Review' lock code."
  • "Unlock the three packages I just locked for QA — testing came back clean."

Reference & exploration

  • "What units of measure does Flourish support, and which ones are 'count' vs 'weight'?"
  • "List active brands and which ones have logo images."
  • "What tools does the Flourish MCP server expose? Group them by read vs write."

Tip: Your AI client works best when you give it a facility name or ID up front and tell it whether you want a summary, a table, or raw data. The more specific the prompt, the better the result.


Troubleshooting

The "Connect" button does nothing, or the login window closes immediately.

Pop-ups may be blocked. Allow pop-ups for your AI client in your browser and try again. If you're using a corporate browser profile, your IT policy may also be blocking third-party OAuth windows.

The login screen shows a countdown timer and times out before I finish.

The sign-in window is short-lived (about 15 minutes) for security. If it expires, close the window and click "Connect" again. A fresh login window will be issued. Have your password and 2FA device ready before you start.

"Invalid credentials" even though my Flourish login works in the app.

Make sure you're using the email that you log into Flourish with.

My password expired or was reset after I connected.

Disconnect the connector (three-dot menu → Disconnect), then click Connect again and sign in with your new password. Existing chats won't retroactively reauthenticate.

My connection stopped working after a long period of inactivity.

MCP sessions expire after 90 days. Disconnect and connect again, or sign in fresh when your AI client prompts you.

Tools are missing, or new tools you announced aren't showing up.

Open the connector settings and click "Refresh tools list" at the top right. We add and update tools regularly; refreshing pulls the current catalog without requiring you to disconnect and reconnect.

My AI client says it "doesn't have access" to a facility I should be able to see.

The MCP session inherits the same facility access as your Flourish user account. If a facility is missing, check your user's facility permissions inside Flourish first. If your access is correct there, disconnect and reconnect the connector to refresh your session token.

A write action (lock, unlock, update) failed.

Check the error message your AI client returns. Common causes include: the package is allocated to an open order or manufacturing run (which blocks locking), an invalid lock_code_id for that facility (lock codes are facility-specific), or insufficient role permissions on your Flourish user. Re-running the read query first (for example, packages_query) will usually surface the underlying state.

How do I disconnect or revoke access?

In your AI client, open the connector and choose "Disconnect" from the three-dot menu. That invalidates the session immediately. Company admins can also revoke access in Flourish under Admin → Integrations → MCP Server by disabling a user's connection(s).

Something else is broken.

Email support with: your Flourish username, the approximate time of the issue, the prompt you sent, and any error message displayed. Screenshots help.

How did we do?

CYBRA MarkMagic® Integration Setup

Contact