Skip to content

madeira.fun Hiking Permits

by madeira.fun · remote · no sign-in to list tools · v1.1.0 · published by fun.madeira

Madeira hiking permit trails: day-by-day availability for 120 days, fees and booking links.

Final · 2Changes · 1Changed

5 tools: 2 do something that can't be undone, 1 change things and 2 only read.

Scanned Oct 21, 2026 · tools changed Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http hiking-permits https://madeira.fun/api/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "check_trail_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "get_start_times" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_start_times" says "get": a word for reading.

    What this check looks for
  • The server marks "build_booking_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "build_booking_link" says "link": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Can't be undone 2Claude Code: ask
  • check_trail_availabilityDay-by-day permit availability for one trail, from today up to 119 days ahead (Madeira dates).1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "check_trail_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Day-by-day permit availability for one trail, from today up to 119 days ahead (Madeira dates). Each day is open (start times left for visitors), full (sold out for visitors), started (today only: every start time has already begun, nothing is left to book today; not sold out), closed, no_times (no start times listed) or unknown (not checked yet), with permits left for visitors and when it was last checked. Use date for one day, or from and to for a range; the default is the next 7 days. For the start times of a day, use get_start_times.

    Annotations the server declares

    • title: Check Trail Availability
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_start_timesThe start times of a trail with the permits left for visitors at each one (as the trail page shows them: a number from 6 up, "few" at 1 to 5, "full" at 0), and a book_url per open …1 finding

    Why it is in this group

    • The name "get_start_times" says "get": a word for reading.
    • The description's first verb is "start": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_start_times" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_start_times" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    The start times of a trail with the permits left for visitors at each one (as the trail page shows them: a number from 6 up, "few" at 1 to 5, "full" at 0), and a book_url per open start time that opens Reserve on madeira.fun at that time. Today up to 119 days ahead: give trail and date, or from and to (up to 14 days per call). Further ahead, up to 365 days: one trail and one date per call. Start times that have already begun today are never listed. Rate limited; a partner key (Authorization: Bearer mfk_...) gives higher limits, longer ranges and every trail at once (omit trail).

    Annotations the server declares

    • title: Get Start Times
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Changes things 1Claude Code: ask
Only reads 2Claude Code: allow
  • get_permit_feesThe government hiking permit fee records in force today (format MF-PRC-1.0, the same records as https://madeira.fun/hiking/permit-data), with legal references and exemptions.No findings

    Why it is in this group

    • The name "get_permit_fees" says "get": a word for reading.
    Description, as the server wrote it
    The government hiking permit fee records in force today (format MF-PRC-1.0, the same records as https://madeira.fun/hiking/permit-data), with legal references and exemptions. Give trail to get the fee that applies to that trail. The fee is paid to the government, never to madeira.fun.

    Annotations the server declares

    • title: Get Permit Fees
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_permit_trailsList the Madeira trails that need a government hiking permit for a set start time and can be reserved on madeira.fun.No findings

    Why it is in this group

    • The name "list_permit_trails" says "list": a word for reading.
    Description, as the server wrote it
    List the Madeira trails that need a government hiking permit for a set start time and can be reserved on madeira.fun. Returns each trail's seo_slug (use it in the other tools), code (such as PR 18 or PS PR 1), name, island, official trail status, trail page and day feed links. Optional query filters by code or name, accents ignored.

    Annotations the server declares

    • title: List Permit Trails
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Tool changes

Every rescan that found different tool definitions, newest first.

  1. Oct 21, 2026

    af0ab28b51da

    +1 added~1 changed

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http hiking-permits https://madeira.fun/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__hiking-permits__list_permit_trails",
      "mcp__hiking-permits__get_permit_fees"
    ],
    "ask": [
      "mcp__hiking-permits__check_trail_availability",
      "mcp__hiking-permits__get_start_times",
      "mcp__hiking-permits__build_booking_link"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as hiking-permits. Review it before you use it.