Skip to content

Doorfarer

com.doorfarer/doorfarerdoorfarer.comstreamable-httpv0.2.0Scanned

Door-to-door trips: every airport within reach of your home, with the train or bus there.

4 tools: 1 do something that can't be undone and 3 only read.

Tools: 0 delete, 1 irreversible, 0 write, 3 read.
  • Reads private data · 1
  • Reads text others write · 1
  • Can send data out · 1
  • 1 finding

Anlyon alternative

1 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

4 tools

Can't be undone 1Claude Code: ask
  • send_feedbackTell Doorfarer's maker where Doorfarer fell short, so it can be fixed.Can send data outNo findings

    Why it is in this group

    • The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.

    What it can reach

    • outboundThe name "send_feedback" says "send": it sends or publishes something to other people.
    Description, as the server wrote it
    Tell Doorfarer's maker where Doorfarer fell short, so it can be fixed. Use it when a find_trips answer was wrong, confusing, or missing something you needed to help, or when the user asks you to pass something on. Write as the assistant that used the tool: what you asked for, what came back, what you expected instead. The report is about Doorfarer only, never about the user: leave out names, contact details, travel plans, reasons for travelling and anything the user said about themselves. Be specific and honest, including when the problem may have been your own call. Pass the search_id from the answer's last line. One report per search. If the user asked you to report something, tell them it's sent.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: Report a problem with Doorfarer
Only reads 3Show 3 read-only tools
  • find_tripsFinds the best round trips from where someone lives, not just from one airport: it adds the train or bus to every airport they can reach and ranks all options door to door, by pric…Reads text others write1 finding

    Why it is in this group

    • The name "find_trips" says "find": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Info

      The description is 3,687 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...rst, instantly. If an answer is wrong or confusing, report it with send_feedback."

      What this check looks for
    Description, as the server wrote it
    Finds the best round trips from where someone lives, not just from one airport: it adds the train or bus to every airport they can reach and ranks all options door to door, by price, by total travel time, or balanced. Use it when someone wants flights from their home town, could fly from several airports, or asks for the cheapest or fastest way to get somewhere, e.g. "I live in New Haven: should I fly to Lisbon from JFK, Newark, Boston or Hartford?" Not for a search from one airport already chosen. For a one-way trip set one_way (the trip length is then ignored). Multi-city: search each leg as one_way only when the user gave dates for it; otherwise ask for the dates. Set mode only when the user says how they get to the airport (car, train, bus, any): by default a home in the US compares driving, a taxi to a near airport and public transport, and a home elsewhere uses the train or bus. A named departure airport is an ordinary search: pass it as from_airports, with the home town the user gave. A month or holiday without a year means the next one coming; don't ask which year, and don't ask for the trip length or to confirm a town: search, and the answer says what it assumed. Any town or village works. The first search from a town we haven't seen takes about 20 seconds while we look up its train and bus connections; tell the user you're checking the connections from their town to each airport. Later searches from that town take a second or two. Give the home town and where to: airport, city or country codes, a list of them, or a region such as "Iberia" or "Southeast Asia". For "anywhere", a continent ("Asia") or "somewhere warm" it finds the cheapest places itself: pass "anywhere", "abroad" (another country) or the continent, or for warm, sunny or a beach the countries that fit the season with anywhere true; it searches the best 6 cities door to door. Dates are optional, but `dates` says where they came from: use "assumed" when the user gave none and you picked them (or left them out). Without them it searches departures in the next 3 months at 2-14 nights and says so. If the user gave no hint of when at all, one quick question about timing is fine. Example call: {"home": "New Haven", "destinations": ["LIS"], "dates": "from_user", "depart_from": "2027-03-01", "depart_to": "2027-03-31", "nights_min": 5, "nights_max": 9, "travellers": 2}. Show the answer's rows as a table with the airports each trip flies from and to, and give every booking link exactly as returned, as a clickable link (don't shorten or rewrite it); show the picks and at most a few more rows, and relay the answer's notes. Airports more than 8.5 hours from the door are left out and named in the answer (max_ground_hours changes that: set it only if the user says how far they would travel). Say when a ground leg is an estimate. If the answer's status isn't "ok", tell the user plainly what its note says and don't invent prices. Keep the user's own dates, trip length and places: if nothing is found, say so and offer to widen them, instead of widening on your own. Prices are in the traveller's home currency unless `currency` is given, per person; use the totals the answer gives for a party and don't convert or add up prices yourself. Prices come from recent searches on Aviasales and can change. Booking links are affiliate links: Doorfarer may earn a commission if you book, at no extra cost to you. Say so when you show them, and only then. When the user picks a trip, trip_details gives it step by step with a calendar file; when they ask which month is cheapest, price_calendar answers first, instantly. If an answer is wrong or confusing, report it with send_feedback.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
    • title: Find door-to-door trips
  • price_calendarShows the cheapest month to travel from someone's home town to a place, for each airport within reach: what fares on each route usually cost per month (from the fares Doorfarer has…Reads private dataNo findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.

    What it can reach

    • private-dataThe name "price_calendar" says "calendar": it reads calendars.
    Description, as the server wrote it
    Shows the cheapest month to travel from someone's home town to a place, for each airport within reach: what fares on each route usually cost per month (from the fares Doorfarer has seen, not live prices) plus the train or bus to the airport. Instant. Use it when the user's dates are flexible or they ask when it's cheapest to go; then call find_trips for the month they choose to get bookable trips. Needs the home town; months as "2027-03", at most 12. Prices per person, in the home currency unless `currency` is given.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Cheapest month from home
  • trip_detailsShows one trip from a find_trips answer step by step, door to door: leaving home, the train or bus to the airport, the airport wait, the flight, the transfer into the city and arri…No findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    Description, as the server wrote it
    Shows one trip from a find_trips answer step by step, door to door: leaving home, the train or bus to the airport, the airport wait, the flight, the transfer into the city and arrival, then the way back, with local times. Also gives the booking link and a calendar file (.ics) the user can add. Pass a trip id from the find_trips answer ("Trip ids, row by row", or a row's `id`). Use it when the user picks a trip or asks how the journey works. Ids are kept for 72 hours.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Trip step by step

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.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

1 path in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write1
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__doorfarer__send_feedback"
    ]
  }
}

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 info
  • The description is 3,687 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...rst, instantly. If an answer is wrong or confusing, report it with send_feedback."

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

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

claude mcp add --transport http doorfarer https://doorfarer.com/mcp
claude mcp add --transport http doorfarer https://doorfarer.com/mcp

Run in a terminal.

Claude Code permissions

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

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__doorfarer__find_trips",
      "mcp__doorfarer__price_calendar",
      "mcp__doorfarer__trip_details"
    ],
    "ask": [
      "mcp__doorfarer__send_feedback"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as doorfarer. Review it before you use it.

Capability tags behind 3 rules
  • mcp__doorfarer__find_trips untrusted-input
  • mcp__doorfarer__price_calendar private-data
  • mcp__doorfarer__send_feedback outbound

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.doorfarer/doorfarer/verify?hash=0021bd77ebc413e04fcf20b34b035486c5d95bdfd2e8c4bbb4c84026e14a8b18" | jq -e '.changed == false'

Pinned hash 0021bd77ebc4, from Oct 30, 2026, 09:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.doorfarer/doorfarer/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.doorfarer/doorfarer
[![anlyon.dev](https://anlyon.dev/badge/com.doorfarer/doorfarer.svg)](https://anlyon.dev/servers/com.doorfarer/doorfarer)

Source: MCP Registry. Synced Oct 30, 2026, 09:17 UTC.