Tennis Warehouse MCP Server
๐พ Secure MCP wrapper for Tennis Warehouse's internal APIs
This MCP server provides LLMs with safe, business-friendly access to Tennis Warehouse product data through their internal Solr search API.
๐ก๏ธ Security Benefits
API Gateway: Protects internal Tennis Warehouse APIs from direct LLM access
Data Filtering: Only exposes customer-relevant product information
Input Validation: Sanitizes and validates all search parameters
Rate Limiting: Controls API usage and prevents abuse
Error Handling: Clean error messages instead of internal stack traces
๐ง Installation
Create virtual environment:
cd tennis-warehouse-mcp python3 -m venv .venv source .venv/bin/activateInstall dependencies:
pip install "mcp[cli]" httpx requests pydanticConfigure Claude Desktop: Add to
~/Library/Application Support/Claude/claude_desktop_config.json:{ "mcpServers": { "tennis-warehouse": { "command": "/path/to/tennis-warehouse-mcp/.venv/bin/python3", "args": ["/path/to/tennis-warehouse-mcp/main.py"], "env": { "TW_API_TIMEOUT": "10", "TW_MAX_RESULTS": "20" } } } }Restart Claude Desktop to load the new MCP server
๐ฏ Available Tools
search_tennis_products(query, category, max_results)
Search Tennis Warehouse products with intelligent filtering.
Example:
search_tennis_bags(style, brand, max_results)
Search specifically for tennis bags with advanced filtering.
Example:
search_tennis_racquets(brand, weight_range, max_results)
Search for tennis racquets with brand and weight filtering.
Example:
search_tennis_shoes(gender, brand, court_type, max_results)
Search for tennis shoes with gender, brand, and court type filtering.
Example:
get_product_categories()
Get all available product categories with product counts.
check_product_availability(product_name)
Check if a specific product is in stock.
Example:
get_tennis_deals(category, max_results)
Find current deals and discounted tennis products.
Example:
๐ What LLMs Get vs. Internal API
LLM Gets (Safe) | Internal API Has (Protected) |
โ Product name, brand, price | โ Internal product IDs |
โ Availability status | โ Exact inventory counts |
โ Public product URLs | โ Supplier costs |
โ Category information | โ Restock schedules |
โ Clean error messages | โ Database stack traces |
๐ Example Tennis Warehouse API Mapping
Internal Solr API:
MCP Tool:
LLM Result:
โ๏ธ Configuration
Environment variables can be set in Claude Desktop config:
TW_API_TIMEOUT: API timeout in seconds (default: 10)TW_MAX_RESULTS: Maximum results per query (default: 20)
๐งช Testing
Test the API client:
๐๏ธ Architecture
๐พ LLM Usage Examples
Once configured, LLMs can use natural language to search Tennis Warehouse:
"Find me Wilson tennis bags under $100"
"What Nike tennis shoes are available for women?"
"Show me current deals on Babolat racquets"
"Is the Head Speed MP racquet in stock?"
"Find lightweight tennis racquets for beginners"
The MCP server handles all the complexity of mapping these requests to the internal Solr API while keeping sensitive data protected! ๐พโจ