SkuVault MCP Server

SkuVault MCP Server

Enables interaction with the SkuVault inventory management system API for product management, inventory control, warehouse operations, and analytics through natural language.

Category
访问服务器

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

  1. Clone the repository:
git clone https://github.com/dbankscard/skuvault-mcp-server.git
cd skuvault-mcp-server
  1. Install dependencies:
pip install -e .
  1. 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:

  1. Module Structure: The server uses absolute imports (e.g., from src.auth import SkuVaultAuth) which require Python to know where to find the src module.
  2. 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 details
  • get_products(page_number, page_size, skus, get_all, active_only) - List products
  • create_product(...) - Create new product
  • update_product(...) - Update product
  • batch_update_products(updates) - Update multiple products efficiently

Inventory Management

  • get_inventory_by_location(...) - Get inventory with filtering
  • add_inventory(...) - Add inventory
  • remove_inventory(...) - Remove inventory
  • set_item_quantity(...) - Set exact quantity

Analytics

  • get_all_active_products() - All active products with pagination
  • get_all_inactive_products() - All inactive products
  • get_low_stock_products(threshold) - Products at/below reorder point
  • get_product_summary_report() - Comprehensive statistics

System Tools

  • get_cache_stats() - Cache performance metrics
  • clear_cache(pattern) - Clear cached data
  • get_rate_limits() - View current rate limits
  • call_api_endpoint(endpoint, **params) - Access any SkuVault API endpoint

📚 Documentation

💡 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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

🔗 Resources

⚡ Quick Start

  1. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选