SkuVault MCP Server
Enables interaction with the SkuVault inventory management system API for product management, inventory control, warehouse operations, and analytics through natural language.
README
SkuVault MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with the SkuVault inventory management system API. Built for production use with enterprise-grade features.
๐ Features
Core Functionality
- Product Management: Create, read, update products individually or in batches
- Inventory Control: Add, remove, and set inventory quantities across warehouses
- Warehouse Operations: List warehouses and manage inventory by location
- Smart Analytics: Active/inactive products, low stock alerts, inventory summaries
Production-Ready
- โ Rate Limiting: Dynamic rate limit learning with exponential backoff
- โ Caching: Intelligent response caching to minimize API calls
- โ Safety: Confirmation requirements for all mutating operations
- โ Validation: Comprehensive input validation for all operations
- โ Performance: Connection pooling and request queuing
๐ฆ Installation
- Clone the repository:
git clone https://github.com/dbankscard/skuvault-mcp-server.git
cd skuvault-mcp-server
- Install dependencies:
pip install -e .
- Set up authentication:
cp .env.example .env
# Edit .env and add your SkuVault credentials
๐ง Configuration
For Claude Desktop
Add to your Claude Desktop config file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"skuvault": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/skuvault-mcp-server",
"env": {
"SKUVAULT_TENANT_TOKEN": "your_tenant_token",
"SKUVAULT_USER_TOKEN": "your_user_token"
}
}
}
}
Troubleshooting: PYTHONPATH Configuration
If you encounter import errors when running the server, you may need to set the PYTHONPATH environment variable. This is necessary because:
- Module Structure: The server uses absolute imports (e.g.,
from src.auth import SkuVaultAuth) which require Python to know where to find thesrcmodule. - MCP Integration: When Claude Desktop launches the server, it may not automatically include the project root in Python's module search path.
To fix this, add PYTHONPATH to your configuration:
{
"mcpServers": {
"skuvault": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/skuvault-mcp-server",
"env": {
"PYTHONPATH": "/path/to/skuvault-mcp-server",
"SKUVAULT_TENANT_TOKEN": "your_tenant_token",
"SKUVAULT_USER_TOKEN": "your_user_token"
}
}
}
}
Note: The PYTHONPATH should point to the root directory of the project (where the src folder is located), not to the src folder itself.
๐ ๏ธ Available Tools
Product Operations
get_product(sku)- Get product detailsget_products(page_number, page_size, skus, get_all, active_only)- List productscreate_product(...)- Create new productupdate_product(...)- Update productbatch_update_products(updates)- Update multiple products efficiently
Inventory Management
get_inventory_by_location(...)- Get inventory with filteringadd_inventory(...)- Add inventoryremove_inventory(...)- Remove inventoryset_item_quantity(...)- Set exact quantity
Analytics
get_all_active_products()- All active products with paginationget_all_inactive_products()- All inactive productsget_low_stock_products(threshold)- Products at/below reorder pointget_product_summary_report()- Comprehensive statistics
System Tools
get_cache_stats()- Cache performance metricsclear_cache(pattern)- Clear cached dataget_rate_limits()- View current rate limitscall_api_endpoint(endpoint, **params)- Access any SkuVault API endpoint
๐ Documentation
- Best Practices Guide - Detailed workflows and usage patterns
- API Schema - Complete API specification
๐ก Example Questions You Can Ask
๐ฆ Product Management
- "Show me details for SKU ABC123"
- "Get all active products"
- "Find all inactive products"
- "List products with SKUs ABC123, DEF456, and GHI789"
- "Show me all products from brand XYZ"
- "Create a new product with SKU NEW001, description 'Test Product', cost $10"
- "Update the price of SKU ABC123 to $29.99"
- "Update the cost to $15 for SKUs ABC123, DEF456, and GHI789"
- "Change the description of SKU XYZ789 to 'Updated Product Name'"
๐ Inventory Analysis
- "What's my current inventory for SKU ABC123?"
- "Show inventory by location for warehouse 1"
- "Get inventory for location A1 in warehouse 2"
- "Show me all products that are low on stock"
- "Which products are at or below their reorder point?"
- "Show me inventory summary for all warehouses"
- "What products have zero quantity?"
- "List all inventory in warehouse 1, location B2"
๐ Analytics & Reports
- "Give me a product summary report"
- "Show product breakdown by brand"
- "How many active vs inactive products do I have?"
- "Show me inventory value by warehouse"
- "Which locations have the most inventory?"
- "Get product statistics including total value"
- "Show me products that need reordering"
โ Add Inventory
- "Add 50 units of SKU ABC123 to warehouse 1, location A1"
- "Receive 100 units of SKU XYZ789 into warehouse 2"
- "Add inventory for SKU DEF456 with a note about the shipment"
โ Remove Inventory
- "Remove 10 units of SKU ABC123 from warehouse 1, location A1"
- "Remove 5 units of SKU XYZ789 for order fulfillment"
- "Deduct inventory for damaged items"
๐ง Set Exact Quantities
- "Set the quantity of SKU ABC123 to exactly 100 units in warehouse 1"
- "Update SKU XYZ789 to have 0 units in location B2"
- "Correct the inventory count for SKU DEF456 to 75 units"
๐ญ Warehouse Operations
- "List all warehouses"
- "Show me warehouse details"
- "Which warehouses do we have?"
๐ Advanced Queries
- "Get the first 10 products"
- "Show me products on page 3 with 50 items per page"
- "Find all products and get complete details"
- "Check inventory across all locations for SKU ABC123"
๐ป System Operations
- "Show cache statistics"
- "Clear the product cache"
- "Show current rate limits"
- "Clear all cached data"
- "Show queue statistics"
๐ Generic API Access
- "Call the getSuppliers endpoint"
- "Use the getBrands API endpoint"
- "Call getSales endpoint with date range parameters"
๐ Natural Language Understanding
The MCP server understands natural variations of these questions:
- "What's in stock for ABC123?" โ Gets inventory
- "I need to update prices for multiple products" โ Batch update
- "Show me what needs to be reordered" โ Low stock report
- "Fix the quantity for this SKU" โ Set item quantity
๐ Safety Features
All operations that modify data require explicit confirmation:
- Clear summary of what will be changed
- Visual warnings for destructive operations
- Explicit "yes" or "confirm" required to proceed
To bypass for automation, set confirm=True parameter.
๐๏ธ Architecture
skuvault-mcp-server/
โโโ src/
โ โโโ server.py # Main MCP server
โ โโโ api_client.py # SkuVault API client
โ โโโ models/ # Pydantic models
โ โโโ tools/ # Analytics tools
โ โโโ utils/ # Utilities (cache, rate limiter, validators)
โโโ api_schema_complete.json # Complete API specification
โโโ pyproject.toml # Package configuration
โโโ README.md # This file
๐งช Testing
Run the test suite:
python test_server.py
๐ License
MIT License - see LICENSE file for details.
๐ค Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ Resources
โก Quick Start
- Clone โ 2. Install โ 3. Configure โ 4. Add to Claude Desktop โ 5. Start using!
# Clone and install
git clone https://github.com/dbankscard/skuvault-mcp-server.git
cd skuvault-mcp-server
pip install -e .
# Configure
cp .env.example .env
# Add your tokens to .env
# Test
python test_server.py
# Add to Claude Desktop and start using!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.