Korea Festival Guide
Server Details
South Korean festivals by region and date, K-pop concerts, weekly festival picks and 2-day routes
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: two search tools target different resource types (festivals vs. concerts), one retrieves full festival details by id, and one returns editorial weekly picks and trails. There is little risk of confusing search_festivals with search_concerts or get_festival with either search.
All tools follow a consistent verb_noun pattern using the get_ and search_ prefixes. The names are predictable and directly reflect the action and resource.
Four tools is a tightly scoped set for a festival guide: discovery for festivals and concerts, detail lookup, and editorial recommendations. Each tool earns its place without redundancy.
The surface covers the core workflow of finding festivals, finding concerts, reading weekly picks, and getting full festival details. The main gap is the lack of an equivalent get_concert detail tool, so concert information is limited to search results and linked external pages.
Available Tools
4 toolsget_festivalFestival detailsARead-onlyIdempotentInspect
Full details of one festival by id (from search_festivals or get_festival_picks): dates, venue and address with coordinates, admission and price, description, organizer, phone, official website, image and the kfestivals page.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Festival id, e.g. 7828d5f4-9b6a-42c8-90bb-3ca13479e6a6 or tour-3368470 | |
| lang | No | Answer language for names, venues and descriptions. Source data is Korean; other languages are machine translations. | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint=false, destructiveHint=false), so the bar is lower. The description still adds genuine context by previewing the payload an agent will receive, including derived fields like coordinates and the kfestivals page link. It omits error behavior for an unknown id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the identity of the tool, with the id-source hint adjacent to the id mention. Every clause is a field or a routing fact; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and discharges it by listing the returned fields. Given a simple two-parameter read tool, that is nearly complete; only failure modes for an invalid or expired id are unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 and the schema already documents both id and lang. The description adds value beyond the schema by stating the provenance of the id value, which the id parameter's schema text does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with explicit scope: 'Full details of one festival by id.' The parenthetical naming search_festivals and get_festival_picks as id sources separates it from the sibling search tools, and the field enumeration ('dates, venue and address with coordinates...') makes the depth distinction concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells the agent exactly where to obtain the required id (search_festivals or get_festival_picks), which is the practical prerequisite for calling this tool. It gives no explicit when-not case and does not reference search_concerts, so the routing picture is slightly incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_festival_picksThis week's festival picks and 2-day routesARead-onlyIdempotentInspect
kfestivals' latest weekly article — the festivals and concerts worth going to this week — and its 'festival trail' 2-day routes that link 2–4 nearby festivals by day. Returns the article text, the listed events with dates and pages, and the article page.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Answer language for names, venues and descriptions. Source data is Korean; other languages are machine translations. | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: the scope is fixed to the current week (no date argument), and the payload includes article text, listed events with dates and pages, and the article page itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence that front-loads the core identity (weekly picks article) before the routes feature and the return contents. Slightly packed with appositive clauses, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of describing return values, which it does at field level. The only meaningful gap for a zero-required-param read tool is behavior when no article exists for the week, which goes unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single optional parameter and schema coverage is 100%, with an explicit note that source data is Korean and non-Korean values are machine translations, plus a default of 'en'. The description contributes nothing about lang, so the baseline 3 for a fully documented single-parameter schema is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (kfestivals' latest weekly article) plus its companion feature ('festival trail' 2-day routes linking 2–4 nearby festivals) and enumerates what comes back. An agent can distinguish it from search_festivals/get_festival as editorial content rather than a query endpoint, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'this week' — the tool is for current-week recommendations — but there is no explicit when-to-use versus search_festivals or get_festival, and no stated exclusion such as 'no date parameter; use search_festivals for other weeks or arbitrary date ranges.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_concertsK-pop and popular-music concerts in KoreaARead-onlyIdempotentInspect
K-pop, idol, band and other popular-music concerts in South Korea registered with KOPIS (the national performing-arts box office database), not yet ended, soonest first. Filter by artist or title keyword, province and dates. Returns dates, venue, poster, the KOPIS page and the kfestivals page.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Answer language for names, venues and descriptions. Source data is Korean; other languages are machine translations. | en |
| limit | No | ||
| query | No | Artist or title keyword, e.g. 'EXO', '아이유', 'jazz' | |
| region | No | Province or metropolitan city: seoul, busan, incheon, daegu, daejeon, gwangju, ulsan, sejong, gyeonggi, gangwon, chungbuk, chungnam, jeonbuk, jeonnam, gyeongbuk, gyeongnam, jeju | |
| date_to | No | Concerts starting on or before this date, YYYY-MM-DD | |
| date_from | No | Concerts running on or after this date, YYYY-MM-DD (default today, KST) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the KOPIS provenance, the 'not yet ended' exclusion filter, soonest-first ordering, and the specific return fields. It says nothing about result volume, pagination, or translation caveats for non-Korean output, which limits it to a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero filler, and the core identification (what, source, scope, ordering) is front-loaded before filters and return values. The return-value sentence earns its place because there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six optional parameters and no output schema, the description covers what an agent needs: data source, default exclusion of ended concerts, ordering, and the shape of returned records. Minor gaps remain around the language parameter's translation behavior and result-set size, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already explains query, region, date_from (default today KST) and date_to. The description only restates the filter axes at a high level and adds no syntax, default, or interaction detail beyond the schema; the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource (K-pop, idol, band and other popular-music concerts in South Korea), a named data source (KOPIS), and a scope rule (not yet ended, soonest first). It implicitly separates itself from search_festivals by restricting to concerts, but never names that sibling or states the boundary, so an agent must infer the concert/festival split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the filter axes (artist/title keyword, province, dates) and the default ordering and 'not yet ended' constraint, which is enough to decide when this tool fits. It stops short of exclusions or naming search_festivals as the alternative for festival-type events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_festivalsSearch festivals in South KoreaARead-onlyIdempotentInspect
Festivals in South Korea that run during a date range (default: today to 30 days ahead, KST), optionally filtered by province, keyword and free admission, soonest first. Returns name, dates, status, region, venue, free/paid, a short summary and the kfestivals page. Exhibitions and shows running longer than 60 days are left out unless include_long_running is true.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Answer language for names, venues and descriptions. Source data is Korean; other languages are machine translations. | en |
| limit | No | ||
| query | No | Keyword in Korean or the answer language, e.g. '불꽃', 'lantern', 'chrysanthemum', '김장' | |
| region | No | Province or metropolitan city: seoul, busan, incheon, daegu, daejeon, gwangju, ulsan, sejong, gyeonggi, gangwon, chungbuk, chungnam, jeonbuk, jeonnam, gyeongbuk, gyeongnam, jeju | |
| date_to | No | End of the date range, YYYY-MM-DD (default 30 days after today, or date_from when only that is given) | |
| date_from | No | Start of the date range, YYYY-MM-DD (default today, KST) | |
| free_only | No | Only festivals with free admission | |
| include_long_running | No | Include exhibitions/shows running longer than 60 days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, closed-world behavior, so the description correctly spends its words elsewhere: default window and timezone, sort order (soonest first), and the 60-day exclusion rule with its override. It omits any note on pagination or what happens when the 30-item cap is hit, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler. Filtering behavior and defaults come first, and the return payload plus exclusion caveat follow, which matches how an agent scans before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With eight optional parameters, no required fields, and no output schema, the description carries the right load: it states defaults, timezone, ordering, and explicitly lists the returned fields so the agent knows what comes back. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the schema already documents lang, query, region, both dates, free_only and include_long_running. The description restates the date defaults and the long-running toggle but adds no format, syntax or edge-case meaning beyond what the schema says; only 'soonest first' adds ordering semantics, and that isn't a parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope — festivals in South Korea running inside a date range — with optional filters and result fields enumerated. It separates itself from search_concerts by resource, but never distinguishes itself from get_festival or get_festival_picks, which also return festival data, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is clear: call it for a date-bounded festival search, with defaults (today to +30 days, KST) and an explicit escape hatch (include_long_running) for exhibitions/shows over 60 days. It stops short of naming alternatives or when-not-to-use cases, e.g. when to prefer get_festival_picks instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_festival - First observed
get_festival_picks - First observed
search_concerts - First observed
search_festivals
Related MCP Connectors
Festivals, shows and exhibitions across South Korea, searchable by date and area. No auth.
Korea travel data: 50K+ places in 13 languages, festivals, crowd forecasts, itineraries
Korean festivals, concerts and festival news from Festival Times (festivaltimes.net). Read-only.
Korea travel & K-pop live data for agents: concerts, Seoul trip packs, crowd, subway, airport.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceProvides access to performance and festival information across South Korea using the KOPIS (Korea Performance Information System) API. Supports multiple platform integrations including KakaoTalk and web APIs through a modular adapter architecture.-
- AlicenseAqualityAmaintenanceProvides music events, concerts, music festivals, nightclubs and other events information.172MIT
- AlicenseAqualityAmaintenanceSeoul-area subway routes in English, Korean, Japanese and Chinese with transfers, boarding direction and fares, plus Korean public holidays and visitor guides. Works offline with no API key.469 npmMIT
- FlicenseAqualityCmaintenanceProvides South Korea tourist congestion and concentration forecasts, quiet-area recommendations, and attraction/festival search via MCP clients using a public data portal key.8-
Glama MCP Gateway
Add one secure layer between your agents and this server.