npm package: @padelful/mcp-server
Description: MCP server for padel racket data from Padelful.com
Author: Padelful
Latest version: 0.1.3

# @padelful/mcp-server

MCP server for padel racket data. Get expert reviews, compare rackets, and find the best prices.

## Quick Start

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "padelful": {
      "command": "npx",
      "args": ["@padelful/mcp-server"]
    }
  }
}
```

### Cursor / Windsurf

Add to your MCP config:

```json
{
  "padelful": {
    "command": "npx",
    "args": ["@padelful/mcp-server"]
  }
}
```

## Available Tools

| Tool | What it does |
|------|--------------|
| `search_rackets` | Search 200+ rackets by brand, shape, rating |
| `get_racket` | Get full specs, ratings, materials for any racket |
| `compare_rackets` | Side-by-side comparison of 2-4 rackets |
| `get_recommendations` | Personalized picks based on level & play style |
| `get_prices` | Current prices from 10+ stores |

## Example Prompts

Try asking your AI:
- "What's the best padel racket for a beginner?"
- "Compare the Babolat Technical Viper vs Bullpadel Hack 03"
- "Find me a round racket under 200 EUR with good control"
- "What racket does Agustin Tapia use?"
- "I'm intermediate, play defensive, budget 180 EUR - what should I buy?"

## Tool Details

### search_rackets

Search and filter rackets from the database.

**Parameters:**
- `query` (string, optional): Search term for model/brand
- `brand` (string, optional): Filter by brand (e.g., "Babolat", "Bullpadel")
- `shape` (string, optional): "Round", "Teardrop", or "Diamond"
- `minRating` (number, optional): Minimum rating 0-10
- `locale` (string, optional): "en" or "es" (default: "en")
- `limit` (number, optional): Max results (default: 10, max: 50)

### get_racket

Get detailed information about a specific racket.

**Parameters:**
- `slug` (string, required): Racket slug (e.g., "babolat-technical-viper-2024")
- `locale` (string, optional): "en" or "es"

### compare_rackets

Compare 2-4 rackets side-by-side.

**Parameters:**
- `slugs` (string[], required): Array of racket slugs (2-4 items)
- `locale` (string, optional): "en" or "es"

### get_recommendations

Get personalized recommendations based on player profile.

**Parameters:**
- `level` (string, required): "beginner", "intermediate", or "advanced"
- `playStyle` (string, required): "control", "power", or "balanced"
- `budget` (number, optional): Max price in EUR
- `locale` (string, optional): "en" or "es"

### get_prices

Get current prices from online stores.

**Parameters:**
- `slug` (string, required): Racket slug
- `country` (string, optional): ISO country code (e.g., "ES", "UK")

**Note:** Price data requires `SUPABASE_URL` and `SUPABASE_ANON_KEY` environment variables.

## Configuration

### Environment Variables (Optional)

For price data, set these environment variables:

```bash
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
```

Without these, all tools except `get_prices` will work normally.

To point the server at a different API (e.g., for local development):

```bash
PADELFUL_API_URL=http://localhost:3000
```

By default, racket data is fetched from `https://www.padelful.com`.

## Data Source

All data comes from [Padelful.com](https://padelful.com) - expert reviews of 200+ padel rackets with detailed specs, ratings, and price tracking.

## Development

```bash
# Install dependencies
pnpm install

# Build
pnpm build

# Test locally with MCP inspector
npx @modelcontextprotocol/inspector node ./bin/padelful-mcp.js
```

## License

MIT