Skip to main content
Glama
acorn025

Parking Information MCP Server

by acorn025
test_lotte_tower.py5.36 kB
""" 잠실 롯데타워 근처 주차장 검색 테스트 수정된 서버 코드 테스트 """ import sys import os sys.path.insert(0, 'src') from dotenv import load_dotenv load_dotenv() def test_lotte_tower_parking(): """잠실 롯데타워 근처 주차장 검색 테스트""" print("=" * 70) print("잠실 롯데타워 근처 주차장 검색 테스트") print("=" * 70) test_address = "서울 송파구 올림픽로 300" # 롯데월드타워 정확한 주소 search_radius = 1000 # 1km print(f"\n[1단계] 주소 -> 좌표 변환") print(f"주소: {test_address}") print("-" * 70) try: from api_clients import KakaoLocalClient # 주소를 좌표로 변환 kakao_client = KakaoLocalClient() coord_response = kakao_client.address_to_coordinates(test_address) if coord_response.get("status") != "success": print(f"[X] 좌표 변환 실패: {coord_response}") return coord_data = coord_response.get("data", {}) coord_docs = coord_data.get("documents", []) if not coord_docs: print("[X] 주소를 찾을 수 없습니다.") return first_result = coord_docs[0] lat = float(first_result.get('y')) lng = float(first_result.get('x')) print(f"[OK] 좌표 변환 성공!") print(f" 위도: {lat}") print(f" 경도: {lng}") print(f" 주소: {first_result.get('address_name', 'N/A')}") # 주변 주차장 검색 (수정된 서버 로직 시뮬레이션) print(f"\n[2단계] 주변 주차장 검색 (카카오 API)") print(f"검색 반경: {search_radius}m") print("-" * 70) parking_response = kakao_client.search_parking_nearby( latitude=lat, longitude=lng, radius=search_radius, size=15 ) if parking_response.get("status") != "success": print(f"[X] 주차장 검색 실패: {parking_response}") return parking_data = parking_response.get("data", {}) parking_docs = parking_data.get("documents", []) print(f"[OK] 주변 주차장 {len(parking_docs)}개 발견!\n") # 서버의 파싱 함수 시뮬레이션 from src.server import _parse_kakao_parking_response, _get_region, _format_parking_info from api_clients import SeoulDataClient, GyeonggiDataClient parking_list = _parse_kakao_parking_response(parking_data) print(f"[3단계] 주차장 정보 포맷팅 및 실시간 정보 추가") print("-" * 70) formatted_parkings = [] for i, parking in enumerate(parking_list[:10], 1): # 상위 10개만 address = parking.get("address", "") or parking.get("road_address", "") region = _get_region(address) print(f"\n--- 주차장 {i} ---") print(f"이름: {parking.get('name', 'N/A')}") print(f"주소: {address}") print(f"거리: {parking.get('distance', 0)}m") print(f"지역: {region}") # 실시간 정보 조회 (서울인 경우) realtime_info = None if region == "seoul": print(f" → 서울 지역: 실시간 정보 조회 시도...") # 실제로는 _get_realtime_info_seoul 호출하지만 여기서는 간단히 표시만 realtime_info = None # 실제 구현에서는 조회 elif region == "gyeonggi": print(f" → 경기 지역: 실시간 정보 조회 시도...") realtime_info = None else: print(f" → 기타 지역: 기본 정보만 제공") # 표준 형식으로 변환 standard_parking = { "name": parking.get("name", ""), "address": address, "total_spots": None, "fee": parking.get("category", ""), "distance": parking.get("distance", 0), "phone": parking.get("phone", ""), } formatted_parking = _format_parking_info(standard_parking, region, realtime_info) print(f"포맷팅 결과:") print(f" - 이름: {formatted_parking.get('name')}") print(f" - 주소: {formatted_parking.get('address')}") print(f" - 실시간 주차 가능: {formatted_parking.get('available_spots')}") print(f" - 총 주차 대수: {formatted_parking.get('total_spots')}") if formatted_parking.get('notice'): print(f" - 안내: {formatted_parking.get('notice')}") formatted_parkings.append(formatted_parking) print(f"\n[테스트 완료]") print(f"총 {len(parking_list)}개의 주차장을 찾았습니다.") print(f"포맷팅된 주차장: {len(formatted_parkings)}개") print("=" * 70) except Exception as e: print(f"\n[X] 오류 발생: {str(e)}") import traceback traceback.print_exc() if __name__ == "__main__": test_lotte_tower_parking()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/acorn025/parking-mcp2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server