Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tennis Warehouse MCP Serverfind me lightweight tennis racquets under $150"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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! πΎβ¨