TravelType

Search and explore a global travel points-of-interest catalog (cities, countries, POIs).

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
87%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,403Tokens (tool definitions)
~3.2 KBTypical response size
Moderate attention impact (1.88% 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": {
    "travel-poi": {
      "url": "https://mcp.traveltype.app"
    }
  }
}

Remote endpoints

https://mcp.traveltype.appstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_cities(country, limit, offset)

List active cities ordered by POI count, with coordinates and Wikidata QID. Paginate with limit/offset; filter by ISO 3166-1 alpha-2 country code.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country code filter, e.g. 'DE'."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50,
      "description": "Maximum number of cities to return (1-100)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Number of cities to skip, for pagination."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "cities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "name_en": {
            "type": [
              "string",
              "null"
            ]
          },
          "country_iso2": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "poi_count": {
            "type": "integer"
          },
          "wikidata_qid": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "slug",
          "name",
          "country_iso2",
          "lat",
          "lng",
          "poi_count"
        ]
      }
    },
    "total": {
      "type": "integer"
    },
    "limit": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": [
    "cities",
    "total",
    "limit",
    "offset"
  ]
}
🟢get_city(slug, lang)

Get one city by slug, including POI count, top distinctive tags, top categories, and a sample of its top POIs.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "City slug, e.g. 'berlin'."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "de"
      ],
      "default": "en",
      "description": "Language for human-readable name/description fields. EN is canonical."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "name_en": {
      "type": [
        "string",
        "null"
      ]
    },
    "country_iso2": {
      "type": "string"
    },
    "lat": {
      "type": "number"
    },
    "lng": {
      "type": "number"
    },
    "poi_count": {
      "type": "integer"
    },
    "wikidata_qid": {
      "type": [
        "string",
        "null"
      ]
    },
    "top_tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "top_categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "label"
        ]
      }
    },
    "sample_pois": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "city_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "country_iso2": {
            "type": [
              "string",
              "null"
            ]
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              },
              "required": [
                "slug",
                "label"
              ]
            }
          },
          "wikidata_qid": {
            "type": [
              "string",
              "null"
            ]
          },
          "osm_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "google_place_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "image_source": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "lat",
          "lng",
          "tags",
          "url"
        ]
      }
    }
  },
  "required": [
    "slug",
    "name",
    "country_iso2",
    "lat",
    "lng",
    "poi_count"
  ]
}
🟢list_countries

List every country that has at least one active city, with city and POI counts.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "countries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "iso2": {
            "type": "string"
          },
          "name_de": {
            "type": "string"
          },
          "name_en": {
            "type": "string"
          },
          "name_local": {
            "type": [
              "string",
              "null"
            ]
          },
          "wikidata_qid": {
            "type": [
              "string",
              "null"
            ]
          },
          "city_count": {
            "type": "integer"
          },
          "poi_count": {
            "type": "integer"
          }
        },
        "required": [
          "iso2",
          "name_de",
          "name_en",
          "city_count",
          "poi_count"
        ]
      }
    }
  },
  "required": [
    "countries"
  ]
}
🟢get_country(iso2)

Get one country by ISO 3166-1 alpha-2 code, including its active cities (top 100 by POI count).

Input Schema

{
  "type": "object",
  "properties": {
    "iso2": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 code, e.g. 'DE'."
    }
  },
  "required": [
    "iso2"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "iso2": {
      "type": "string"
    },
    "name_de": {
      "type": "string"
    },
    "name_en": {
      "type": "string"
    },
    "name_local": {
      "type": [
        "string",
        "null"
      ]
    },
    "wikidata_qid": {
      "type": [
        "string",
        "null"
      ]
    },
    "city_count": {
      "type": "integer"
    },
    "poi_count": {
      "type": "integer"
    },
    "cities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "name_en": {
            "type": [
              "string",
              "null"
            ]
          },
          "country_iso2": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "poi_count": {
            "type": "integer"
          },
          "wikidata_qid": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "slug",
          "name",
          "country_iso2",
          "lat",
          "lng",
          "poi_count"
        ]
      }
    }
  },
  "required": [
    "iso2",
    "name_de",
    "name_en",
    "city_count",
    "poi_count"
  ]
}
🟢search_pois(q, city, tags, limit, lang)

Free-text POI search with prefix/tag/fuzzy ranking plus popularity and geo boosts. Provide `q` (free text, min 2 chars) and/or `city` (slug); with both, the search is scoped to that city. Optionally narrow with `tags` (a POI must carry all of them). At least one of `q` or `city` is required.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free-text query (min 2 chars)."
    },
    "city": {
      "type": "string",
      "description": "Restrict to a city slug."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; a POI must carry all of them."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Maximum number of POIs to return (1-50)."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "de"
      ],
      "default": "en",
      "description": "Language for human-readable name/description fields. EN is canonical."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "pois": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "city_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "country_iso2": {
            "type": [
              "string",
              "null"
            ]
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              },
              "required": [
                "slug",
                "label"
              ]
            }
          },
          "wikidata_qid": {
            "type": [
              "string",
              "null"
            ]
          },
          "osm_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "google_place_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "image_source": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "lat",
          "lng",
          "tags",
          "url"
        ]
      }
    },
    "count": {
      "type": "integer"
    }
  },
  "required": [
    "pois",
    "count"
  ]
}
🟢get_poi_details(id, lang)

Get one POI by UUID or slug, with full enrichment: coordinates, approved tags, categories, Wikidata/OSM/Google identifiers, and hero image.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "POI UUID or slug."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "de"
      ],
      "default": "en",
      "description": "Language for human-readable name/description fields. EN is canonical."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "city_slug": {
      "type": [
        "string",
        "null"
      ]
    },
    "country_iso2": {
      "type": [
        "string",
        "null"
      ]
    },
    "lat": {
      "type": "number"
    },
    "lng": {
      "type": "number"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "label"
        ]
      }
    },
    "wikidata_qid": {
      "type": [
        "string",
        "null"
      ]
    },
    "osm_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "google_place_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "image_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "image_source": {
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "slug",
    "name",
    "lat",
    "lng",
    "tags",
    "url"
  ]
}
🟢find_similar_pois(id, limit, lang)

Find the nearest POIs to the given one by tag-cosine similarity (shared distinctive tags) — 'more like this'. Empty when the POI has only generic tags.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "POI UUID or slug."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30,
      "default": 10,
      "description": "Maximum number of similar POIs to return (1-30)."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "de"
      ],
      "default": "en",
      "description": "Language for human-readable name/description fields. EN is canonical."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "pois": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "city_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "country_iso2": {
            "type": [
              "string",
              "null"
            ]
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              },
              "required": [
                "slug",
                "label"
              ]
            }
          },
          "wikidata_qid": {
            "type": [
              "string",
              "null"
            ]
          },
          "osm_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "google_place_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "image_source": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "lat",
          "lng",
          "tags",
          "url"
        ]
      }
    },
    "count": {
      "type": "integer"
    }
  },
  "required": [
    "pois",
    "count"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools