Skip to main content
Glama
thuong204

Weather MCP Tool

by thuong204

Weather MCP Tool

Description

Weather MCP Tool là một ứng dụng NestJS cung cấp thông tin thời tiết thông qua Model Context Protocol (MCP). Ứng dụng sử dụng OpenWeatherMap API để lấy dữ liệu thời tiết thực tế cho các thành phố trên toàn thế giới.

Related MCP server: MCP Weather Data Fetcher

Tính năng

  • 🌤️ Thông tin thời tiết thực tế: Lấy dữ liệu từ OpenWeatherMap API

  • 🌍 Hỗ trợ đa ngôn ngữ: Mô tả thời tiết bằng tiếng Việt

  • 📊 Thông tin chi tiết: Nhiệt độ, độ ẩm, tốc độ gió, nhiệt độ cảm giác

  • 🔧 MCP Tool Integration: Tích hợp với Model Context Protocol

  • 🚀 NestJS Framework: Xây dựng trên NestJS với TypeScript

  • 🐳 Docker Support: Hỗ trợ chạy trong Docker container

Cài đặt

Cách 1: Cài đặt trực tiếp

# Clone repository
git clone <repository-url>
cd weather-mcp-nest

# Cài đặt dependencies
npm install

Cách 2: Sử dụng Docker

# Clone repository
git clone <repository-url>
cd weather-mcp-nest

# Build và chạy với Docker Compose
docker-compose up --build

Cấu hình

  1. Đăng ký OpenWeatherMap API:

  2. Tạo file .env:

    OPENWEATHER_API_KEY=your_api_key_here

Chạy ứng dụng

Development Mode

# Development mode
npm run start:dev

# Production mode
npm run start:prod

Docker Mode

# Build Docker image
docker build -t weather-mcp .

# Chạy container
docker run -p 3000:3000 --env-file .env weather-mcp

# Hoặc sử dụng Docker Compose
docker-compose up

Sử dụng MCP Tool

Sau khi khởi động server, tool sẽ có sẵn thông qua MCP protocol:

Tool: getWeather

Mô tả: Lấy thông tin thời tiết cho một thành phố

Tham số:

  • city (string): Tên thành phố (VD: "Da Nang", "London", "New York")

Ví dụ sử dụng:

{
  "name": "getWeather",
  "arguments": {
    "city": "Da Nang"
  }
}

Kết quả:

Thời tiết ở Da Nang: mây cụm, nhiệt độ 28°C (cảm giác như 33°C), độ ẩm 82%, gió 3.49 m/s.

Cấu trúc dự án

src/
├── weather/
│   ├── weather.controller.ts    # REST API controller
│   ├── weather.service.ts       # Weather service logic
│   ├── weather.tool.ts          # MCP tool implementation
│   └── weather.module.ts        # Weather module
├── app.module.ts                # Main application module
└── main.ts                      # Application entry point

API Endpoints

POST /weather

Lấy thông tin thời tiết qua REST API

Request Body:

{
  "city": "Da Nang"
}

Response:

{
  "content": {
    "type": "text",
    "text": "Thời tiết ở Da Nang: mây cụm, nhiệt độ 28°C (cảm giác như 33°C), độ ẩm 82%, gió 3.49 m/s."
  }
}

MCP Configuration

Cấu hình MCP trong .cursor/mcp.json:

{
  "mcpServers": {
    "weather": {
      "url": "http://localhost:3000/mcp",
      "type": "http"
    }
  }
}

Dependencies

  • @nestjs/common: NestJS core framework

  • @rekog/mcp-nest: MCP integration for NestJS

  • axios: HTTP client for API calls

  • dotenv: Environment variables management

  • zod: Schema validation

Phát triển

Chạy tests

# Unit tests
npm run test

# E2E tests
npm run test:e2e

# Test coverage
npm run test:cov

Linting

npm run lint

Docker Commands

Build và chạy

# Build image
docker build -t weather-mcp .

# Chạy container
docker run -p 3000:3000 --env-file .env weather-mcp

# Chạy với Docker Compose
docker-compose up --build

Quản lý container

# Xem logs
docker-compose logs -f

# Dừng container
docker-compose down

# Restart container
docker-compose restart

Development với Docker

# Chạy trong development mode
docker-compose -f docker-compose.dev.yml up

License

MIT License - xem file LICENSE để biết thêm chi tiết.

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/thuong204/mcp-weather'

If you have feedback or need assistance with the MCP directory API, please join our Discord server