Festivals, shows and exhibitions across South Korea, searchable by date and area. No auth.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
한 문장으로 물으면(예: 이번 주말 부산 불꽃축제, 来週の土曜日 ソウル 展示, free concerts in Seoul on 2026-11-07) 그 말에서 날짜, 지역, 찾는 낱말을 읽어 행사를 찾습니다. 한국어, 영어, 일본어, 중국어로 물을 수 있습니다. 사이트 채팅과 같은 규칙으로 읽고 모델은 부르지 않으며, 어떻게 읽었는지 read에 적습니다. 날짜가 없으면 오늘부터 이번 주말까지 찾고, 그 사이에 없으면 60일 안에서 찾습니다. 날짜와 지역을 이미 알면 search_events가 더 정확합니다.
묻고 싶은 말 한 문장(200자 이하). 날짜는 이번 주말, 11월 3일, 2026-11-07처럼 씁니다.
한 번에 받을 최대 개수. 1부터 20까지이고 기본값은 10입니다.
한 문장으로 물으면(예: 이번 주말 부산 불꽃축제, 来週の土曜日 ソウル 展示, free concerts in Seoul on 2026-11-07) 그 말에서 날짜, 지역, 찾는 낱말을 읽어 행사를 찾습니다. 한국어, 영어, 일본어, 중국어로 물을 수 있습니다. 사이트 채팅과 같은 규칙으로 읽고 모델은 부르지 않으며, 어떻게 읽었는지 read에 적습니다. 날짜가 없으면 오늘부터 이번 주말까지 찾고, 그 사이에 없으면 60일 안에서 찾습니다. 날짜와 지역을 이미 알면 search_events가 더 정확합니다.
| Argument | Type | Description |
|---|---|---|
| limit | integer | 한 번에 받을 최대 개수. 1부터 20까지이고 기본값은 10입니다. |
| question* | string | 묻고 싶은 말 한 문장(200자 이하). 날짜는 이번 주말, 11월 3일, 2026-11-07처럼 씁니다. |
{
"type": "object",
"required": [
"question"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "한 번에 받을 최대 개수. 1부터 20까지이고 기본값은 10입니다."
},
"question": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "묻고 싶은 말 한 문장(200자 이하). 날짜는 이번 주말, 11월 3일, 2026-11-07처럼 씁니다."
}
},
"additionalProperties": false
}행사 id로 일정, 장소, 요금, 예약 안내, 출처 링크를 가져옵니다.
| Argument | Type | Description |
|---|---|---|
| id* | string | search_events 결과에 있는 행사 id. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "search_events 결과에 있는 행사 id."
}
},
"additionalProperties": false
}지금 담긴 행사 자료의 날짜 범위와 마지막 수집 시각을 알려 줍니다. 검색 결과가 비었을 때 먼저 확인하세요.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}보낸 제보가 검토 중인지, 반영됐는지, 반려됐는지 알려 줍니다. 반려됐으면 운영자가 적은 사유도 함께 줍니다. 제보할 때 받은 reportId와 editKey가 있어야 합니다.
| Argument | Type | Description |
|---|---|---|
| editKey* | string | 제보할 때 받은 editKey. |
| reportId* | string | 확인할 제보의 reportId. |
{
"type": "object",
"required": [
"reportId",
"editKey"
],
"properties": {
"editKey": {
"type": "string",
"maxLength": 64,
"description": "제보할 때 받은 editKey."
},
"reportId": {
"type": "string",
"maxLength": 36,
"description": "확인할 제보의 reportId."
}
},
"additionalProperties": false
}지도에 있는 행사의 일정, 장소, 요금, 예약 방식이 바뀌었거나 행사가 취소됐다고 알립니다. 바뀐 경우에는 운영자가 그대로 반영할 수 있도록 바뀐 값을 인자로 함께 넣습니다. 운영자가 승인한 뒤에만 반영합니다. 사용자가 제보하겠다고 할 때만 부르세요.
| Argument | Type | Description |
|---|---|---|
| fee | string | 요금이 바뀌었을 때 지금 요금. free는 무료, paid는 유료입니다. |
| url* | string | 바뀐 내용을 확인할 수 있는 http 또는 https 주소. |
| city | string | 새 장소의 시·도 id. 장소가 바뀌었을 때 넣습니다. |
| type* | string | change는 일정, 장소, 요금, 예약 방식이 바뀐 경우이고 cancel은 행사가 취소된 경우입니다. change면 바뀐 값을 startDate, place, fee 같은 인자로 함께 넣습니다. |
| place | string | 새 장소 이름. 장소가 바뀌었으면 city, district, address, latitude, longitude와 함께 넣습니다. |
| address | string | 새 장소의 도로명 주소. 장소가 바뀌었을 때 넣습니다. |
| booking | string | 예약 방식이 바뀌었을 때 지금 방식. none은 예약 없이 입장, optional은 예약을 받지만 필수는 아님, required는 예약 필수입니다. |
| editKey | string | 제보를 처음 보냈을 때 받은 editKey. reportId와 함께 넣습니다. |
| endDate | string | 새 끝 날짜(YYYY-MM-DD). 날짜가 바뀌었으면 startDate와 함께 넣습니다. |
날짜, 지역, 검색어로 공개 행사를 찾습니다. 날짜를 비우면 이번 주말(한국 시간) 행사를 찾습니다. 결과가 limit보다 많으면 nextOffset을 offset에 넣어 이어서 받습니다. 검색어가 든 행사가 없으면 뜻이 비슷한 말로 한 번 더 찾고, 그때 쓴 말을 related에 적습니다.
| Argument | Type | Description |
|---|---|---|
| area | string | 지역 이름. 시·도(서울, 부산)나 시·군·구(마포구, 전주시)를 넣습니다. |
| free | boolean | true면 무료 행사만, false면 유료 행사만 찾습니다. 비우면 요금을 따지지 않습니다. |
| tags | array | 이 태그가 모두 붙은 행사만 찾습니다. 태그는 행사 글에 적힌 말에서 읽은 것이라, 없으면 "아님"이 아니라 "모름"입니다. 쓸 수 있는 이름: kids, family, teens, adults, seniors, pets, indoor, outdoor, watch, hands-on, food, market, walk, learn, heritage, nature, science, lights, fireworks, books, seasonal, halloween, christmas, year-end, new-year, evening, free, partly-paid, paid, book-ahead, walk-in. |
| limit | integer | 한 번에 받을 최대 개수. 1부터 50까지이고 기본값은 20입니다. |
| query | string | 행사 이름, 장소, 분야, 주최에서 찾을 낱말. |
| offset | integer | 앞에서 건너뛸 개수. 이전 결과의 nextOffset을 넣으면 다음 묶음을 받습니다. 기본값은 0입니다. |
| endDate | string | 끝 날짜(YYYY-MM-DD). 비우면 시작 날짜 하루만 찾고, 시작 날짜도 비었으면 이번 주말 마지막 날까지 찾습니다. |
| startDate | string |
지도에 없는 행사를 운영자 검토 대기열에 올립니다. 운영자가 그대로 승인할 수 있도록 일정, 분야, 장소 이름·주소·좌표, 설명, 확인용 url을 모두 넣어야 하고, 승인하기 전에는 공개되지 않습니다. 이미 지도에 있는 행사면 새로 올리지 않고 그 행사를 알려 줍니다. 사용자가 제보하겠다고 할 때만 부르세요.
| Argument | Type | Description |
|---|---|---|
| fee | string | free는 무료, paid는 유료, unknown은 모름입니다. 기본값은 unknown입니다. |
| url* | string | 운영자가 행사를 확인할 수 있는 http 또는 https 주소. 주최 측 안내 페이지가 가장 좋습니다. |
| city* | string | 행사가 열리는 시·도 id(seoul, busan 등). |
| kind* | string | 행사 종류. 맞는 값이 없으면 기타를 고르고 kindOther에 종류를 적습니다. |
| place* | string | 장소 이름(두 글자 이상). |
| title* | string | 행사 이름. 두 글자 이상. |
| topic* | string | 분야나 주제(예: 사진, 재즈). |
| address* | string | 장소의 도로명 주소. |
| booking | string | none은 예약 없이 입장, optional은 예약을 받지만 필수는 아님, required는 예약 필수, unknown은 모름입니다. 기본값은 unknown입니다. |
| endTime |
| string |
| 새 끝 시간(HH:MM, 24시간제). |
| eventId* | string | 바뀐 행사의 id. search_events나 get_event 결과에 있습니다. |
| district | string | 새 장소의 시·군·구 이름. 장소가 바뀌었을 때 넣습니다. |
| latitude | number | 새 장소의 위도(WGS84). 장소가 바뀌었을 때 넣습니다. |
| reportId | string | 이미 보낸 제보를 고칠 때 넣는 reportId. editKey와 함께 넣으면 새로 접수하지 않고 그 제보를 고칩니다. 검토 전이면 내용이 바로 바뀌고, 반려된 제보는 고친 내용으로 다시 접수합니다. |
| longitude | number | 새 장소의 경도(WGS84). 장소가 바뀌었을 때 넣습니다. |
| startDate | string | 새 시작 날짜(YYYY-MM-DD). 날짜가 바뀌었으면 endDate와 함께 넣습니다. |
| startTime | string | 새 시작 시간(HH:MM, 24시간제). |
| description* | string | 무엇이 어떻게 바뀌었는지 10자 이상. 예: 10월 12일 공연이 10월 19일로 미뤄졌습니다. |
{
"type": "object",
"required": [
"eventId",
"type",
"description",
"url"
],
"properties": {
"fee": {
"enum": [
"free",
"paid"
],
"type": "string",
"description": "요금이 바뀌었을 때 지금 요금. free는 무료, paid는 유료입니다."
},
"url": {
"type": "string",
"format": "uri",
"maxLength": 300,
"description": "바뀐 내용을 확인할 수 있는 http 또는 https 주소."
},
"city": {
"enum": [
"seoul",
"busan",
"daegu",
"incheon",
"gwangju",
"daejeon",
"ulsan",
"sejong",
"gyeonggi",
"gangwon",
"chungbuk",
"chungnam",
"jeonbuk",
"jeonnam",
"gyeongbuk",
"gyeongnam",
"jeju"
],
"type": "string",
"description": "새 장소의 시·도 id. 장소가 바뀌었을 때 넣습니다."
},
"type": {
"enum": [
"change",
"cancel"
],
"type": "string",
"description": "change는 일정, 장소, 요금, 예약 방식이 바뀐 경우이고 cancel은 행사가 취소된 경우입니다. change면 바뀐 값을 startDate, place, fee 같은 인자로 함께 넣습니다."
},
"place": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "새 장소 이름. 장소가 바뀌었으면 city, district, address, latitude, longitude와 함께 넣습니다."
},
"address": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "새 장소의 도로명 주소. 장소가 바뀌었을 때 넣습니다."
},
"booking": {
"enum": [
"none",
"optional",
"required"
],
"type": "string",
"description": "예약 방식이 바뀌었을 때 지금 방식. none은 예약 없이 입장, optional은 예약을 받지만 필수는 아님, required는 예약 필수입니다."
},
"editKey": {
"type": "string",
"maxLength": 64,
"description": "제보를 처음 보냈을 때 받은 editKey. reportId와 함께 넣습니다."
},
"endDate": {
"type": "string",
"format": "date",
"description": "새 끝 날짜(YYYY-MM-DD). 날짜가 바뀌었으면 startDate와 함께 넣습니다."
},
"endTime": {
"type": "string",
"pattern": "^(?:[01][0-9]|2[0-3]):[0-5][0-9]$",
"description": "새 끝 시간(HH:MM, 24시간제)."
},
"eventId": {
"type": "string",
"maxLength": 200,
"description": "바뀐 행사의 id. search_events나 get_event 결과에 있습니다."
},
"district": {
"type": "string",
"maxLength": 20,
"minLength": 2,
"description": "새 장소의 시·군·구 이름. 장소가 바뀌었을 때 넣습니다."
},
"latitude": {
"type": "number",
"maximum": 39,
"minimum": 33,
"description": "새 장소의 위도(WGS84). 장소가 바뀌었을 때 넣습니다."
},
"reportId": {
"type": "string",
"maxLength": 36,
"description": "이미 보낸 제보를 고칠 때 넣는 reportId. editKey와 함께 넣으면 새로 접수하지 않고 그 제보를 고칩니다. 검토 전이면 내용이 바로 바뀌고, 반려된 제보는 고친 내용으로 다시 접수합니다."
},
"longitude": {
"type": "number",
"maximum": 132,
"minimum": 124,
"description": "새 장소의 경도(WGS84). 장소가 바뀌었을 때 넣습니다."
},
"startDate": {
"type": "string",
"format": "date",
"description": "새 시작 날짜(YYYY-MM-DD). 날짜가 바뀌었으면 endDate와 함께 넣습니다."
},
"startTime": {
"type": "string",
"pattern": "^(?:[01][0-9]|2[0-3]):[0-5][0-9]$",
"description": "새 시작 시간(HH:MM, 24시간제)."
},
"description": {
"type": "string",
"maxLength": 500,
"minLength": 10,
"description": "무엇이 어떻게 바뀌었는지 10자 이상. 예: 10월 12일 공연이 10월 19일로 미뤄졌습니다."
}
},
"additionalProperties": false
}| 시작 날짜(YYYY-MM-DD). 비우면 이번 주말 첫날입니다. |
{
"type": "object",
"properties": {
"area": {
"type": "string",
"maxLength": 100,
"description": "지역 이름. 시·도(서울, 부산)나 시·군·구(마포구, 전주시)를 넣습니다."
},
"free": {
"type": "boolean",
"description": "true면 무료 행사만, false면 유료 행사만 찾습니다. 비우면 요금을 따지지 않습니다."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "이 태그가 모두 붙은 행사만 찾습니다. 태그는 행사 글에 적힌 말에서 읽은 것이라, 없으면 \"아님\"이 아니라 \"모름\"입니다. 쓸 수 있는 이름: kids, family, teens, adults, seniors, pets, indoor, outdoor, watch, hands-on, food, market, walk, learn, heritage, nature, science, lights, fireworks, books, seasonal, halloween, christmas, year-end, new-year, evening, free, partly-paid, paid, book-ahead, walk-in.",
"uniqueItems": true
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "한 번에 받을 최대 개수. 1부터 50까지이고 기본값은 20입니다."
},
"query": {
"type": "string",
"maxLength": 100,
"description": "행사 이름, 장소, 분야, 주최에서 찾을 낱말."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 5000,
"minimum": 0,
"description": "앞에서 건너뛸 개수. 이전 결과의 nextOffset을 넣으면 다음 묶음을 받습니다. 기본값은 0입니다."
},
"endDate": {
"type": "string",
"format": "date",
"description": "끝 날짜(YYYY-MM-DD). 비우면 시작 날짜 하루만 찾고, 시작 날짜도 비었으면 이번 주말 마지막 날까지 찾습니다."
},
"startDate": {
"type": "string",
"format": "date",
"description": "시작 날짜(YYYY-MM-DD). 비우면 이번 주말 첫날입니다."
}
},
"additionalProperties": false
}| editKey | string | 제보를 처음 보냈을 때 받은 editKey. reportId와 함께 넣습니다. |
| endDate* | string | 끝 날짜(YYYY-MM-DD). 하루짜리 행사면 startDate와 같은 날짜를 넣습니다. 이미 끝난 행사는 받지 않습니다. |
| endTime | string | 끝 시간(HH:MM, 24시간제). 모르면 비웁니다. |
| district* | string | 시·군·구 이름(종로구, 해운대구, 수원시). 서울은 25개 구 이름 중 하나여야 합니다. |
| latitude* | number | 장소의 위도(WGS84, 예: 37.5796). 지도에 핀을 꽂는 데 씁니다. |
| reportId | string | 이미 보낸 제보를 고칠 때 넣는 reportId. editKey와 함께 넣으면 새로 접수하지 않고 그 제보를 고칩니다. 검토 전이면 내용이 바로 바뀌고, 반려된 제보는 고친 내용으로 다시 접수합니다. |
| kindOther | string | kind가 기타일 때 적는 종류 이름(두 글자 이상). |
| longitude* | number | 장소의 경도(WGS84, 예: 126.9770). |
| startDate* | string | 시작 날짜(YYYY-MM-DD, 한국 시간). |
| startTime | string | 시작 시간(HH:MM, 24시간제). 모르면 비웁니다. |
| description* | string | 행사 설명 10자 이상. 출처에서 확인한 대상이나 프로그램을 적습니다. 승인되면 행사 페이지의 설명으로 쓰입니다. |
| locationMode | string | offline은 현장 행사, hybrid는 현장과 온라인을 함께 하는 행사입니다. 온라인으로만 열리는 행사는 지도에 올릴 수 없어 받지 않습니다. 기본값은 offline입니다. |
{
"type": "object",
"required": [
"title",
"kind",
"topic",
"startDate",
"endDate",
"city",
"district",
"place",
"address",
"latitude",
"longitude",
"url",
"description"
],
"properties": {
"fee": {
"enum": [
"unknown",
"free",
"paid"
],
"type": "string",
"default": "unknown",
"description": "free는 무료, paid는 유료, unknown은 모름입니다. 기본값은 unknown입니다."
},
"url": {
"type": "string",
"format": "uri",
"maxLength": 300,
"description": "운영자가 행사를 확인할 수 있는 http 또는 https 주소. 주최 측 안내 페이지가 가장 좋습니다."
},
"city": {
"enum": [
"seoul",
"busan",
"daegu",
"incheon",
"gwangju",
"daejeon",
"ulsan",
"sejong",
"gyeonggi",
"gangwon",
"chungbuk",
"chungnam",
"jeonbuk",
"jeonnam",
"gyeongbuk",
"gyeongnam",
"jeju"
],
"type": "string",
"description": "행사가 열리는 시·도 id(seoul, busan 등)."
},
"kind": {
"enum": [
"전시",
"공연",
"축제",
"마켓",
"강연",
"체험",
"모임",
"상영회",
"워크숍",
"팝업",
"스포츠",
"기타"
],
"type": "string",
"description": "행사 종류. 맞는 값이 없으면 기타를 고르고 kindOther에 종류를 적습니다."
},
"place": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "장소 이름(두 글자 이상)."
},
"title": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "행사 이름. 두 글자 이상."
},
"topic": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "분야나 주제(예: 사진, 재즈)."
},
"address": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "장소의 도로명 주소."
},
"booking": {
"enum": [
"unknown",
"none",
"optional",
"required"
],
"type": "string",
"default": "unknown",
"description": "none은 예약 없이 입장, optional은 예약을 받지만 필수는 아님, required는 예약 필수, unknown은 모름입니다. 기본값은 unknown입니다."
},
"editKey": {
"type": "string",
"maxLength": 64,
"description": "제보를 처음 보냈을 때 받은 editKey. reportId와 함께 넣습니다."
},
"endDate": {
"type": "string",
"format": "date",
"description": "끝 날짜(YYYY-MM-DD). 하루짜리 행사면 startDate와 같은 날짜를 넣습니다. 이미 끝난 행사는 받지 않습니다."
},
"endTime": {
"type": "string",
"pattern": "^(?:[01][0-9]|2[0-3]):[0-5][0-9]$",
"description": "끝 시간(HH:MM, 24시간제). 모르면 비웁니다."
},
"district": {
"type": "string",
"maxLength": 20,
"minLength": 2,
"description": "시·군·구 이름(종로구, 해운대구, 수원시). 서울은 25개 구 이름 중 하나여야 합니다."
},
"latitude": {
"type": "number",
"maximum": 39,
"minimum": 33,
"description": "장소의 위도(WGS84, 예: 37.5796). 지도에 핀을 꽂는 데 씁니다."
},
"reportId": {
"type": "string",
"maxLength": 36,
"description": "이미 보낸 제보를 고칠 때 넣는 reportId. editKey와 함께 넣으면 새로 접수하지 않고 그 제보를 고칩니다. 검토 전이면 내용이 바로 바뀌고, 반려된 제보는 고친 내용으로 다시 접수합니다."
},
"kindOther": {
"type": "string",
"maxLength": 30,
"description": "kind가 기타일 때 적는 종류 이름(두 글자 이상)."
},
"longitude": {
"type": "number",
"maximum": 132,
"minimum": 124,
"description": "장소의 경도(WGS84, 예: 126.9770)."
},
"startDate": {
"type": "string",
"format": "date",
"description": "시작 날짜(YYYY-MM-DD, 한국 시간)."
},
"startTime": {
"type": "string",
"pattern": "^(?:[01][0-9]|2[0-3]):[0-5][0-9]$",
"description": "시작 시간(HH:MM, 24시간제). 모르면 비웁니다."
},
"description": {
"type": "string",
"maxLength": 800,
"minLength": 10,
"description": "행사 설명 10자 이상. 출처에서 확인한 대상이나 프로그램을 적습니다. 승인되면 행사 페이지의 설명으로 쓰입니다."
},
"locationMode": {
"enum": [
"offline",
"hybrid"
],
"type": "string",
"default": "offline",
"description": "offline은 현장 행사, hybrid는 현장과 온라인을 함께 하는 행사입니다. 온라인으로만 열리는 행사는 지도에 올릴 수 없어 받지 않습니다. 기본값은 offline입니다."
}
},
"additionalProperties": false
}