Skip to main content
Glama
balinux

Weather MCP Server

by balinux
README.md
# weather-mcp

Model Context Protocol (MCP) server untuk layanan cuaca.

## Instalasi

```bash
bun install
```

## Penggunaan

### Development
```bash
bun run dev
```

### Production
```bash
# Build project
bun run build

# Jalankan hasil build
bun run start
```

### Testing Fungsi Cuaca
```bash
bun run test_weather.ts
```

Contoh output:
```
Testing weather function...
Weather result: {
  city: "Jakarta",
  temperature: "6°C",
  humidity: "74%",
  windSpeed: "16m/s",
  description: "snow",
  weatherIcon: "01d",
  pressure: "1048 hPa",
  visibility: "2097m",
}
```

## Menjalankan Server dan Client MCP

### Menjalankan Server MCP
Untuk menjalankan server MCP secara langsung:
```bash
bun run src/index.ts
```

### Menjalankan Client untuk Testing
Untuk menjalankan client MCP (untuk testing koneksi):
```bash
bun run src/clients/weather.ts
```

Catatan: Pastikan server MCP sedang berjalan sebelum menjalankan client.

### Menjalankan Server untuk Pengujian (MCP Inspector)
Cara terbaik untuk memastikan server berjalan benar tanpa perlu client kustom adalah menggunakan MCP Inspector. Ini adalah alat debug resmi yang menyediakan antarmuka web. 
```bash
npx @modelcontextprotocol/inspector node dist/server.js
#atau dengan bun
bunx @modelcontextprotocol/inspector bun src/index.ts
```

## Konfigurasi API

Untuk menggunakan API cuaca sebenarnya, set environment variable berikut:

```bash
export OPENWEATHER_API_KEY="your_api_key_here"
```

Jika environment variable ini tidak diset, maka sistem akan menggunakan simulasi data cuaca.

## Integrasi dengan Qwen CLI

Untuk mengintegrasikan MCP ini dengan Qwen CLI atau sistem lain yang mendukung MCP:

1. Pastikan MCP server dapat dijalankan sebagai executable
2. Konfigurasi client MCP untuk menjalankan perintah: `bun run dist/index.js` atau `node dist/index.js`
3. MCP akan berkomunikasi melalui STDIO sesuai spesifikasi Model Context Protocol

## Implementasi di Gemini CLI

Untuk mengimplementasikan server MCP ini di Gemini CLI, tambahkan konfigurasi berikut ke file konfigurasi MCP Anda:

```json
{
  "theme": "GitHub",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
    "weather": {
      "command": "bun",
      "args": ["run", "/home/balinux/Documents/code/AI-LLM-dev/mcp/weather-mcp/dist/index.js"], // absolute path
      "env": {
        "OPENWEATHER_API_KEY": "key"
      }
    }
  }
}
```

Pastikan untuk:

1. Mengganti path `/home/balinux/Documents/code/AI-LLM-dev/mcp/weather-mcp/dist/index.js` dengan path absolut ke file hasil build Anda
2. Mengganti nilai `OPENWEATHER_API_KEY` dengan API key OpenWeather yang valid
3. Memastikan bahwa `bun` telah terinstal di sistem Anda
4. Menjalankan `bun run build` sebelum menggunakan server MCP untuk memastikan file `dist/index.js` tersedia

## Struktur Project

- `src/index.ts` - Server MCP utama
- `src/tools/weather.ts` - Definisi alat cuaca dan skema Zod
- `src/utils/weatherAPI.ts` - Logika pengambilan data cuaca dari API
- `src/clients/weather.ts` - Contoh client MCP untuk testing
- `dist/index.js` - Hasil build untuk deployment