MAD Synapse · World

Weather, geocoding, FX rates, holidays, time zones, countries, earthquakes, sun and moon.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
96%
Naming quality
83%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,878Tokens (tool definitions)
~3.9 KBTypical response size
Significant attention impact (3.03% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "synapse-world": {
      "url": "https://agent.maddegen.art/hub/mcp/world"
    }
  }
}

Remote endpoints

https://agent.maddegen.art/hub/mcp/worldstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢weather(place, days, tz)

Current weather and hourly/daily forecast for any place name or lat,lon: temperature, feels-like, wind, gusts, rain, cloud, humidity, UV — up to 9 days. Forecast from the Norwegian Meteorological Institute (MET Norway), the same model data yr.no uses, worldwide. Place names are geocoded with OpenStreetMap. Times are UTC plus local time when tz is given (IANA, e.g. Australia/Sydney). Price: $0.001 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "city/address or \"lat,lon\""
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "default": 3,
      "description": "Days of daily forecast to include. Range 1-9. Default 3."
    },
    "tz": {
      "type": "string",
      "description": "IANA time zone for local times (optional)"
    }
  },
  "required": [
    "place"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": [
        "string",
        "null"
      ]
    },
    "lat": {
      "type": [
        "number",
        "null"
      ]
    },
    "lon": {
      "type": [
        "number",
        "null"
      ]
    },
    "updated": {
      "type": [
        "string",
        "null"
      ]
    },
    "now": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "time": {
          "type": [
            "string",
            "null"
          ]
        },
        "temp_c": {
          "type": [
            "number",
            "null"
          ]
        },
        "feels_like_c": {
          "type": [
            "number",
            "null"
          ]
        },
        "sky": {
          "type": [
            "string",
            "null"
          ]
        },
        "humidity_pct": {
          "type": [
            "number",
            "null"
          ]
        },
        "wind_ms": {
          "type": [
            "number",
            "null"
          ]
        },
        "wind_kmh": {
          "type": [
            "number",
            "null"
          ]
        },
        "wind_gust_ms": {},
        "wind_from_deg": {
          "type": [
            "number",
            "null"
          ]
        },
        "pressure_hpa": {
          "type": [
            "number",
            "null"
          ]
        },
        "cloud_pct": {
          "type": [
            "number",
            "null"
          ]
        },
        "uv_index": {
          "type": [
            "number",
            "null"
          ]
        },
        "dew_point_c": {
          "type": [
            "number",
            "null"
          ]
        },
        "rain_next_hour_mm": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "daily": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "date": {
            "type": [
              "string",
              "null"
            ]
          },
          "min_c": {
            "type": [
              "number",
              "null"
            ]
          },
          "max_c": {
            "type": [
              "number",
              "null"
            ]
          },
          "rain_mm": {
            "type": [
              "number",
              "null"
            ]
          },
          "max_wind_ms": {
            "type": [
              "number",
              "null"
            ]
          },
          "max_gust_ms": {},
          "sky": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "hourly_48h": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "time": {
            "type": [
              "string",
              "null"
            ]
          },
          "local": {
            "type": [
              "string",
              "null"
            ]
          },
          "temp_c": {
            "type": [
              "number",
              "null"
            ]
          },
          "wind_ms": {
            "type": [
              "number",
              "null"
            ]
          },
          "rain_mm": {
            "type": [
              "number",
              "null"
            ]
          },
          "rain_prob_pct": {},
          "sky": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "source": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
🟢geocode(query, limit)

Place name or address → coordinates (with city, state, country, postcode), or lat,lon → the nearest address. Up to 10 candidates. OpenStreetMap data via Photon. Returns OSM links so results can be checked. When to use: To turn names into coordinates; weather and sun_moon accept place names directly. Price: $0.001 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "address/place, or \"lat,lon\" for reverse"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 3,
      "description": "How many candidate matches to return. Range 1-10. Default 3."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": [
        "string",
        "null"
      ]
    },
    "query": {
      "type": [
        "string",
        "null"
      ]
    },
    "results": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {},
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "country_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "postcode": {},
          "street": {},
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lon": {
            "type": [
              "number",
              "null"
            ]
          },
          "osm": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "attribution": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
🟢fx_rates(from, to, amount, date, end_date)

Official exchange rates for 30 major currencies (European Central Bank reference rates): latest or any date since 1999, convert an amount, or a time series. Frankfurter API over ECB reference rates, published each working day ~16:00 CET. For crypto use crypto_price. Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "default": "USD",
      "description": "Base currency ISO 4217 code, e.g. \"USD\". Default \"USD\"."
    },
    "to": {
      "type": "array",
      "maxItems": 30,
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z]{3}$"
      },
      "description": "targets (default: all) 0-30 items."
    },
    "amount": {
      "type": "number",
      "minimum": 0,
      "default": 1,
      "description": "Amount of the base currency to convert. Default 1."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "historical date (optional)"
    },
    "end_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "with date: returns a daily series"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": [
        "string",
        "null"
      ]
    },
    "amount": {
      "type": [
        "number",
        "null"
      ]
    },
    "date": {
      "type": [
        "string",
        "null"
      ]
    },
    "rates": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "AUD": {
          "type": [
            "number",
            "null"
          ]
        },
        "EUR": {
          "type": [
            "number",
            "null"
          ]
        },
        "JPY": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "source": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
🟢holidays(country, year)

Public holidays for 100+ countries for any year, whether today is a holiday there, and the next upcoming ones — including regional (state) holidays. Nager.Date open holiday data. Use for scheduling, market-closure awareness or delivery estimates. Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "ISO code or name, e.g. AU, United States"
    },
    "year": {
      "type": "integer",
      "minimum": 1975,
      "maximum": 2075,
      "description": "Calendar year; defaults to the current year. Range 1975-2075."
    }
  },
  "required": [
    "country"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "code": {
      "type": [
        "string",
        "null"
      ]
    },
    "year": {
      "type": [
        "number",
        "null"
      ]
    },
    "today_is_holiday": {
      "type": "array"
    },
    "next": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "date": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "local_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nationwide": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "regions": {},
          "types": {
            "type": "array"
          }
        }
      }
    },
    "holidays": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "date": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "local_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nationwide": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "regions": {},
          "types": {
            "type": "array"
          }
        }
      }
    },
    "source": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
🟢time_convert(time, from_tz, to_tz, add, until)

Current time in any time zones, convert a time between zones (DST-correct), and date arithmetic: add/subtract durations, days between dates, weekday, ISO week, Unix time. Computed locally from the IANA time-zone database — no rate limits, exact. Zones are IANA names (America/New_York, Asia/Tokyo, UTC). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "time": {
      "type": "string",
      "description": "ISO time, \"now\", or a Unix timestamp; naive times are read in from_tz"
    },
    "from_tz": {
      "type": "string",
      "default": "UTC",
      "description": "IANA time zone the input time is in, e.g. \"America/New_York\". Default \"UTC\"."
    },
    "to_tz": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string"
      },
      "default": [
        "UTC"
      ],
      "description": "IANA time zones to convert into. 0-20 items. Default [\"UTC\"]."
    },
    "add": {
      "type": "string",
      "description": "e.g. \"+3d 4h\", \"-90m\", \"+2w\""
    },
    "until": {
      "type": "string",
      "description": "second ISO date: returns the difference"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "input_utc": {
      "type": [
        "string",
        "null"
      ]
    },
    "added": {
      "type": [
        "string",
        "null"
      ]
    },
    "utc": {
      "type": [
        "string",
        "null"
      ]
    },
    "unix": {
      "type": [
        "number",
        "null"
      ]
    },
    "iso_week": {
      "type": [
        "number",
        "null"
      ]
    },
    "source_zone": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "zone": {
          "type": [
            "string",
            "null"
          ]
        },
        "local": {
          "type": [
            "string",
            "null"
          ]
        },
        "readable": {
          "type": [
            "string",
            "null"
          ]
        },
        "utc_offset": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "converted": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "local": {
            "type": [
              "string",
              "null"
            ]
          },
          "readable": {
            "type": [
              "string",
              "null"
            ]
          },
          "utc_offset": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  }
}
🟢country_info(country)

Any country's essentials: capital, population, GDP and GDP per capita (World Bank), currencies, languages, calling code, internet TLD, time zones, driving side, borders, flag. Static facts from the world-countries dataset (no rate limits) plus the latest World Bank population and GDP figures. Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "name or ISO code"
    }
  },
  "required": [
    "country"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "official_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "cca2": {
      "type": [
        "string",
        "null"
      ]
    },
    "cca3": {
      "type": [
        "string",
        "null"
      ]
    },
    "capital": {
      "type": "array",
      "items": {
        "type": [
          "string",
          "null"
        ]
      }
    },
    "region": {
      "type": [
        "string",
        "null"
      ]
    },
    "subregion": {
      "type": [
        "string",
        "null"
      ]
    },
    "population": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "value": {
          "type": [
            "number",
            "null"
          ]
        },
        "year": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "gdp_usd": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "value": {
          "type": [
            "number",
            "null"
          ]
        },
        "year": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "gdp_per_capita_usd": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "value": {
          "type": [
            "number",
            "null"
          ]
        },
        "year": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "area_km2": {
      "type": [
        "number",
        "null"
      ]
    },
    "currencies": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "symbol": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "languages": {
      "type": "array",
      "items": {
        "type": [
          "string",
          "null"
        ]
      }
    },
    "calling_code": {
      "type": [
        "string",
        "null"
      ]
    },
    "tld": {
      "type": "array",
      "items": {
        "type": [
          "string",
          "null"
        ]
      }
    },
    "landlocked": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "borders": {
      "type": "array"
    },
    "latlng": {
      "type": "array",
      "items": {
        "type": [
          "number",
          "null"
        ]
      }
    },
    "flag": {
      "type": [
        "string",
        "null"
      ]
    },
    "un_member": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "independent": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "demonym": {
      "type": [
        "string",
        "null"
      ]
    },
    "source": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
🟢earthquakes(min_magnitude, period, near, radius_km, limit)

Earthquakes worldwide from the last hour to 30 days, filtered by minimum magnitude and optionally within a radius of a place — with depth, tsunami flag and USGS alert level. USGS real-time earthquake feeds (updated every minute). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "min_magnitude": {
      "type": "number",
      "minimum": 0,
      "maximum": 9,
      "default": 4.5,
      "description": "Only quakes at or above this magnitude. Range 0-9. Default 4.5."
    },
    "period": {
      "type": "string",
      "enum": [
        "hour",
        "day",
        "week",
        "month"
      ],
      "default": "day",
      "description": "Look-back window. One of \"hour\", \"day\", \"week\", \"month\". Default \"day\"."
    },
    "near": {
      "type": "string",
      "description": "place or lat,lon (optional)"
    },
    "radius_km": {
      "type": "number",
      "minimum": 10,
      "maximum": 5000,
      "default": 1000,
      "description": "Search radius around the given place (only when a place is given). Range 10-5000. Default 1000."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "How many quakes to return, largest first. Range 1-100. Default 20."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "period": {
      "type": [
        "string",
        "null"
      ]
    },
    "min_magnitude": {
      "type": [
        "number",
        "null"
      ]
    },
    "count": {
      "type": [
        "number",
        "null"
      ]
    },
    "strongest": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "time": {
          "type": [
            "string",
            "null"
          ]
        },
        "magnitude": {
          "type": [
            "number",
            "null"
          ]
        },
        "place": {
          "type": [
            "string",
            "null"
          ]
        },
        "depth_km": {
          "type": [
            "number",
            "null"
          ]
        },
        "lat": {
          "type": [
            "number",
            "null"
          ]
        },
        "lon": {
          "type": [
            "number",
            "null"
          ]
        },
        "tsunami_flag": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "alert": {
          "type": [
            "string",
            "null"
          ]
        },
        "felt_reports": {
          "type": [
            "number",
            "null"
          ]
        },
        "url": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "quakes": {
      "type": "array",
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "time": {
            "type": [
              "string",
              "null"
            ]
          },
          "magnitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "place": {
            "type": [
              "string",
              "null"
            ]
          },
          "depth_km": {
            "type": [
              "number",
              "null"
            ]
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lon": {
            "type": [
              "number",
              "null"
            ]
          },
          "tsunami_flag": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "alert": {},
          "felt_reports": {},
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "source": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
🟢sun_moon(place, date, tz)

Sunrise, sunset, golden hour, twilight, day length and solar noon for any place and date — plus moon phase, illumination, moonrise and moonset. Astronomical calculation (SunCalc), exact and instant. Pass tz for local times. Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).

Input Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "Place name or \"lat,lon\"."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "default today (UTC)"
    },
    "tz": {
      "type": "string",
      "description": "IANA zone for local times"
    }
  },
  "required": [
    "place"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": [
        "string",
        "null"
      ]
    },
    "lat": {
      "type": [
        "number",
        "null"
      ]
    },
    "lon": {
      "type": [
        "number",
        "null"
      ]
    },
    "date": {
      "type": [
        "string",
        "null"
      ]
    },
    "times_in": {
      "type": [
        "string",
        "null"
      ]
    },
    "sun": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "dawn": {
          "type": [
            "string",
            "null"
          ]
        },
        "sunrise": {
          "type": [
            "string",
            "null"
          ]
        },
        "golden_hour_morning_ends": {
          "type": [
            "string",
            "null"
          ]
        },
        "solar_noon": {
          "type": [
            "string",
            "null"
          ]
        },
        "golden_hour_evening_starts": {
          "type": [
            "string",
            "null"
          ]
        },
        "sunset": {
          "type": [
            "string",
            "null"
          ]
        },
        "dusk": {
          "type": [
            "string",
            "null"
          ]
        },
        "night": {
          "type": [
            "string",
            "null"
          ]
        },
        "day_length_hours": {
          "type": [
            "number",
            "null"
          ]
        },
        "polar": {}
      }
    },
    "moon": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "phase": {
          "type": [
            "string",
            "null"
          ]
        },
        "phase_fraction": {
          "type": [
            "number",
            "null"
          ]
        },
        "illumination_pct": {
          "type": [
            "number",
            "null"
          ]
        },
        "rise": {
          "type": [
            "string",
            "null"
          ]
        },
        "set": {
          "type": [
            "string",
            "null"
          ]
        },
        "always_up": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "always_down": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools