"""MCP 서버 테스트 스크립트"""
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def test_mcp_server():
"""MCP 서버의 Tools를 테스트합니다"""
# MCP 서버 연결
server_params = StdioServerParameters(
command="python3",
args=["-m", "src.server"],
env=None
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
# 서버 초기화
await session.initialize()
print("✅ MCP 서버 연결 성공!\n")
# 사용 가능한 Tools 목록
tools = await session.list_tools()
print(f"📋 사용 가능한 Tools ({len(tools.tools)}개):\n")
for tool in tools.tools:
print(f" • {tool.name}: {tool.description}")
print("\n" + "="*60 + "\n")
# Tool 테스트
print("🧪 Tools 테스트 시작\n")
# 1. 오늘 예약 조회
print("1. get_today_reservations 테스트:")
result = await session.call_tool("get_today_reservations", {})
print(result.content[0].text)
print()
# 2. 이번 주 예약 조회
print("2. get_week_reservations 테스트:")
result = await session.call_tool("get_week_reservations", {})
print(result.content[0].text)
print()
# 3. 중복 예약 체크
print("3. check_duplicate_reservations 테스트:")
result = await session.call_tool("check_duplicate_reservations", {})
print(result.content[0].text)
print()
# 4. 매출 요약
print("4. get_revenue_summary 테스트:")
result = await session.call_tool("get_revenue_summary", {"period": "month"})
print(result.content[0].text)
print()
# 5. 플랫폼 수수료 계산
print("5. calculate_platform_fees 테스트:")
result = await session.call_tool("calculate_platform_fees", {})
print(result.content[0].text)
print()
# 6. 블랙리스트 조회
print("6. get_blacklist 테스트:")
result = await session.call_tool("get_blacklist", {})
print(result.content[0].text)
print()
# 7. 노쇼 고객 조회
print("7. get_noshow_customers 테스트:")
result = await session.call_tool("get_noshow_customers", {"min_count": 1})
print(result.content[0].text)
print()
print("✅ 모든 테스트 완료!")
if __name__ == "__main__":
asyncio.run(test_mcp_server())