Skip to main content
Glama
README.md
# 동토리 MCP 서버

우리 동네 아이 프로그램 큐레이션 MCP. 도서관·문화센터 등 전국 공공기관의 어린이 프로그램을
부모의 자연어 질문에 맞춰 찾아준다. 카카오 **AGENTIC PLAYER 10** 공모전 출품작.

## 이렇게 물어보세요

- "주말에 5살 아이랑 갈 만한 데 있어?" → 지역을 물어본 뒤 상시 방문 장소 추천
- "수성구에서 무료로 신청할 수 있는 어린이 프로그램 알려줘" → 마감 임박순 신청형 프로그램
- "북부도서관에서 요즘 뭐 해?" → 시설 이름만으로 전국에서 찾아 그곳 프로그램 전부
- "두 번째 거 자세히 알려줘" → 프로그램 상세 (일정·요금·신청 방법·문의처)

## 툴 4개

| 툴 | 역할 |
|---|---|
| `find_drop_in_places` | 신청 없이 방문하는 상시 개방 장소 (운영시간 중심) |
| `find_sign_up_programs` | 신청·접수가 필요한 프로그램 (마감일 중심) |
| `find_place_programs` | 특정 시설 이름으로 그곳의 프로그램 전부 (전국 검색, 동명 시설은 되묻기) |
| `get_program_detail` | 프로그램 1건 상세 |

## 동작 특징

- **지역**: 시/도는 17값 enum, 동네는 자유 입력을 서버가 정규화 ("전주" → 전주시 덕진·완산구,
  "센텀시티" → 해운대구). 지역을 안 주면 조용히 추측하지 않고 되묻는다.
- **무료 필터**: 요금 정보가 없는 프로그램은 숨기지 않고 "요금 미확인"으로 표시.
- **포용**: 발달장애 배려 시설·프로그램을 위로 올려서 보여준다 (제외하지 않음).
- **단정 금지**: 데이터로 확인 안 되는 것("지금 열려 있어요", "주말 가능")은 말하지 않고
  전화·홈페이지 확인을 안내한다.

## 실행

```bash
python -m venv .venv && .venv/bin/pip install -r requirements.txt
.venv/bin/python server.py                       # Streamable HTTP, :8080 /mcp
MCP_TRANSPORT=stdio .venv/bin/python server.py   # stdio
```

`Dockerfile` 포함 (linux/amd64).