# Unleashed MCP

> Unleashed MCP Server connects your AI agent directly to your entire Unleashed account. It lets you manage inventory, create orders, and handle customers without leaving your chat window. Query Bills of Materials (BOMs), generate purchase orders, inspect customer profiles, or check stock levels—all from natural language prompts.

## Overview
- **Category:** erp-operations
- **Price:** Free
- **Tags:** inventory, manufacturing, assemblies, invoicing, boms

## Description

You're connecting your AI agent directly to your Unleashed account. It lets you manage everything—from building products on the factory floor to handling customer invoices—without ever leaving your chat window.

**Product and Inventory Management:**
*   You can register new stock with `create_product` or build a whole finished good assembly using `create_assembly`. 
*   If you need details, check out specific product info with `get_product`, list everything in the system with `list_products`, or find your component blueprints by querying Bills of Materials (BOMs) via `get_bom` or listing all available BOM structures using `list_boms`. 
*   You can also manage how stock moves internally, checking current counts with `get_stock_on_hand` or getting a directory list for every unit of measure configured in the system using `list_unit_of_measures`. 
*   To keep track of variations, you'll find tools to list product groups (`list_product_groups`) and check custom classification rules with `list_attribute_sets`.

**Sales and Order Processing:**
*   When a client places an order, you can instantly generate one using `create_sales_order`. You can also start the process by listing potential revenue streams via `list_sales_quotes`. 
*   The system lets you view the full details of any specific sale with `get_sales_order`, and track completed shipments through `list_sales_shipments`. 
*   You'll get a complete record of all finalized sales documents by pulling data from `get_invoice` or checking out past records using `list_invoices`. 
*   For pricing control, you can retrieve existing selling price lists with `list_product_prices`, and check different rates for various customer tiers using `list_sell_price_tiers`.
*   You can also look up who handles sales accounts by listing all employees in `list_salespersons`.

**Purchasing and Supplier Records:**
*   When you need to restock, you generate a purchase order with `create_purchase_order`, which saves the incoming stock details. You pull up full records for any existing PO using `get_purchase_order`, or see what's pending with `list_purchase_orders`. 
*   You manage vendors by listing all suppliers in `list_suppliers` and pulling individual vendor details using `get_supplier`. 
*   The system keeps track of goods coming back from the vendors via `list_supplier_returns`. 
*   For inventory adjustments, you list records detailing manual changes to counts with `list_stock_adjustments`, or check historical physical count reports by running `list_stock_counts`.

**Customer and Company Data:**
*   You can build a new customer profile using `create_customer` or retrieve all existing accounts via `list_customers`. 
*   For deep client vetting, you get every detail on one person with `get_customer`, and you'll find all saved delivery locations associated with that account by listing them through `list_customer_delivery_addresses`. 
*   The system gives you a clear picture of your business foundation. You retrieve core company settings using `get_company` and manage financial visibility by listing configured accounts (`list_accounts`) or checking accepted transaction currencies via `list_currencies`. 

**Data Retrieval Directory:**
You have comprehensive access to look up everything: 
*   You can list all existing assembled products or kits with `list_assemblies`, or get the specific details for one assembly record using `get_assembly`. 
*   The system lets you pull a directory of every vendor using `list_suppliers` and view their return records. 
*   For financial tracking, you can list all generated sales quotes (`list_sales_quotes`) and provide a full listing of credit notes issued over time with `list_credit_notes`. 
*   You'll get a complete directory of every product in your inventory using `list_products`, or view which groups they fall into by running `list_product_groups`.

It’s all about making sure you can query the right data—whether it’s checking out stock levels, viewing a specific vendor's return history, or listing every financial account configured—all through simple conversation.

## Tools

### list_accounts
Lists all the financial accounts configured in your system.

### list_assemblies
Gets a list of all existing assembled products or kits.

### list_attribute_sets
Lists the custom attribute sets you use to classify products.

### list_boms
Retrieves a list of all available Bills of Materials (BOMs).

### get_company
Retrieves core organizational information about the business.

### create_assembly
Builds a new finished goods assembly record in Unleashed.

### create_customer
Adds a brand-new customer account to the system.

### create_product
Registers a new product into your inventory records.

### create_purchase_order
Generates and saves a purchase order to track incoming stock from suppliers.

### create_sales_order
Creates a new sales order when a customer places an order.

### list_credit_notes
Provides a listing of issued credit notes.

### list_currencies
Lists all accepted currencies for transactions.

### list_customer_delivery_addresses
Retrieves all saved delivery addresses linked to a customer account.

### list_customers
Generates a full list of every customer in the system.

### get_assembly
Retrieves the specific details for one existing assembly record.

### get_bom
Pulls all component details and structure for a specified Bill of Materials.

### get_customer
Gets all details on one specific customer account.

### get_invoice
Pulls the full record and line items for a sales invoice.

### get_product
Gets all product information using its unique identifier.

### get_purchase_order
Retrieves the full details for a single purchase order.

### get_sales_order
Pulls all data related to a specific sales order.

### get_stock_on_hand
Checks the current, real-time quantity of stock for any given product.

### get_supplier
Retrieves details about a specific supplier company.

### list_invoices
Lists all sales invoices generated over time.

### list_product_brands
Gets a list of every brand associated with your products.

### list_product_groups
Lists the different product categories or groups you use.

### list_product_prices
Retrieves a list of all defined selling prices for products.

### list_products
Gets a directory listing of every product in your inventory.

### list_purchase_orders
Provides a list of all purchase orders you've created or received.

### list_recost_adjustments
Lists any records detailing cost adjustments for products.

### list_sales_orders
Provides a list of all sales orders placed by customers.

### list_sales_quotes
Lists all pending or issued sales quotes for potential revenue.

### list_sales_shipments
Provides a list of completed shipments against sales orders.

### list_salespersons
Lists the employees who handle sales accounts.

### list_sell_price_tiers
Retrieves a list of tiered pricing structures used for different customer groups.

### list_stock_adjustments
Lists records showing manual changes made to inventory counts.

### list_stock_counts
Provides a list of historical, physical stock count reports.

### list_stock_on_hand
Lists the current inventory level for all managed products.

### list_supplier_returns
Provides a list of goods returned from suppliers.

### list_suppliers
Generates a complete directory listing of all vendors.

### list_unit_of_measures
Lists the units used to measure inventory (e.g., 'each', 'box', 'kg').

### list_warehouse_stock_transfers
Provides a list of internal movements of stock between warehouses.

### list_warehouses
Lists all physical warehouse locations used by the business.

## Prompt Examples

**Prompt:** 
```
List the first page of our customers in Unleashed.
```

**Response:** 
```
I've retrieved your customers. Currently, you have active accounts including 'Global Trade Ltd' (GUID: 8a7b6c) and 'Apex Retail' (GUID: 5f4e3d). Would you like to inspect any of these specifically?
```

**Prompt:** 
```
Create a new customer with code 'CUST-999' and name 'Delta Industries'.
```

**Response:** 
```
I have successfully created the customer 'Delta Industries' with code 'CUST-999'. The newly generated GUID is '9a8b7c6d-5e4f-3a2b-1c0d'. Let me know if you need to add delivery addresses or other details.
```

**Prompt:** 
```
Get the details for assembly GUID 12345-abcde-67890.
```

**Response:** 
```
Retrieving assembly details... Assembly '12345-abcde-67890' is currently 'In Progress'. It is assembling 50 units of 'Premium Widget' using BOM 'BOM-004'. No quality issues have been flagged.
```

## Capabilities

### Product & Inventory Management
Create new products, assemblies, or purchase orders. You can also check stock levels using `get_stock_on_hand` or list all available units of measure.

### Sales and Order Processing
Generate sales quotes and orders (`list_sales_quotes`, `create_sales_order`). You can list invoices, view shipments, and check product availability using `get_invoice` or `get_stock_on_hand`.

### Customer & Supplier Records
Retrieve customer details (`get_customer`), manage addresses via `list_customer_delivery_addresses`, and list suppliers and their returns records.

### Manufacturing Planning (BOM)
Build product recipes by listing Bills of Materials using `list_boms` or getting details for a specific assembly with `get_bom`.

### Financial and Company Overview
List financial accounts (`list_accounts`), view currencies, and retrieve core company settings using `get_company`.

## Use Cases

### The End-of-Day Inventory Check
The planner needs to know if the 'Elite Widget' can ship. They ask their agent, who runs `get_stock_on_hand` for the product and then checks the BOM using `get_bom`. The agent confirms stock is above 100 units and lists any required components that might be low.

### Creating a New Client Order
Sales needs to quote Delta Industries. They prompt their agent, who first runs `get_customer` to validate the account, then uses `list_sell_price_tiers` to confirm pricing, and finally generates an initial sales quote using `list_sales_quotes`.

### Tracking a Supplier Issue
The ops manager notices discrepancies. They ask the agent to list recent supplier returns (`list_supplier_returns`) and check if the necessary product was tracked via `get_product` before initiating an inventory adjustment using `list_stock_adjustments`.

### Building a Complex Product
Someone needs to know how to build a new kit. They ask for BOMs, and the agent executes `list_boms`. If they need details on a specific part, they run `get_bom` immediately to see all components.

## Benefits

- Stop jumping between tabs. You can check stock levels (`get_stock_on_hand`) and create a sales order (`create_sales_order`) without switching screens, all through your agent.
- Manage complex product builds: Need to know what goes into a widget? Use `list_boms` or run `get_bom` to see the exact component breakdown instantly.
- Handle customer accounts end-to-end. You can check details (`get_customer`), list addresses (`list_customer_delivery_addresses`), and create new records (`create_customer`) in one chat session.
- Keep finance straight. Quickly list invoices (`list_invoices`), track credit notes (`list_credit_notes`), or see which accounts need updating using `list_accounts`.
- Full visibility on inventory movements: You don't just see the count; you can check historical data by listing stock counts (`list_stock_counts`) or transfers (`list_warehouse_stock_transfers`).
- Process orders faster. Instead of manually writing POs, prompt your agent to `create_purchase_order` and attach it directly to a supplier.

## How It Works

The bottom line is you use your AI agent as a single operations assistant that talks directly to Unleashed.

1. Subscribe to this server and enter your Unleashed API ID and API Key.
2. Your AI client connects the credentials, giving it read/write access across all inventory modules.
3. You talk to your agent like a teammate: 'Check stock for Widget A' or 'Create an invoice for customer X'.

## Frequently Asked Questions

**How do I check stock using get_stock_on_hand?**
You simply ask your agent to run `get_stock_on_hand` for the specific product code. It returns the current, real-time quantity available in inventory.

**What is the difference between list_products and get_product?**
Use `list_products` when you need to see every single product ID or name in a directory. Use `get_product` when you already know the specific product ID and just want its full details.

**Can I create a sales order without listing customers first?**
No, it's best practice to list your customers (`list_customers`) or use `get_customer` first. This ensures the agent has valid account information before running `create_sales_order`.

**What is the purpose of get_bom?**
The `get_bom` tool shows you exactly what components are needed to build a finished product. It's essential for manufacturing planning and quality checks.

**What permissions do I need to run the financial tool `list_accounts`?**
You must provide API credentials with read access to accounting records. The server uses your provided Unleashed API key to check these permissions before executing any query. If you hit an access denied error, it means the account linked to the key lacks visibility into those specific financial domains.

**If I need a customer's address, should I use `list_customers` or `list_customer_delivery_addresses`?**
You should use `list_customer_delivery_addresses`. While `list_customers` gives you the primary account details, this specific tool retrieves every associated delivery location for a customer. This keeps your address data separated and easier to query when needed.

**What happens if I fail to provide mandatory information when calling `create_purchase_order`?**
The call will fail immediately, returning an error code detailing the missing field. You must supply required data like supplier IDs, product SKUs, and quantities for a successful creation. The server won't proceed until all necessary inputs are present.

**How do I handle large amounts of data when using `list_invoices`?**
The tool uses standard pagination mechanisms to limit the output size and protect your connection. If you request too many records, the server will return a partial list and provide the next page's token or cursor for follow-up calls.

**How do I fetch the details of a specific Bill of Materials (BOM)?**
You can use the `get_bom` tool by providing the unique GUID of the Bill of Materials. The agent will return the complete component list and configuration details.

**Can I create a new customer directly through my AI agent?**
Yes! Use the `create_customer` tool. You will need to provide a unique `CustomerCode` and a `CustomerName`, along with any optional fields you wish to populate.

**How can I monitor active assembly processes?**
You can list all assemblies using `list_assemblies` (supporting pagination) or fetch a specific one using `get_assembly` with its GUID to check its status and progress.