A Model Context Protocol (MCP) server that exposes Skulabs API functionality as tools for AI agents like Claude, Retell AI voice agents, and other MCP-compatible applications.
- Get Inventory: Retrieve inventory items by SKU, location, or all items
- Update Inventory: Update quantity for specific SKUs
- Location-based Inventory: Get inventory filtered by location
- Get Products: Retrieve product information by SKU or all products
- Product Details: Get detailed information about specific products
- Create Products: Add new products to the system
- Get Orders: Retrieve orders with optional status filtering
- Order Details: Get detailed information about specific orders
- Create Orders: Create new orders with customer and item information
- Update Order Status: Change order status (pending, processing, shipped, delivered, cancelled)
- Get Customers: Retrieve customer information with optional email filtering
- Customer Details: Get detailed information about specific customers
- Create Customers: Add new customers to the system
- Sales Summary: Get sales data for date ranges
- Inventory Summary: Get inventory statistics and summaries
- Python 3.11+
- Skulabs API key
- Railway account (for deployment) or local development setup
-
Clone and setup:
git clone <repository> cd skulabs-mcp pip install -r requirements.txt
-
Configure environment:
cp env.example .env # Edit .env with your Skulabs API key
-
Run the server:
python skulabs_mcp_server.py
-
Connect to Railway:
- Push your code to GitHub
- Connect Railway to your GitHub repository
- Railway will auto-detect Python and install dependencies
-
Set Environment Variables:
- Go to Railway dashboard → Variables
- Add
SKULABS_API_KEY
with your Skulabs API key - Optionally set
SKULABS_BASE_URL
(defaults to https://api.skulabs.com)
-
Deploy:
- Railway will automatically deploy on git push
- Get your server URL from Railway dashboard
Variable | Description | Default | Required |
---|---|---|---|
SKULABS_API_KEY |
Your Skulabs API key | - | Yes |
SKULABS_BASE_URL |
Skulabs API base URL | https://api.skulabs.com | No |
MCP_SERVER_NAME |
Server name for MCP | skulabs-mcp | No |
MCP_SERVER_VERSION |
Server version | 1.0.0 | No |
LOG_LEVEL |
Logging level | INFO | No |
- Log into your Skulabs account
- Go to Settings → Advanced → API
- Generate a new API key
- Copy the key to your environment variables
-
In Retell AI Dashboard:
- Go to your voice agent configuration
- Add MCP server connection
- Use your Railway URL as the MCP server endpoint
-
Voice Agent Prompts:
You have access to Skulabs inventory and order management tools. You can check inventory, create orders, update order status, and manage customers. Use the available tools to help customers with their requests.
- Add to Claude Desktop config:
{ "mcpServers": { "skulabs": { "command": "python", "args": ["/path/to/skulabs_mcp_server.py"], "env": { "SKULABS_API_KEY": "your-api-key" } } } }
Retrieve inventory items with optional filtering.
Parameters:
sku
(string, optional): Specific SKU to retrievelocation
(string, optional): Filter by locationlimit
(integer, optional): Max items to return (default: 100)offset
(integer, optional): Items to skip (default: 0)
Update inventory quantity for a specific SKU.
Parameters:
sku
(string, required): SKU to updatequantity
(integer, required): New quantitylocation
(string, optional): Location to update
Retrieve orders with optional status filtering.
Parameters:
status
(string, optional): Filter by statuslimit
(integer, optional): Max orders to return (default: 100)offset
(integer, optional): Orders to skip (default: 0)
Create a new order.
Parameters:
customer_id
(string, required): Customer IDitems
(array, required): Order items with SKU, quantity, priceshipping_address
(object, optional): Shipping addressnotes
(string, optional): Order notes
[See full API documentation in the source code for all available tools]
The server includes comprehensive error handling:
- API Errors: Skulabs API errors are caught and returned with details
- Validation Errors: Input validation with clear error messages
- Network Errors: Timeout and connection error handling
- Logging: Structured logging for debugging and monitoring
skulabs-mcp/
├── skulabs_mcp_server.py # Main MCP server
├── skulabs_client.py # Skulabs API client
├── requirements.txt # Python dependencies
├── railway.json # Railway deployment config
├── Procfile # Process configuration
├── runtime.txt # Python version
├── env.example # Environment template
└── README.md # This file
-
Add method to SkulabsClient:
async def new_method(self, param: str) -> Dict[str, Any]: return await self._make_request("GET", f"/endpoint/{param}")
-
Add tool definition in list_tools():
Tool( name="new_tool", description="Description of the tool", inputSchema={...} )
-
Add handler in execute_tool():
elif name == "new_tool": return await client.new_method(arguments["param"])
- Skulabs API Support: Email api-support@skulabs.com with "API Support" in subject
- MCP Protocol: Model Context Protocol Documentation
- Issues: Create GitHub issues for bugs or feature requests
MIT License - see LICENSE file for details.