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!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器