Skip to main content
Glama

get_seismic_data

Retrieve recent seismic activity data for Portugal, including continental areas, Azores, and Madeira, to monitor earthquake occurrences.

Instructions

Obter dados sísmicos recentes

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
areaNoÁrea: 'continent', 'azores', 'madeira', ou 'all'all

Implementation Reference

  • The handler function for get_seismic_data tool. Fetches seismic data from IPMA API for specified area, formats recent earthquakes (up to 10) into a markdown text response with details like time, location, magnitude, depth, coordinates.
    async getSeismicData(area) {
      try {
        let areaId;
        switch (area.toLowerCase()) {
          case "continent":
            areaId = 1;
            break;
          case "azores":
            areaId = 2;
            break;
          case "madeira":
            areaId = 3;
            break;
          default:
            areaId = 1;
        }
    
        const response = await fetch(`${this.baseUrl}/observation/seismic/${areaId}.json`);
        const data = await response.json();
    
        if (!data.data || data.data.length === 0) {
          return {
            content: [
              {
                type: "text",
                text: "Não há dados sísmicos recentes para a área especificada."
              }
            ]
          };
        }
    
        let result = `**Dados Sísmicos - ${area}**\n\n`;
        result += `Última atualização: ${data.data[0]?.dataUpdate}\n\n`;
    
        const recentData = data.data.slice(0, 10);
        
        recentData.forEach((earthquake) => {
          const eventTime = new Date(earthquake.time).toLocaleString('pt-PT');
          result += `**${eventTime}**\n`;
          result += `Local: ${earthquake.obsRegion || 'N/A'}\n`;
          result += `Magnitude: ${earthquake.magnitud} ${earthquake.magType}\n`;
          result += `Profundidade: ${earthquake.depth} km\n`;
          result += `Coordenadas: ${earthquake.lat}, ${earthquake.lon}\n\n`;
        });
    
        return {
          content: [
            {
              type: "text",
              text: result
            }
          ]
        };
      } catch (error) {
        const errorMessage = error instanceof Error ? error.message : String(error);
        throw new McpError(ErrorCode.InternalError, `Erro ao obter dados sísmicos: ${errorMessage}`);
      }
    }
  • src/index.js:60-73 (registration)
    Registration of the get_seismic_data tool in the ListTools response, including name, description, and input schema defining optional 'area' parameter.
    {
      name: "get_seismic_data",
      description: "Obter dados sísmicos recentes",
      inputSchema: {
        type: "object",
        properties: {
          area: {
            type: "string",
            description: "Área: 'continent', 'azores', 'madeira', ou 'all'",
            default: "all"
          }
        }
      }
    },
  • src/index.js:112-113 (registration)
    Dispatcher case in CallToolRequestSchema handler that routes get_seismic_data calls to the getSeismicData method with default area 'all'.
    case "get_seismic_data":
      return await this.getSeismicData(args?.area || "all");

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/mcp_server_ipma'

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