Skip to main content
Glama

오다 주웠다 MCP

약속 장소로 이동 중인 사용자를 위해 지금 살 수 있는 선물과 픽업 동선을 추천하는 PlayMCP 제출용 MCP 서버 프로젝트입니다.

Concept

"오다 주웠다처럼 자연스럽게 건넬 수 있도록, AI가 선물 후보와 픽업 경로를 한 번에 짜주는 MCP"

사용자는 출발지, 목적지, 도착 제한 시간, 예산, 관계, 상황을 자연어로 말합니다. AI는 이 MCP의 도구를 호출해 선물 후보, 픽업 매장, 경유 추가 시간, 실패 리스크, 짧은 메시지를 함께 제안합니다.

Related MCP server: sendameal-mcp

Why MCP

일반 AI 답변은 "좋아 보이는 선물"을 말할 수 있지만, 지금 상황에서 실제로 들를 수 있는지 판단하지 못합니다. 이 MCP는 추천을 다음 데이터와 계산으로 검증합니다.

  • 선물 후보 데이터

  • 픽업 가능 매장 데이터

  • 출발지-매장-목적지 경유 시간

  • 약속 시간까지 남은 여유

  • 관계/상황/예산별 실패 리스크

Current Strategy

카카오 선물하기 MCP/API가 없더라도 동작하도록 fixture provider로 시작합니다. 나중에 카카오 연동이 가능해지면 provider 구현만 교체합니다.

MCP Tools
  -> RushGiftService
    -> GiftProvider
    -> PickupStoreProvider
    -> PlaceProvider
    -> RouteProvider

초기 provider:

  • FixtureGiftProvider: 샘플 선물 데이터

  • FixturePickupStoreProvider: 샘플 픽업 매장 데이터

  • MockRouteProvider: 좌표 기반 경유 시간 추정

교체 대상 provider:

  • KakaoGiftProvider

  • KakaoLocalProvider

  • KakaoMobilityRouteProvider

  • WebSearchGiftProvider

Tools

  • plan_rush_gift: 상황을 받아 추천, 픽업, 경유 시간, 메시지를 한 번에 반환

  • recommend_gifts: 관계/상황/예산 기준으로 선물 후보 추천

  • find_pickup_options: 선물 후보별 픽업 매장과 경유 가능성 계산

  • draft_gift_message: 관계와 상황에 맞는 짧은 카드 메시지 생성

PlayMCP

Submission endpoint:

https://rush-gift-mcp.vercel.app/mcp

Health check:

https://rush-gift-mcp.vercel.app/health

PlayMCP gateway:

https://playmcp.kakao.com/mcp

The submission endpoint is this server. The PlayMCP gateway is Kakao's proxy for approved MCP servers in a user's toolbox and requires a PlayMCP access token.

Demo Prompt

지금 강남역에서 판교역으로 여자친구 생일 약속 가는 중이야.
35분 안에 도착해야 하고 예산은 3만원이야.
가는 길에 픽업 가능한 선물 추천해줘.

30분으로 요청하면 현재 샘플 경로 기준으로는 픽업이 어렵다는 fallback을 반환합니다. 이 케이스는 "무조건 추천"이 아니라 불가능한 상황을 솔직하게 말하는 데모로 사용합니다.

Quick Start

Local MCP Inspector:

uv sync
uv run mcp dev main.py

MCP Inspector가 열리면 다음 도구를 호출할 수 있습니다.

  • plan_rush_gift: 선물 추천, 픽업 매장, 경유 가능성, 메시지를 한 번에 반환

  • recommend_gifts: 관계/상황/예산 기준으로 선물 후보 추천

  • find_pickup_options: 선물 후보별 픽업 매장과 경유 가능성 계산

  • draft_gift_message: 관계와 상황에 맞는 짧은 카드 메시지 생성

stdio 서버로 직접 실행할 때:

uv run python main.py

HTTP MCP endpoint로 실행할 때:

MCP_TRANSPORT=streamable-http FASTMCP_HOST=127.0.0.1 PORT=8000 uv run python main.py

Local URLs:

  • MCP endpoint: http://127.0.0.1:8000/mcp

  • Health check: http://127.0.0.1:8000/health

Docker:

docker build -t rush-gift-mcp .
docker run --rm -p 8000:8000 rush-gift-mcp

Vercel:

npx vercel

After deployment, use:

https://<production-domain>/mcp

If PlayMCP cannot load tools from the Vercel URL, deploy the same code to a container/always-on host with the Dockerfile.

테스트:

uv run pytest

Documentation

Development Status

Implemented:

  • fixture-backed gift, place, store, and route providers

  • transparent scoring for gift fit and pickup feasibility

  • four MCP tools in main.py

  • unit tests for recommendation, fallback, budget filtering, pickup options, and MCP tool registration

Next:

  • deploy the Dockerized HTTP MCP server

  • replace fixture providers with Kakao/web providers when available

Available Tools

4 tools
draft_gift_messageA
Read-onlyIdempotent

Drafts a short gift card message with Oda Juwotda(오다 주웠다) that fits the gift, relationship, occasion, and tone.

Inputs: occasion (required), gift_name (required), relationship (required), tone. Returns: object

find_pickup_optionsA
Read-onlyIdempotent

Finds pickup stores and detour times with Oda Juwotda(오다 주웠다) for gifts that are already chosen (gift_ids).

Use this as a follow-up after narrowing candidates with recommend_gifts. When origin, destination, and remaining time are all known from the start, plan_rush_gift alone is enough.

Inputs: origin (required), gift_ids (required), destination (required), minutes_until_meeting (required), +3 more. Returns: object

plan_rush_giftA
Read-onlyIdempotent

Plans a last-minute gift pickup with Oda Juwotda(오다 주웠다).

Use this tool whenever the user gives an origin, a destination, and the minutes left before a meeting. It returns everything in one call: gift recommendations, pickup stores near the destination, detour travel time, whether the user can still arrive on time, and a short gift message. If the user mentions a route or a meeting time, call this tool instead of recommend_gifts.

Inputs: origin (required), occasion (required), budget_krw (required), destination (required), +7 more. Returns: object

recommend_giftsA
Read-onlyIdempotent

Recommends gift ideas with Oda Juwotda(오다 주웠다) — ideas only.

Returns gift candidates matched to relationship, occasion, budget, preferences, and constraints. It does not compute pickup stores or travel time. If origin, destination, or remaining minutes are available, call plan_rush_gift instead of this tool.

Inputs: occasion (required), budget_krw (required), relationship (required), limit, +2 more. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    The four tools are clearly separated by intent: drafting a message, planning a full rush-gift pickup, recommending gift ideas, and finding pickup options for chosen gifts. plan_rush_gift is the comprehensive workflow, while the others are targeted components, and the descriptions explicitly state when each should be used instead of overlapping alternatives.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun snake_case pattern: draft_gift_message, plan_rush_gift, recommend_gifts, find_pickup_options. The verbs clearly express the action and the nouns make the target object obvious.

    Tool Count5/5

    Four tools is a well-scoped size for this niche domain. Each tool covers a distinct stage of the workflow without bloat, and plan_rush_gift earns its place as a combined entry point for full-information scenarios.

    Completeness5/5

    The tool set covers the full rush-gift workflow: gift idea generation, pickup logistics, travel feasibility, and gift message drafting. plan_rush_gift aggregates the complete path, while the standalone tools handle partial-information cases, leaving no obvious dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that enables AI assistants to search for alcohol products, manage shopping carts, and place orders on Drizly. It uses browser automation to check product availability, discover local stores, and track delivery status.
      12
      13 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for SendaMeal.com enabling AI assistants to search gift meal products, filter by dietary restrictions, and get occasion-based recommendations. Powered by Cloudflare Workers and AutoRAG.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that connects AI assistants to the Wonderkraftz Premium Gifting Studio, enabling product browsing, personalized gift recommendations, cart management, and checkout through natural language.
      12
      54 npm
      MIT