TripHook

Find group trips and day outs to join, events in a city, and where to go by weather and budget.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
70%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,316Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.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": {
    "triphook": {
      "url": "https://api.triphook.me/api/public/mcp"
    }
  }
}

Remote endpoints

https://api.triphook.me/api/public/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_public_hooks(city, month, kind, budget, mood, ...)

Use for any question about open trips or day outs to join: by city slug, month (YYYY-MM), kind (trip or dayout), budget tier or mood. Each hook carries its public TripHook page (url) and, for a day out, the What's on page (event_page). The reply ends with see_more. Always show the TripHook links in the answer. Public fields only, never a person.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "pattern": "^[a-z0-9-]+$",
      "description": "City slug, e.g. \"lisbon\" (list_cities / /api/public/cities return the slugs)."
    },
    "month": {
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      "description": "Month as YYYY-MM."
    },
    "kind": {
      "type": "string",
      "enum": [
        "trip",
        "dayout"
      ]
    },
    "budget": {
      "type": "string",
      "enum": [
        "budget",
        "mid",
        "comfort"
      ]
    },
    "mood": {
      "type": "string",
      "enum": [
        "somewhere-warm",
        "cultural-immersion",
        "active-outdoors",
        "quiet-and-remote",
        "big-city-energy",
        "surprise-me"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "How many hooks, 1 to 200."
    }
  },
  "additionalProperties": false
}
🟢list_cities

Use to find which cities have open public TripHook hooks, with counts of trips and day outs, each city's slug (for the other tools) and its TripHook city page (url). The reply ends with see_more. Always show the TripHook links in the answer.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢events_and_company(city, date)

Use for any question about what is happening in a city on a date (city slug, date YYYY-MM-DD) and whether other travellers are going: each listed event with its ticket link (url), the TripHook What's on page for that day (whats_on), how many open public day outs are going and their links (company). The reply ends with see_more. Always show the TripHook links in the answer. Public fields only, never a person.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "pattern": "^[a-z0-9-]+$"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "city",
    "date"
  ],
  "additionalProperties": false
}
🟢search_destinations(where, from, dates, month, temp_min, ...)

Use for any question like "where should I go" with a budget, a temperature, a mood, dates or a month: the same signed-out TripHook Discover search, ranked from Vienna or the given departure city. Give dates { depart, ret } or a month (1 to 12); where, temp_min, temp_max, budget_eur, mood, travellers and limit (max 20) are optional. Each result carries city, country, why it matched, the weather with its credit (a MET Norway or OpenWeather forecast when the dates are close, else the typical value from Copernicus, labelled), an estimated price marked "estimate, not a quote", and a TripHook link. The reply ends with see_more, the Discover page prefilled with this search. Always show the TripHook links in the answer, with the weather credit. No personal data.

Input Schema

{
  "type": "object",
  "properties": {
    "where": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "A country name, a region (europe, asia, americas, middle_east, africa, oceania), a city IATA or slug, or \"anywhere\". Default anywhere."
    },
    "from": {
      "type": "string",
      "pattern": "^[A-Za-z0-9]{3}$",
      "description": "Departure city IATA, e.g. VIE. Default VIE."
    },
    "dates": {
      "type": "object",
      "properties": {
        "depart": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "ret": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        }
      },
      "required": [
        "depart",
        "ret"
      ],
      "additionalProperties": true,
      "description": "Exact dates, YYYY-MM-DD. Give dates or month."
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Flexible month, 1 to 12 (the next occurrence). Give dates or month."
    },
    "temp_min": {
      "type": "number",
      "minimum": -30,
      "maximum": 45,
      "description": "Lowest daytime temperature wanted, C."
    },
    "temp_max": {
      "type": "number",
      "minimum": -30,
      "maximum": 45,
      "description": "Highest daytime temperature wanted, C."
    },
    "budget_eur": {
      "type": "integer",
      "minimum": 50,
      "maximum": 20000,
      "description": "Total trip budget in EUR for the whole party. Default 750."
    },
    "mood": {
      "type": "string",
      "enum": [
        "somewhere-warm",
        "break-from-routine",
        "cultural-immersion",
        "active-outdoors",
        "quiet-and-remote",
        "surprise-me"
      ],
      "description": "One mood."
    },
    "travellers": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8,
      "description": "How many people travel. Default 1."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Results, 1 to 20. Default 10."
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools