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-реализация с полной типизацией

Установка

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

-
security - not tested
F
license - not found
-
quality - not tested

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/akdrione/weather-mcp-server'

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