Skip to main content
Glama
README.md4.15 kB
# 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 ```bash pip install fastmcp psycopg2-binary supabase ``` Or using the project file: ```bash pip install -e . ``` ### 2. Set Up Supabase Database Run the simplified database setup script: ```bash python setup_database_simple.py ``` This will: - Connect to your Supabase database (port 6543 - connection pooler) - Create the `inventory` table - Insert 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.co` - Port: `6543` (connection pooler) - Database: `postgres` - User: `postgres` ### 3. Server Configuration The server is already configured with your Supabase credentials: - Supabase URL: `https://sitomhzoqsoqpkaglxzg.supabase.co` - Database password is set to `root` (default) - Port: `6543` (connection pooler) If you need to change the password, edit `inventory-mcp-server.py`: ```python DB_PASSWORD = os.getenv("SUPABASE_DB_PASSWORD", "your_password") ``` Or set an environment variable: ```bash set SUPABASE_DB_PASSWORD=your_password ``` ### 4. Run the Server ```bash python inventory-mcp-server.py ``` ## Database Schema The `inventory` table has the following structure (PostgreSQL/Supabase): - `item_id` (VARCHAR(50)) - Unique item identifier - `product_name` (VARCHAR(100)) - Name of the product - `location` (VARCHAR(50)) - Location/warehouse name - `quantity` (INT) - Stock quantity - Primary Key: (`item_id`, `location`) ## Available Tools ### `add_inventory` Adds or updates inventory items. **Parameters:** - `item_id` (str): Unique identifier for the item - `product_name` (str): Name of the product - `location` (str): Location/warehouse name - `quantity` (int): Quantity to add **Returns:** Confirmation message ### `remove_inventory` Removes items from inventory. **Parameters:** - `item_id` (str): Item identifier - `location` (str): Location/warehouse name - `quantity` (int): Quantity to remove **Returns:** Confirmation message ### `check_stock` Checks stock level for a specific item at a location. **Parameters:** - `item_id` (str): Item identifier - `location` (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 1. **Verify Database Password**: - Go to: https://supabase.com/dashboard/project/sitomhzoqsoqpkaglxzg/settings/database - Check or reset your database password 2. **Check Connection Settings**: - Default port: `6543` (connection pooler - recommended) - Alternative: `5432` (direct connection) - Ensure SSL is enabled (`sslmode=require`) 3. **IP Allowlist**: - Check Supabase Dashboard > Settings > Database > Connection Pooling - Ensure your IP is allowed or use "Allow all IPs" for development 4. **Test Connection**: ```bash python test_connection.py ``` ### Import Errors If you encounter import errors, ensure all dependencies are installed: ```bash pip install --upgrade fastmcp psycopg2-binary supabase ``` ## License This project is provided as-is for educational and development purposes.

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/Adiitiir/inventory-mcp-server'

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