Skip to main content
Glama
get_orders.py3.52 kB
from fastmcp import Context import httpx from typing import Optional, Literal from config import generate_upbit_token, UPBIT_ACCESS_KEY, API_BASE async def get_orders( market: Optional[str] = None, state: Literal["wait", "done", "cancel"] = "wait", page: int = 1, limit: int = 100, ctx: Optional[Context] = None ) -> list[dict]: """ 주문 목록을 필터링하여 조회합니다. (인증 필요) Upbit의 주문 목록 조회 API 엔드포인트(/v1/orders)에 GET 요청을 보내, 특정 마켓 또는 특정 상태의 주문 목록을 가져옵니다. API 키 설정이 필수적입니다. Args: market (Optional[str]): 조회할 마켓의 코드 (예: "KRW-BTC"). 지정하지 않으면 모든 마켓의 주문을 조회합니다. state (Literal["wait", "done", "cancel"]): 조회할 주문의 상태. - "wait": 미체결 주문 (기본값) - "done": 완료된 주문 (체결 완료) - "cancel": 취소된 주문 page (int): 결과의 페이지 번호. 기본값은 1입니다. limit (int): 한 페이지에 표시할 주문의 수. 기본값은 100입니다. ctx (Context, optional): FastMCP 컨텍스트 객체. 함수 실행 중 정보나 오류를 로깅하는 데 사용됩니다. Returns: list[dict]: - 성공 시: 조회된 주문의 정보를 담은 딕셔너리의 리스트. 리스트의 각 항목은 `get_order`가 반환하는 주문 상세 정보와 유사한 구조를 가집니다. - 실패 시: 오류 정보를 담은 딕셔너리를 포함한 리스트. - `[{"error": "오류 메시지"}]` 형식입니다. Example: >>> # 현재 모든 마켓의 미체결 주문 조회 >>> pending_orders = await get_orders(state="wait") >>> if pending_orders and "error" not in pending_orders[0]: ... print(f"총 {len(pending_orders)}개의 미체결 주문이 있습니다.") ... else: ... print(f"오류 또는 미체결 주문 없음: {pending_orders}") >>> >>> # KRW-BTC 마켓의 체결 완료된 주문 조회 >>> btc_done_orders = await get_orders(market="KRW-BTC", state="done") """ if not UPBIT_ACCESS_KEY: if ctx: ctx.error("API 키가 설정되지 않았습니다. .env 파일에 UPBIT_ACCESS_KEY와 UPBIT_SECRET_KEY를 설정해주세요.") return [{"error": "API 키가 설정되지 않았습니다."}] url = f"{API_BASE}/orders" query_params = { 'state': state, 'page': str(page), 'limit': str(limit) } if market: query_params['market'] = market headers = { "Authorization": f"Bearer {generate_upbit_token(query_params)}" } if ctx: ctx.info(f"주문 내역 조회 중: 상태={state}") async with httpx.AsyncClient() as client: try: res = await client.get(url, params=query_params, headers=headers) if res.status_code != 200: if ctx: ctx.error(f"업비트 API 오류: {res.status_code} - {res.text}") return [{"error": f"업비트 API 오류: {res.status_code} - {res.text}"}] return res.json() except Exception as e: if ctx: ctx.error(f"API 호출 중 오류 발생: {str(e)}") return [{"error": f"API 호출 중 오류 발생: {str(e)}"}]

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/restful3/upbit-mcp-sse'

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