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.
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
- Deletes or cancels0Claude Code: deny
- Can't be undone2Claude Code: ask: see these tools
- Changes things1Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "check_trail_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
- Warnget_start_times
The server marks "get_start_times" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_start_times" says "get": a word for reading.
The server marks "build_booking_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "build_booking_link" says "link": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_start_times" says "get": a word for reading.
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
build_booking_linkBuild the link a visitor opens to book a permit: https://madeira.fun/hiking/<seo_slug>?date=YYYY-MM-DD opens that date's start times on the trail page.1 finding
Why it is in this group
- The name "build_booking_link" says "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "build_booking_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "build_booking_link" says "link": a word for a change.
Description, as the server wrote it Build the link a visitor opens to book a permit: https://madeira.fun/hiking/<seo_slug>?date=YYYY-MM-DD opens that date's start times on the trail page. Optional adults (visitors aged 13 or over who are not Madeira residents) and children (aged 12 or under, no fee) preset the party; lang sets the page language. The link books and stores nothing. On the page the visitor picks a start time and presses Reserve: madeira.fun submits the government reservation for them and emails a PayPay link to pay the government fee.
Annotations the server declares
- title: Build Booking Link
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.
Oct 21, 2026
af0ab28b51da
+1 added~1 changed- Added:get_start_timesCan't be undone
- Changed:check_trail_availabilityCan't be undonedescription
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.