Skip to main content
Glama
amornpan

TMD Earthquake MCP Server

by amornpan
README.md
# TMD Earthquake MCP Server

MCP Server สำหรับดึงข้อมูลแผ่นดินไหวจาก Thai Meteorological Department (TMD) API

## Features

- ✅ ดึงข้อมูลแผ่นดินไหวล่าสุด
- ✅ กรองตามสถานที่เกิดเหตุ
- ✅ กรองตามขนาด (Magnitude)
- ✅ สถิติข้อมูลแผ่นดินไหว
- ✅ Cache ข้อมูล 1 ชั่วโมง

## Installation

### 1. สร้าง Conda Environment

```bash
conda create -n mcp-tmd python=3.11 -y
conda activate mcp-tmd
```

### 2. ติดตั้ง Dependencies

```bash
cd C:\Users\Asus\tmd-weather-mcp
pip install -r requirements.txt
```

## Usage

### Run Server (ทดสอบ)

```bash
python earthquake_server.py
```

### Configure Claude Desktop

1. หา Python Path ใน conda environment:
```bash
where python
```

2. แก้ไขไฟล์ `%APPDATA%\Claude\claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "tmd-earthquake": {
      "command": "C:\\Users\\Asus\\anaconda3\\envs\\mcp-tmd\\python.exe",
      "args": [
        "C:\\Users\\Asus\\tmd-weather-mcp\\earthquake_server.py"
      ]
    }
  }
}
```

**หมายเหตุ**: 
- ต้องใช้ double backslash (`\\`) ใน Windows path
- แทนที่ path ของ Python ให้ตรงกับที่ได้จากคำสั่ง `where python`

3. Restart Claude Desktop

## Tools

### 1. get_recent_earthquakes
ดึงข้อมูลแผ่นดินไหวล่าสุด

**Parameters:**
- `limit` (int): จำนวนรายการที่ต้องการ (default: 10)

**ตัวอย่างการใช้งาน:**
- "แผ่นดินไหวล่าสุด 5 รายการ"
- "ข้อมูลแผ่นดินไหววันนี้"

### 2. get_earthquakes_by_location
กรองแผ่นดินไหวตามสถานที่

**Parameters:**
- `location_keyword` (str): คำค้นหาสถานที่ (ไทยหรืออังกฤษ)

**ตัวอย่างการใช้งาน:**
- "แผ่นดินไหวในจีน"
- "แผ่นดินไหวที่มีคำว่ายูนนาน"

### 3. get_earthquakes_by_magnitude
กรองแผ่นดินไหวตามขนาด

**Parameters:**
- `min_magnitude` (float): ขนาดต่ำสุด (ริกเตอร์)
- `max_magnitude` (float, optional): ขนาดสูงสุด

**ตัวอย่างการใช้งาน:**
- "แผ่นดินไหวที่มีขนาดมากกว่า 5 ริกเตอร์"
- "แผ่นดินไหวขนาด 4-6 ริกเตอร์"

### 4. get_earthquake_statistics
สรุปสถิติข้อมูลแผ่นดินไหว

**ตัวอย่างการใช้งาน:**
- "สรุปสถิติแผ่นดินไหววันนี้"
- "แผ่นดินไหวเกิดที่ไหนบ่อยที่สุด"

## Data Source

- **API**: Thai Meteorological Department (TMD)
- **URL**: https://data.tmd.go.th/api/DailySeismicEvent/v1/
- **Update Frequency**: Daily
- **Coverage**: Regional and Global earthquake events

## Troubleshooting

### ปัญหา: ModuleNotFoundError
**สาเหตุ**: ไม่ได้ activate conda environment

**วิธีแก้**:
```bash
conda activate mcp-tmd
```

### ปัญหา: Claude Desktop ไม่เห็น Server
**สาเหตุ**: Python path ไม่ถูกต้อง

**วิธีแก้**:
1. ตรวจสอบ python path ด้วย `where python` (ใน activated env)
2. ใช้ absolute path ใน config file
3. Restart Claude Desktop

### ปัญหา: API Timeout
**สาเหตุ**: TMD API อาจช้าหรือไม่ตอบสนอง

**วิธีแก้**:
- ลองใหม่อีกครั้ง
- ตรวจสอบ internet connection
- Cache จะช่วยลด API calls

## Project Structure

```
C:\Users\Asus\tmd-weather-mcp\
├── earthquake_server.py      # Main MCP server
├── requirements.txt           # Python dependencies
├── README.md                  # This file
└── .gitignore                # Git ignore rules
```

## License

MIT License

## Author

Created for TMD Earthquake Data Integration with MCP