Koskamo

TravelCharika MCP

A read-only MCP server providing travel planning tools such as searching places, finding best months to visit, discovering activities, and estimating travel logistics based on climate data, public holidays, and crowd scores.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

TravelCharika MCP logo, by TravelCharikaVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by TravelCharika
MCP endpoint (Streamable HTTP)
https://travelcharika.com/mcp
Vendor documentation

What its tools do

9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

9 of 9 have a description · 9 of 9 declare behavior hints · 9 of 9 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to travelcharika.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for travel destinations
  • Determine the best months to visit a location
  • Find activities and events at a destination
  • Estimate flight times and distances

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
travelcharika 1.2.0
MCP protocol negotiated in check
2025-11-25
Tools
9 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

TravelCharika (travelcharika.com) says when to go and where to book. Each of the 905 places in its lists has its twelve months scored from ten years of measured climate and the public holidays that crowd it; the site also says which months are good for hiking, the sea, skiing and the northern lights, and lists the big events (festivals, carnivals, markets) month by month. Every list puts the most visited places first: the weather is shown for each and never moves one up or down. A place under travel advice is in no list; search_places finds it by name, with the advice beside it. Its fares are paused until a data partner gives full and current fares, so no answer carries one. Start with search_places when you have a name, or where_to_go for "where is good in <month>"; the other tools take the ids search_places returns, or a plain name. Everything is read-only and the same for every reader. Send the reader to the `page` each answer gives, name the sources in `attribution` when you use its figures, and when you show booking links say the `disclosure` that comes with them and mark the ones that pay (`paid`) as "Ad": some of the sites pay TravelCharika a commission, and that never decides which are listed or in what order.

Tools

9 advertised

search_places — Search TravelCharika
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find what TravelCharika has a page for, by name: places, countries, regions, kinds of place ("beaches"), activities ("skiing"), seasons, routes, departure cities, months and holidays. Matches as the site's own search box does: accents ignored, a name a place is also known by ("Bombay"), one letter off ("Marrakesh"), and a month among the words ("bali in may") gives that month's page. Returns each match's kind, name, the id the other tools take, and its page. A place under travel advice is found by its name with the advice beside it (`advice`), and is in no list. Call it first whenever you have a name rather than an id; nothing matching gets the nearest names instead.

search_places input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "At most this many matches."
    },
    "query": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "What to look for: a place, country, region, kind of place, activity, city to fly from, or a phrase such as \"bali in may\" or \"beaches december\"."
    }
  },
  "additionalProperties": false
}
search_places annotations
{
  "title": "Search TravelCharika",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
where_to_go — Where to go
Advertised by the server during the last successful anonymous check.
Advertised read-only

Where is good to go in a month, as the site's list of places answers it: every place open that month, the most visited first (how often travellers look it up; the weather never moves a place up or down), narrowed by the filters given -- a region, a kind of place, what to do (hiking, the sea, snow), the weather in words, quiet only, and from a departure city how far (close by, 3 to 6 hours' flying, long-haul). Each place comes with its month as its card shows it: the site's label (sweet spot, good or ok), the weather word, the typical daytime high, rainy days, busy or quiet, and how far from the city given; with how many places fit, and the same list on the site with its filters set. A place under travel advice is never listed. For one place's twelve months, use best_months.

where_to_go input schema
{
  "type": "object",
  "required": [
    "month"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "Optional: a kind of place, by name or id (\"Beaches\", \"mountains\", \"islands\"); several separated by commas for any of them."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "At most this many places, the most visited first."
    },
    "month": {
      "type": [
        "integer",
        "string"
      ],
      "description": "A month: 1 to 12, or its name (\"December\", \"dec\")."
    },
    "quiet": {
      "type": "boolean",
      "description": "Optional: true for quiet places only, leaving out the ones busy that month."
    },
    "region": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "Optional: a region, by name or id (\"Europe\", \"south-asia\"); several separated by commas for any of them."
    },
    "how_far": {
      "enum": [
        "close",
        "medium",
        "far"
      ],
      "type": "string",
      "description": "Optional, with from_city: close (a road of up to four hours, or up to three hours' flying), medium (3 to 6 hours' flying) or far (long-haul)."
    },
    "weather": {
      "type": "array",
      "items": {
        "enum": [
          "hot",
          "warm",
          "mild",
          "cool",
          "cold"
        ],
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "Optional, any of them: the weather in words, each a band of the month's average daily high -- hot 30 °C or more, warm from 23, mild from 15, cool from 8, cold below 8."
    },
    "activity": {
      "type": "array",
      "items": {
        "enum": [
          "hiking",
          "sea",
          "snow"
        ],
        "type": "string"
      },
      "maxItems": 3,
      "minItems": 1,
      "description": "Optional, any of them: hiking (a month good for walking all day), sea (the beach and sea good or fair) or snow (a ski place whose lifts run that month)."
    },
    "from_city": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional: each place then says how far it is, and how_far can narrow the list by it."
    }
  },
  "additionalProperties": false
}
where_to_go annotations
{
  "title": "Where to go",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
best_months — When to go
Advertised by the server during the last successful anonymous check.
Advertised read-only

When to go to one place: TravelCharika's verdict for each of the twelve months (sweet spot, good, ok or avoid) with its reason, scored from ten years of measured climate and the public holidays that crowd it; the typical daytime high, rainy days (what counts as one is in the answer's rainy_days_are: days with at least 1 mm of rain, as a weather station counts them), humidity and sunshine of each month; the sweet spot; and the verdict in one sentence, as the place's page says it. A busy month is a crowded one, not a bad one; `crowds` gives the busiest and quietest months as the page's graph of how busy it gets shows them, and how that is measured. Given a month, that month alone, as its own page has it: the verdict and its reason, the high and the low, the afternoon's feels-like high, rainy days, sunshine, daylight, the crowd score, the public holidays that fall in it with their dates, what to pack, and the month's page. Given a departure city, how far the place is from it. A place under travel advice is answered with the advice first, as its page shows it. Not a forecast: every figure is a ten-year average.

best_months input schema
{
  "type": "object",
  "required": [
    "place"
  ],
  "properties": {
    "month": {
      "type": [
        "integer",
        "string"
      ],
      "description": "A month: 1 to 12, or its name (\"December\", \"dec\"). Optional: that month alone, in more detail."
    },
    "place": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A place TravelCharika covers: its id from search_places (\"bali\") or its name (\"Bali\", \"Da Nang\", \"Ubud\")."
    },
    "from_city": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional: the answer then says how far the place is from it."
    }
  },
  "additionalProperties": false
}
best_months annotations
{
  "title": "When to go",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
things_to_do — Things to do
Advertised by the server during the last successful anonymous check.
Advertised read-only

What to see and do at one place, as its page's "Things to do" says it: five to seven sights, the ones most read about first (how often each one's Wikipedia article is read), each with one line in Wikivoyage's words, or Wikidata's description, and the article it is quoted from. Then the page's one row of tours and tickets: the things-to-do sites people in the reader's own country use, each opened on the place, with no dates; some pay TravelCharika a commission, which never decides whether or where one is listed; show the result's disclosure with the links, and mark the ones that pay (`paid`) as "Ad". Given a month, that month's verdict and its page. A place under travel advice is answered with the advice first, as its page shows it. Not opening hours, prices or a day-by-day plan.

things_to_do input schema
{
  "type": "object",
  "required": [
    "place"
  ],
  "properties": {
    "month": {
      "type": [
        "integer",
        "string"
      ],
      "description": "A month: 1 to 12, or its name (\"December\", \"dec\"). Optional: that month's verdict, and its page."
    },
    "place": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A place TravelCharika covers: its id from search_places (\"bali\") or its name (\"Bali\", \"Da Nang\", \"Ubud\")."
    },
    "from_city": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional: the city the trip starts from, which gives the reader's country where reader_country is left out."
    },
    "reader_country": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "Where the reader lives, as a two-letter ISO 3166 code (\"GB\", \"IN\") or an English name: whose sites to list. Taken from from_city when left out."
    }
  },
  "additionalProperties": false
}
things_to_do annotations
{
  "title": "Things to do",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
activities — Activities by month
Advertised by the server during the last successful anonymous check.
Advertised read-only

Which places are good, or fair, for an activity in a month, as the site's activity pages say it: hiking (dry days of 10–27 °C), the beach and sea (warm dry days, a warm and calm sea), skiing (deep snow on the ski area's own slopes while its lifts run) or the northern lights (long dark nights under the auroral oval; cloud is not counted, so a good month is no forecast). The most visited first, each with the figure its month was decided on, and the activity's rules and sources in the site's own words. Without a month, how many places are good and fair in each month of the year. A place under travel advice is never listed.

activities input schema
{
  "type": "object",
  "required": [
    "activity"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "At most this many places, the most visited first."
    },
    "month": {
      "type": [
        "integer",
        "string"
      ],
      "description": "A month: 1 to 12, or its name (\"December\", \"dec\"). Optional: without it, each month's count."
    },
    "activity": {
      "enum": [
        "hiking",
        "beach",
        "skiing",
        "northern-lights"
      ],
      "type": "string",
      "description": "hiking, beach (the beach and sea), skiing or northern-lights."
    }
  },
  "additionalProperties": false
}
activities annotations
{
  "title": "Activities by month",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
events — Big events
Advertised by the server during the last successful anonymous check.
Advertised read-only

The big events that fill a town -- festivals, carnivals, Christmas markets, races -- at the places TravelCharika lists, from this month on for a year: in one month, at one place, or all of them. Each with its dates as the site states them (confirmed by its own site; "expected" where they follow a rule its site has not yet confirmed; or when it usually falls), what it is, any closures its organiser names, its own site, and, given a departure city, how far it is from there in the site's words ("about 2h 05m by air from London"). A place under travel advice has none listed.

events input schema
{
  "type": "object",
  "properties": {
    "month": {
      "type": [
        "integer",
        "string"
      ],
      "description": "A month: 1 to 12, or its name (\"December\", \"dec\"). Optional: only that month's events."
    },
    "place": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A place TravelCharika covers: its id from search_places (\"bali\") or its name (\"Bali\", \"Da Nang\", \"Ubud\"). Optional: only that place's events."
    },
    "from_city": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional: how far each event is from there."
    }
  },
  "additionalProperties": false
}
events annotations
{
  "title": "Big events",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
booking_links — Where to book
Advertised by the server during the last successful anonymous check.
Advertised read-only

Where to book a trip to one place, as the place's page shows it to that reader: the booking sites people in the reader's own country use, in the order they know them (flights, a room, things to do, car hire, travel insurance, an eSIM for data), and the brands to book with directly (the airlines Wikipedia's airport articles show flying the route, hotel groups and luxury houses with a hotel there, car renters with a counter in its country), each address filled in for the place and the route. No address carries dates: each site opens on its own search. Some sites pay TravelCharika a commission, which never decides whether or where one is listed; show the result's disclosure with the links, and mark the ones that pay (`paid`) as "Ad".

booking_links input schema
{
  "type": "object",
  "required": [
    "place"
  ],
  "properties": {
    "kind": {
      "enum": [
        "flights",
        "airline",
        "stay",
        "direct",
        "luxury",
        "do",
        "car",
        "rental",
        "insurance",
        "esim"
      ],
      "type": "string",
      "description": "Only this kind of row: flights, airline, stay, direct (hotel groups), luxury, do (things to do), car, rental (car renters), insurance or esim. Every kind if left out."
    },
    "place": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A place TravelCharika covers: its id from search_places (\"bali\") or its name (\"Bali\", \"Da Nang\", \"Ubud\")."
    },
    "from_city": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Where the reader flies from: needed for flights and airlines, and gives their country and currency."
    },
    "reader_country": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "Where the reader lives, as a two-letter ISO 3166 code (\"GB\", \"IN\") or an English name: whose sites to list. Taken from from_city when left out."
    }
  },
  "additionalProperties": false
}
booking_links annotations
{
  "title": "Where to book",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
how_to_get_there — How to get there
Advertised by the server during the last successful anonymous check.
Advertised read-only

How to get from one of TravelCharika's departure cities to a place: the airlines that fly the route all year by Wikipedia's airport articles, nonstop or with the hub they change at and between which airports, each with its own booking page (the ones that pay marked, with the disclosure); the ways a record has (a year-round nonstop and its airlines, a road's distance and driving time); the distance and an estimated flight time; the airports that serve the place; and Wikivoyage's "Get in" for it where the site quotes one. Then arriving and getting around, as the place's page has them: the rail lines that stop at its airport, as OpenStreetMap maps them; the city's transit card or contactless line and the ride-hailing, map and messaging apps people there use, put together by hand with its sources and the day it was checked; Wikivoyage's "Get around"; the ferry crossings near it; and the place in the map apps. No timetable and no prices: the flight searches in booking_links find the day's flights. From a city that is not one of the departure cities, the place's own side and the departure cities nearest it; for a country, its most visited place, the others named.

how_to_get_there input schema
{
  "type": "object",
  "required": [
    "from_city",
    "place"
  ],
  "properties": {
    "place": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A place TravelCharika covers: its id from search_places (\"bali\") or its name (\"Bali\", \"Da Nang\", \"Ubud\")."
    },
    "from_city": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\")."
    }
  },
  "additionalProperties": false
}
how_to_get_there annotations
{
  "title": "How to get there",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
country_facts — Before you go
Advertised by the server during the last successful anonymous check.
Advertised read-only

What to know about a country before going, as TravelCharika prints it: the currency, plug types and voltage, which side of the road they drive on, how expensive it is against the United States, the UK Foreign Office's travel advice with its link -- and beside it the US State Department's and Global Affairs Canada's, each in its own words with its level and link, for a reader from those countries -- and the places the site lists there with their best months. Then on arrival, put together by hand with its sources and the day it was checked: the ride-hailing, map and messaging apps people there use, how people pay (and whether India's UPI works for a visitor from India), each place's transit card, tipping, and the emergency numbers; and the UK Foreign Office's health page for it. Given the reader's passport, the visa line the site's pages show for it: from official lists only, with the list, its address and the day it was read, or plainly no answer where those lists say nothing for that passport. A guide, not advice: the official pages decide.

country_facts input schema
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "A two-letter ISO 3166 code (\"ID\"), an English name (\"Indonesia\") or a place TravelCharika covers (\"Bali\"), which answers for its country."
    },
    "passport": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "Optional: the reader's passport, as a two-letter ISO 3166 code (\"IN\", \"GB\"), the country's English name or its people's (\"Indian\", \"British\"): the answer then gives the visa line for it."
    }
  },
  "additionalProperties": false
}
country_facts annotations
{
  "title": "Before you go",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-06: 1 of 1 checks answered
  2. 2026-11-07: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1084 ms
95th percentile latency
1084 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1084 ms · metadata changed · 9 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http travelcharika-mcp https://travelcharika.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add travelcharika-mcp --url https://travelcharika.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable travelcharika-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "travelcharika-mcp": {
      "url": "https://travelcharika.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "travelcharika-mcp": {
      "type": "streamableHttp",
      "url": "https://travelcharika.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start travelcharika-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "travelcharika-mcp": {
      "type": "http",
      "url": "https://travelcharika.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http travelcharika-mcp https://travelcharika.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://travelcharika.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "travelcharika-mcp": {
      "serverUrl": "https://travelcharika.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like TravelCharika MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run TravelCharika MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing