Skip to main content
Glama
akdrione

Weather MCP Server

by akdrione

MCP-сервер погоды

Сервер протокола контекста модели (MCP) для данных о погоде с поддержкой OpenAPI. Этот сервер предоставляет информацию о погоде из API OpenWeatherMap и может использоваться LLM-агентами через MCP.

Возможности

  • Транспорт MCP stdio для интеграции с LLM-агентами

  • HTTP REST API со спецификацией OpenAPI 3.0

  • 4 инструмента для работы с погодой:

    1. Получение текущей погоды по городу

    2. Получение текущей погоды по координатам

    3. Получение прогноза погоды (5 дней, интервалы по 3 часа)

    4. Получение сводки температурного диапазона

  • Поддержка фиктивных данных для тестирования без API-ключа

  • TypeScript-реализация с полной типизацией

Related MCP server: mcp-openweather

Установка

cd weather-mcp-server
npm install
npm run build

Использование

1. MCP-сервер (транспорт stdio)

Запустите MCP-сервер для LLM-агентов:

npm start

Или в режиме разработки:

npm run dev

2. HTTP-сервер с OpenAPI

Запустите HTTP-сервер с REST API:

npm run dev:http

Сервер запустится по адресу http://localhost:3000 со следующими эндпоинтами:

  • /health — проверка работоспособности

  • /openapi — спецификация OpenAPI

  • /api/v1/weather/current/{city} — текущая погода по городу

  • /api/v1/weather/current/coordinates — текущая погода по координатам

  • /api/v1/weather/forecast/{city} — прогноз погоды

3. Конфигурация

Установите ваш API-ключ OpenWeatherMap (необязательно — если он не указан, будут использоваться фиктивные данные):

export OPENWEATHER_API_KEY=your_api_key_here

Или создайте файл .env:

OPENWEATHER_API_KEY=your_api_key_here

Инструменты MCP

Сервер предоставляет следующие инструменты MCP:

Название инструмента

Описание

Параметры

weather_get_current_by_city

Получить текущую погоду по городу

city: string

weather_get_current_by_coords

Получить текущую погоду по координатам

latitude: number, longitude: number

weather_get_forecast

Получить прогноз погоды

city: string, days?: number (1-10, по умолчанию: 5)

weather_get_temperature_range

Получить сводку температурного диапазона

city: string

Эндпоинты API

HTTP REST API

Все эндпоинты возвращают JSON со следующей структурой:

{
  "success": true,
  "data": { ... }
}

1. Текущая погода по городу

GET /api/v1/weather/current/{city}

Пример:

curl http://localhost:3000/api/v1/weather/current/London

2. Текущая погода по координатам

GET /api/v1/weather/current/coordinates?lat={latitude}&lon={longitude}

Пример:

curl "http://localhost:3000/api/v1/weather/current/coordinates?lat=51.5074&lon=-0.1276"

3. Прогноз погоды

GET /api/v1/weather/forecast/{city}?days={days}

Пример:

curl "http://localhost:3000/api/v1/weather/forecast/New%20York?days=3"

Тестирование

Запустите набор тестов:

npm test

Запустите инспектор MCP для отладки:

npm run inspect

Структура проекта

weather-mcp-server/
├── src/
│   ├── index.ts              # MCP stdio server
│   ├── http-server.ts        # HTTP server with OpenAPI
│   ├── types/
│   │   └── weather.ts        # TypeScript types and Zod schemas
│   ├── utils/
│   │   └── weather-client.ts # OpenWeatherMap API client
│   └── tools/
│       └── weather-tools.ts  # MCP tool definitions
├── dist/                     # Compiled JavaScript
├── test/
│   └── test.js              # Test suite
├── package.json
├── tsconfig.json
└── README.md

Зависимости

  • @modelcontextprotocol/sdk — MCP SDK для TypeScript

  • express — фреймворк для HTTP-сервера

  • axios — HTTP-клиент для вызовов API

  • zod — валидация схем

  • typescript — компилятор TypeScript

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables AI agents to retrieve real-time weather conditions and forecasts via OpenWeatherMap API. Supports interactive weather queries and travel planning through MCP tools, resources, and prompts.
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Wraps the OpenWeatherMap API to provide weather data through MCP, enabling AI agents to query current conditions, forecasts, and other weather information via natural language.
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides weather data from WeatherAPI.com through MCP, enabling AI agents to query current conditions and forecasts via natural language.
    5 npm
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Provides real-time weather information for cities worldwide using the OpenWeatherMap API, accessible through natural language queries via the MCP protocol.
    1
    -