Skip to main content
Glama

Upbit MCP SSE Server

by restful3
main.py4.28 kB
# main.py print("DEBUG: main.py execution started", flush=True) # 로그 추가 from mcp.server.fastmcp import FastMCP, Context # FastMCP 1.0.0 권장 import 경로 # from config import UPBIT_ACCESS_KEY, UPBIT_SECRET_KEY, API_BASE # 일단 주석 처리 # import httpx # dummy_tool에 필요 없으면 주석 처리 가능 -> 이미 활성화 됨 import asyncio # import uvicorn # uvicorn 직접 실행 안 함 print("DEBUG: Imports in main.py finished", flush=True) # 로그 추가 from tools.technical_analysis import technical_analysis # technical_analysis 주석 해제 from tools.backtesting import backtesting # 백테스팅 툴 추가 from tools.generate_chart_image import generate_chart_image # 차트 생성 툴 추가 from tools.generate_backtest_chart import generate_backtest_chart # 백테스팅 차트 생성 툴 추가 # --- 모든 외부 툴, 프롬프트, 리소스 import 제거 --- from tools.get_ticker import get_ticker from tools.get_orderbook import get_orderbook from tools.get_trades import get_trades from tools.get_accounts import get_accounts from tools.create_order import create_order from tools.get_orders import get_orders from tools.get_order import get_order from tools.cancel_order import cancel_order from tools.get_market_summary import get_market_summary from tools.get_deposits_withdrawals import get_deposits_withdrawals from tools.get_markets import get_markets from tools.get_candles import get_candles from tools.create_withdraw import create_withdraw print("DEBUG: Tool imports in main.py finished", flush=True) # 로그 추가 from prompts.explain_ticker import explain_ticker from prompts.analyze_portfolio import analyze_portfolio from prompts.order_help import order_help from prompts.trading_strategy import trading_strategy from prompts.backtesting_guide import backtesting_guide, format_backtesting_result from resources.get_market_list import get_market_list print("✅ API 키 관련 로직은 일단 생략합니다.", flush=True) mcp = FastMCP( "Upbit MCP Server with Technical Analysis", description="FastMCP 1.0.0 with SSE, upbit tool, and technical analysis.", port=8001 # 생성자에 포트 추가 ) try: # FastMCP 1.0.0의 내부 툴 저장 방식은 다를 수 있음 print(f"MCP tools (before): {getattr(mcp, 'tools', 'not found or different structure')}", flush=True) print(f"MCP _tools (before): {getattr(mcp, '_tools', 'not found or different structure')}", flush=True) except AttributeError: pass tool_decorator_instance = mcp.tool() mcp.tool()(technical_analysis) # technical_analysis 툴 등록 주석 해제 mcp.tool()(backtesting) # 백테스팅 툴 등록 (차트 생성 기능 포함) mcp.tool()(generate_chart_image) # 차트 생성 툴 등록 mcp.tool()(generate_backtest_chart) # 백테스팅 차트 생성 툴 등록 (독립 사용 가능) mcp.tool()(get_ticker) mcp.tool()(get_orderbook) mcp.tool()(get_trades) mcp.tool()(get_accounts) mcp.tool()(create_order) mcp.tool()(get_orders) mcp.tool()(get_order) mcp.tool()(cancel_order) mcp.tool()(get_market_summary) mcp.tool()(get_deposits_withdrawals) mcp.tool()(get_markets) mcp.tool()(get_candles) mcp.tool()(create_withdraw) print(f"--- Additional tools registered ---", flush=True) # --- 다른 모든 mcp.resource, mcp.prompt 등록 제거 --- mcp.resource("market://list")(get_market_list) mcp.prompt()(explain_ticker) mcp.prompt()(analyze_portfolio) mcp.prompt()(order_help) mcp.prompt()(trading_strategy) mcp.prompt()(backtesting_guide) mcp.prompt()(format_backtesting_result) if __name__ == "__main__": print("DEBUG: Entering __main__ block", flush=True) print("FastMCP 1.0.0 + SSE 테스트 서버 시작 (Target Port: 8001)", flush=True) # target_host = "0.0.0.0" # 더 이상 사용하지 않음 # target_port = 8001 # 생성자에서 이미 설정됨 try: # mcp.port로 직접 접근하는 대신, 생성자에 전달된 포트 값(8001)을 명시적으로 언급합니다. print(f"DEBUG: About to call mcp.run(transport='sse') using constructor port (expected: 8001)", flush=True) mcp.run(transport="sse") # host, port 인자 제거 except Exception as e: print(f"An unexpected error occurred during mcp.run(): {e}", flush=True)

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