Skip to main content
Glama

Upbit MCP SSE Server

by restful3
todo.md4.03 kB
# 차트 이미지 생성 및 LLM 연동 기능 개발 TODO ## 1. 차트 생성 툴 개발 (MCP 서버 내) - **파일 생성**: `tools/generate_chart_image.py` 파일 생성 - **함수 정의**: - 비동기 함수 `generate_chart_image` 정의 - 파라미터: `market: str`, `interval: str`, `chart_type: str = "line"`, `ctx: Context = None` - 반환 값: `dict` (예: `{"image_url": "생성된_URL", "file_path": "저장된_파일_경로", "message": "차트 생성 완료"}`) - **핵심 로직**: - Upbit API를 통해 캔들 데이터 조회 (100~200개 캔들) - `tools/get_candles.py` 또는 `technical_analysis.py`의 캔들 조회 로직 활용 고려 - 차트 생성 라이브러리 선택 및 설치: - `Matplotlib`을 기본으로 사용 (의존성에 추가 필요 - `pyproject.toml` 또는 `requirements.txt`) - 차트 이미지 생성: - 캔들 데이터를 기반으로 시계열 차트 (예: 종가 라인 차트, 봉 차트 등) 생성 - 차트에 마켓, 인터벌 등 기본 정보 표시 - 이미지 파일 저장: - 저장 경로: 컨테이너 내 `/app/charts/` 디렉터리 (Docker 볼륨으로 호스트와 공유될 경로) - 파일명 규칙 정의: 예) `[마켓코드]_[인터벌]_[차트타입]_[타임스탬프].png` (예: `KRW-BTC_day_line_20231027112233.png`) - **URL 생성 로직**: - 저장된 이미지 파일에 접근 가능한 내부 URL 생성 - 예: `http://[웹서버_서비스명_또는_IP]:[포트]/charts/[파일명]` - 초기에는 웹 서버 구축 전이므로, 파일 경로만 우선 반환하고 URL 부분은 주석 처리 또는 플레이스홀더로 남겨둘 수 있음. ## 2. Docker 환경 설정 (`docker-compose.yml` 수정) - **MCP 서버 컨테이너 설정**: - 볼륨 마운트 추가: `./charts:/app/charts` (호스트의 `charts` 디렉터리를 컨테이너의 `/app/charts`로 연결) - **웹 서버 컨테이너 추가 (예: Nginx)**: - 이미지: `nginx:latest` (또는 다른 경량 웹 서버 이미지) - 볼륨 마운트: `./charts:/usr/share/nginx/html/charts:ro` (MCP 서버가 저장한 이미지들을 Nginx가 읽을 수 있도록 공유, 읽기 전용) - 포트 설정: 호스트와 컨테이너 포트 매핑 (예: `8081:80`) - Nginx 설정 파일 (`nginx.conf` - 필요시) - `/charts` 경로로 요청이 오면 `/usr/share/nginx/html/charts` 디렉터리의 파일을 제공하도록 설정 - 간단한 경우, 기본 설정으로도 동작 가능성 있음. ## 3. MCP 서버 `main.py` 수정 - 새로운 `generate_chart_image` 툴을 FastMCP 라우터에 등록 - `__init__.py` 에 `generate_chart_image` 함수 import ## 4. n8n 워크플로우 연동 - MCP 서버의 `generate_chart_image` 툴 호출하는 노드 추가 - 반환된 `image_url`을 받아 LLM 노드의 입력으로 사용 (이미지 URL 입력 방식 지원하는 LLM 사용) - (선택 사항) n8n 내에서 `<img>` 태그를 사용하여 이미지 표시 테스트 ## 5. 의존성 관리 - `pyproject.toml` (또는 `requirements.txt`) 에 `matplotlib` 추가 - `uv sync` 실행하여 의존성 업데이트 ## 6. 테스트 및 디버깅 - 단위 테스트: `generate_chart_image` 함수가 올바르게 이미지 파일 생성 및 정보 반환하는지 확인 - 통합 테스트: n8n에서 전체 워크플로우 실행하여 차트 생성, URL 전달, LLM 연동까지 확인 - Docker 환경에서 볼륨 마운트 및 웹 서버를 통한 이미지 접근성 확인 ## 기타 고려 사항 - **에러 핸들링**: API 요청 실패, 차트 생성 실패, 파일 저장 실패 등 예외 상황 처리 - **보안**: 생성된 URL이 외부로 직접 노출될 경우, 접근 제어 방안 고려 (초기에는 내부 네트워크 접근으로 한정) - **차트 커스터마이징**: 다양한 차트 종류(봉차트, 이동평균선 포함 등), 색상, 크기 등을 파라미터로 조절할 수 있도록 확장 가능성 고려

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