Provides inventory management tools for PostgreSQL databases, enabling operations to add, remove, check stock levels, and list inventory items across multiple locations.
Provides inventory management tools for Supabase PostgreSQL databases, enabling operations to add, remove, check stock levels, and list inventory items across multiple locations.
Inventory MCP Server
A Model Context Protocol (MCP) server for managing inventory using Supabase (PostgreSQL) database.
Features
Add Inventory: Add or update inventory items with product name, location, and quantity
Remove Inventory: Remove items from inventory at specific locations
Check Stock: Query stock levels for specific items at locations
List Inventory: Get a complete list of all inventory items
Prerequisites
Python 3.11 or higher
Supabase account with a project
Database password from Supabase Dashboard
Setup Instructions
1. Install Dependencies
Or using the project file:
2. Set Up Supabase Database
Run the simplified database setup script:
This will:
Connect to your Supabase database (port 6543 - connection pooler)
Create the
inventorytableInsert sample data (24 items across 4 locations)
You'll be prompted for:
Your Supabase database password
Note: Your Supabase URL and configuration are already set in the script:
Host:
db.sitomhzoqsoqpkaglxzg.supabase.coPort:
6543(connection pooler)Database:
postgresUser:
postgres
3. Server Configuration
The server is already configured with your Supabase credentials:
Supabase URL:
https://sitomhzoqsoqpkaglxzg.supabase.coDatabase password is set to
root(default)Port:
6543(connection pooler)
If you need to change the password, edit inventory-mcp-server.py:
Or set an environment variable:
4. Run the Server
Database Schema
The inventory table has the following structure (PostgreSQL/Supabase):
item_id(VARCHAR(50)) - Unique item identifierproduct_name(VARCHAR(100)) - Name of the productlocation(VARCHAR(50)) - Location/warehouse namequantity(INT) - Stock quantityPrimary Key: (
item_id,location)
Available Tools
add_inventory
Adds or updates inventory items.
Parameters:
item_id(str): Unique identifier for the itemproduct_name(str): Name of the productlocation(str): Location/warehouse namequantity(int): Quantity to add
Returns: Confirmation message
remove_inventory
Removes items from inventory.
Parameters:
item_id(str): Item identifierlocation(str): Location/warehouse namequantity(int): Quantity to remove
Returns: Confirmation message
check_stock
Checks stock level for a specific item at a location.
Parameters:
item_id(str): Item identifierlocation(str): Location/warehouse name
Returns: Item details with current stock level
list_inventory
Lists all inventory items.
Returns: List of all inventory items with their details
Sample Data
The setup script includes sample data for:
Laptops (LAP-001 to LAP-006)
Mobile phones (MOB-001 to MOB-006)
Tablets (TAB-001 to TAB-006)
Accessories (ACC-001 to ACC-006)
Items are distributed across locations: Bengaluru, Mumbai, Delhi, and Pune.
Troubleshooting
Supabase Connection Issues
Verify Database Password:
Go to: https://supabase.com/dashboard/project/sitomhzoqsoqpkaglxzg/settings/database
Check or reset your database password
Check Connection Settings:
Default port:
6543(connection pooler - recommended)Alternative:
5432(direct connection)Ensure SSL is enabled (
sslmode=require)
IP Allowlist:
Check Supabase Dashboard > Settings > Database > Connection Pooling
Ensure your IP is allowed or use "Allow all IPs" for development
Test Connection:
python test_connection.py
Import Errors
If you encounter import errors, ensure all dependencies are installed:
License
This project is provided as-is for educational and development purposes.