Skip to main content
Glama

IPMA MCP Server

A Model Context Protocol (MCP) server that exposes Portuguese weather, warning and seismic data from the public IPMA API to MCP-compatible AI clients.

Built with Node.js and the official Model Context Protocol SDK.

Features

The server exposes six MCP tools:

  • get_weather_forecast - daily weather forecasts for Portuguese locations

  • get_weather_warnings - active meteorological warnings

  • get_seismic_data - recent seismic activity

  • get_locations - available forecast locations

  • get_weather_stations - real-time weather station observations

  • get_uv_forecast - UV index forecasts

Data is retrieved directly from the public API provided by the Instituto Português do Mar e da Atmosfera (IPMA).

Tech Stack

  • Node.js

  • JavaScript

  • Model Context Protocol

  • @modelcontextprotocol/sdk

  • node-fetch

  • IPMA Open Data API

Architecture

MCP Client
    │
    │ Model Context Protocol
    ▼
IPMA MCP Server
    │
    │ HTTP
    ▼
IPMA Open Data API

The server communicates with MCP clients through the standard input/output transport and translates tool calls into requests to the relevant IPMA endpoints.

Getting Started

Requirements

  • Node.js

  • npm

  • An MCP-compatible client

Installation

Clone the repository:

git clone https://github.com/brandao-20/ipma-mcp-server.git
cd ipma-mcp-server

Install the dependencies:

npm install

Start the MCP server:

npm start

MCP Client Configuration

For clients that support local MCP servers, configure the server to run the project's entry point.

Example:

{
  "mcpServers": {
    "ipma": {
      "command": "node",
      "args": ["/absolute/path/to/ipma-mcp-server/src/index.js"]
    }
  }
}

Replace the path with the absolute location of the cloned repository.

Available Tools

get_weather_forecast

Returns a daily weather forecast for a Portuguese location.

Parameters:

city    string   required
days    number   optional

Example request:

What is the weather forecast for Braga for the next three days?

get_weather_warnings

Returns active meteorological warnings for Portugal.

Example request:

Are there any active weather warnings in Portugal?

get_seismic_data

Returns recent seismic observations.

Supported areas:

continent
azores
madeira
all

Example request:

Show me recent seismic activity in the Azores.

get_locations

Lists the locations supported by the IPMA forecast API.

get_weather_stations

Returns observations from IPMA weather stations.

get_uv_forecast

Returns UV index forecast data.

Data Source

This project uses the public open-data services provided by IPMA — Instituto Português do Mar e da Atmosfera.

API:

https://api.ipma.pt/open-data/

No API key is required for the IPMA endpoints used by this project.

Project Structure

ipma-mcp-server/
├── src/
│   └── index.js
├── package.json
├── package-lock.json
└── README.md

License

This project is licensed under the MIT License.

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/brandao-20/ipma-mcp-server'

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