Skip to main content
Glama
kimjeonghyun225-cpu

PerfDog to Tableau MCP Server

README.md
# PerfDog to Tableau MCP Servers

šŸŽ® Automate PerfDog mobile game performance data download and conversion to Tableau-ready CSV format.

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: Internal](https://img.shields.io/badge/License-KRAFTON%20Internal-red.svg)]()

## šŸš€ Features

### PerfDog Server
- **Auto-login** with session persistence
- **Bulk download** Excel performance data from PerfDog projects
- **API integration** for case metadata
- **Smart naming** `{Device}_{Case}.xlsx`

### Tableau Converter
- **Summary CSV** - Device-level statistics (FPS, CPU, Memory, Jank, etc.)
- **TimeSeries CSV** - Second-by-second performance metrics
- **Platform detection** - Auto-detect iOS/Android from device info
- **CPU normalization** - Proper CPU calculation per platform
- **Package name extraction** - Include app package in filename

## šŸ“¦ Installation

### Quick Install

```bash
pip install git+https://github.com/kimjeonghyun225-cpu/perfdog_MCP.git
```

### Manual Setup

1. **Clone the repository**
   ```bash
   git clone https://github.com/kimjeonghyun225-cpu/perfdog_MCP.git
   cd perfdog_MCP
   ```

2. **Install dependencies**
   ```bash
   pip install -r requirements.txt
   ```

3. **Configure Claude Desktop**

   **Windows:** Edit `%APPDATA%\Claude\claude_desktop_config.json`
   
   **macOS:** Edit `~/Library/Application Support/Claude/claude_desktop_config.json`

   Add:
   ```json
   {
     "mcpServers": {
       "perfdog": {
         "command": "python",
         "args": ["C:/path/to/perfdog_MCP/perfdog_mcp_server.py"]
       },
       "tableau-converter": {
         "command": "python",
         "args": ["C:/path/to/perfdog_MCP/tableau_converter_MCP.py"]
       }
     }
   }
   ```

4. **Restart Claude Desktop**

## šŸ’” Usage

### With Claude Skill (Recommended)

1. **Install the Claude Skill**
   - Download `perfdog-tableau-converter.skill`
   - Upload to Claude.ai → Settings → Skills

2. **Use with Claude**
   ```
   "Convert this PerfDog project to Tableau:
   https://perfdog.wetest.net/taskdata/191797/cases
   
   Output: C:\Users\me\Desktop\tableau
   Project name: PUBG_v3.8.0"
   ```

### Direct MCP Usage

Claude will automatically:
1. Ask for PerfDog credentials (first time only)
2. Request project URL, output path, and project name
3. Download all Excel files
4. Convert to Tableau CSV format
5. Report completion

## šŸ“Š Output Files

### Summary CSV (`summary_{project}.csv`)
Device-level statistics including:
- Device info (Type, Product, Platform)
- FPS metrics (Avg, Median, Max, 1% Low)
- Stability indicators (MedRange, Std, Smooth Index)
- CPU & Memory (Avg, Peak)
- Jank metrics (Jank, BigJank, Drop FPS)

### TimeSeries CSV (`fps_{project}.csv`)
Per-second measurements including:
- FPS, CPU, Memory, GPU
- Network (Recv/Send)
- Temperature
- Platform-specific metrics

## šŸ› ļø Development

### Project Structure

```
perfdog_MCP/
ā”œā”€ā”€ perfdog_mcp_server.py          # PerfDog downloader MCP server
ā”œā”€ā”€ tableau_converter_MCP.py       # Tableau converter MCP server
ā”œā”€ā”€ requirements.txt               # Python dependencies
ā”œā”€ā”€ README.md                      # This file
└── perfdog-tableau-converter.skill # Claude Skill
```

### Dependencies

```
mcp>=1.0.0
aiohttp>=3.9.0
aiofiles>=23.2.0
pandas>=2.0.0
openpyxl>=3.1.0
```

## šŸŽÆ Use Cases

- **QA Performance Testing** - Automate test data collection
- **Version Comparisons** - Compare performance across game versions
- **Dashboard Creation** - Feed data into Tableau dashboards
- **Regression Analysis** - Track performance trends over time

## šŸ”’ Configuration

Session files and logs are stored in:
- **Session:** `~/.perfdog_mcp/perfdog_session.json`
- **Logs:** `~/.perfdog_mcp/perfdog_downloader.log` and `tableau_converter.log`
- **Downloads:** `~/Desktop/perfdog_downloads/`

## šŸ› Troubleshooting

### Login fails
- Verify credentials at https://perfdog.wetest.net
- Check logs in `~/.perfdog_mcp/`

### MCP server not recognized
- Restart Claude Desktop completely
- Verify paths in `claude_desktop_config.json`
- Check Python is accessible from command line

### Path issues
- Windows: Use double backslashes `C:\\Users\\...`
- macOS/Linux: Use forward slashes `/Users/...`

## šŸ“ž Support

- **GitHub Issues:** https://github.com/kimjeonghyun225-cpu/perfdog_MCP/issues
- **Internal:** KRAFTON Compatibility QA Team

## šŸ“ License

Internal use - KRAFTON

## šŸ™ Credits

Developed by KRAFTON Compatibility QA Team for mobile game performance testing automation.