weather-mcp
Model Context Protocol (MCP) server untuk layanan cuaca.
Instalasi
bun install
Penggunaan
Development
bun run dev
Production
# Build project
bun run build
# Jalankan hasil build
bun run start
Testing Fungsi Cuaca
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:
bun run src/index.ts
Menjalankan Client untuk Testing
Untuk menjalankan client MCP (untuk testing koneksi):
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.
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:
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:
- Pastikan MCP server dapat dijalankan sebagai executable
- Konfigurasi client MCP untuk menjalankan perintah:
bun run dist/index.jsataunode dist/index.js - 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:
{
"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:
- Mengganti path
/home/balinux/Documents/code/AI-LLM-dev/mcp/weather-mcp/dist/index.jsdengan path absolut ke file hasil build Anda - Mengganti nilai
OPENWEATHER_API_KEYdengan API key OpenWeather yang valid - Memastikan bahwa
buntelah terinstal di sistem Anda - Menjalankan
bun run buildsebelum menggunakan server MCP untuk memastikan filedist/index.jstersedia
Struktur Project
src/index.ts- Server MCP utamasrc/tools/weather.ts- Definisi alat cuaca dan skema Zodsrc/utils/weatherAPI.ts- Logika pengambilan data cuaca dari APIsrc/clients/weather.ts- Contoh client MCP untuk testingdist/index.js- Hasil build untuk deployment