Weather MCP Tool

Weather MCP Tool

Provides real-time weather information for cities worldwide using the OpenWeatherMap API, accessible through natural language queries via the MCP protocol.

Category
Visit Server

README

Weather MCP Tool

<p align="center"> <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a> </p>

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.

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:

    • Truy cập: https://openweathermap.org/api
    • Đăng ký tài khoản miễn phí
    • Lấy API key
  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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured