Skip to main content
Glama
akinabudu

ctrader-mcp-server

by akinabudu

cTrader MCP 서버

AI 어시스턴트가 cTrader 트레이딩 플랫폼과 상호작용할 수 있도록 지원하는 독립형 MCP(Model Context Protocol) 서버입니다.

🚀 이것은 무엇인가요?

이 MCP 서버를 사용하면 Claude와 같은 AI 어시스턴트가 자연어 대화를 통해 cTrader에서 거래를 실행하고, 시장을 분석하며, 포지션을 관리할 수 있습니다.

대화 예시:

  • "내 계좌 잔액 보여줘" → 잔액, 평가액, 포지션 정보 가져오기

  • "EURUSD 0.01랏 매수, 스탑로스 1.08" → 거래 실행

  • "GBPUSD RSI 계산해줘" → 기술적 지표 분석

  • "손실 중인 모든 포지션 종료해" → 리스크 관리

✨ 주요 기능

거래 작업

  • 시장가 주문 - 현재 가격으로 즉시 실행

  • 지정가 주문 - 특정 가격 수준에서 주문

  • 스탑 주문 - 스탑로스 또는 스탑엔트리 주문

  • 포지션 관리 - 포지션 전체 또는 부분 종료

  • 주문 관리 - 대기 중인 주문 취소

시장 데이터 및 분석

  • 과거 데이터 - OHLCV 캔들 (9개 타임프레임: M1, M5, M15, M30, H1, H4, D1, W1, MN1)

  • 기술적 지표 - RSI, MACD, EMA, SMA, 볼린저 밴드, ATR, 스토캐스틱

  • 실시간 틱 - 실시간 가격 피드 구독

  • 심볼 검색 - 100개 이상의 거래 상품 탐색

계좌 정보

  • 계좌 상태 - 잔액, 평가액, 증거금, 가용 증거금

  • 포지션 추적 - 손익(P&L)을 포함한 모든 오픈 포지션

  • 주문 추적 - 모든 대기 중인 주문

  • 손익 분석 - 상세한 손익 분석

🎯 사용 가능한 도구 (총 14개)

도구

설명

get_account_status

잔액, 평가액, 증거금 및 손익 확인

get_positions

모든 오픈 포지션 목록 및 상세 정보

get_pending_orders

모든 대기 중인 지정가/스탑 주문 표시

get_position_pnl

상세 손익 분석

create_market_order

현재 시장 가격으로 거래 실행

create_limit_order

특정 가격으로 주문 배치

create_stop_order

스탑로스 또는 스탑엔트리 주문 배치

close_position

포지션 전체 또는 부분 종료

cancel_order

대기 중인 주문 취소

list_symbols

사용 가능한 거래 상품 탐색

get_historical_data

OHLCV 캔들 데이터 가져오기

get_indicator

기술적 지표 계산

subscribe_to_ticks

실시간 가격 업데이트 구독

unsubscribe_from_ticks

가격 업데이트 구독 취소

📋 사전 요구 사항

  • Python 3.10 이상

  • cTrader 계정 (데모 또는 실계좌)

  • cTrader API 자격 증명

🔧 설치

1. cTrader API 자격 증명 받기

  1. https://help.ctrader.com/open-api/creating-new-app/ 방문

  2. 애플리케이션을 생성하여 다음을 획득:

    • CLIENT_ID

    • CLIENT_SECRET

  3. 액세스 토큰 생성:

    • ACCESS_TOKEN

  4. cTrader에서 계좌 ID 확인:

    • ACCOUNT_ID

2. 서버 설치

# Clone or download this repository
cd ctrader-mcp-server

# Run installation script
./install.sh

3. 자격 증명 구성

프로젝트 루트에 .env 파일을 생성합니다:

CLIENT_ID=your_client_id_here
CLIENT_SECRET=your_client_secret_here
ACCESS_TOKEN=your_access_token_here
ACCOUNT_ID=your_account_id_here
HOST=demo

중요: 테스트 시에는 HOST=demo를 사용하세요!

4. 서버 테스트

# Activate virtual environment
source venv/bin/activate

# Run tests
python test_server.py

다음과 같이 표시되어야 합니다:

✓ Bot initialized and authenticated
✓ Account status retrieved
✓ Found X EUR symbols
...
All Tests Completed Successfully! ✓

🤖 AI 어시스턴트 구성

Claude Desktop

  1. 설정 파일 찾기:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. 다음 구성 추가:

{
  "mcpServers": {
    "ctrader": {
      "command": "/absolute/path/to/ctrader-mcp-server/venv/bin/python",
      "args": [
        "/absolute/path/to/ctrader-mcp-server/server.py"
      ],
      "cwd": "/absolute/path/to/ctrader-mcp-server"
    }
  }
}
  1. Claude Desktop 재시작

기타 MCP 클라이언트

이 서버는 표준 MCP 프로토콜을 구현하므로 MCP 호환 클라이언트와 함께 사용할 수 있습니다.

💬 대화 예시

구성이 완료되면 자연스럽게 상호작용할 수 있습니다:

계좌 확인:

사용자: "내 cTrader 계좌에 돈이 얼마나 있지?"

AI: "귀하의 계좌 잔액은 $10,000, 평가액은 $10,250이며, 3개의 오픈 포지션에서 총 +$250의 손익이 발생하고 있습니다."

거래 실행:

사용자: "EURUSD 0.01랏 매수, 스탑로스 1.08, 익절 1.10"

AI: "주문이 실행되었습니다! 1.09245 가격에 EURUSD 0.01랏을 매수했으며, 스탑로스는 1.08000, 익절은 1.10000으로 설정되었습니다."

시장 분석:

사용자: "15분 차트에서 GBPUSD RSI 계산해줘"

AI: "M15 기준 GBPUSD RSI(14)는 현재 65.3이며, 과매수 영역에 접근하고 있음을 나타냅니다."

리스크 관리:

사용자: "$50 이상 손실 중인 모든 포지션 종료해"

AI: "$50 이상 손실 중인 포지션 1개를 찾았습니다. GBPUSD 포지션을 종료했습니다 (손실: -$62.50)."

📚 문서

🔐 보안 및 안전

데모 vs 실거래

  • 기본 구성은 데모 계정을 사용합니다.

  • 실거래를 위해서는 .env 파일에 HOST=live를 명시적으로 설정하세요.

  • 실거래 전에는 항상 데모에서 충분히 테스트하세요.

리스크 관리

  • 모든 주문은 스탑로스 및 익절을 지원합니다.

  • 포지션 종료는 부분 또는 전체 종료가 가능합니다.

  • 거래량은 랏 단위로 지정됩니다 (0.01 = 마이크로 랏).

자격 증명 보안

  • 자격 증명은 .env 파일에 저장됩니다 (절대 커밋하지 마세요).

  • 환경 변수는 로그에 노출되지 않습니다.

  • 작업 전 인증 상태가 검증됩니다.

🚨 중요 경고

⚠️ 거래에는 상당한 위험이 따릅니다. 자금을 잃을 수 있습니다. ⚠️ 항상 데모 계정에서 먼저 테스트하세요. ⚠️ 실거래 시에는 작은 포지션으로 시작하세요. ⚠️ 리스크 제한을 위해 스탑로스를 사용하세요. ⚠️ 자격 증명이나 액세스 토큰을 절대 공유하지 마세요.

🛠️ 개발

프로젝트 구조

ctrader-mcp-server/
├── server.py              # Main MCP server
├── ctrader_bot.py         # cTrader API wrapper
├── test_server.py         # Testing tool
├── install.sh             # Installation script
├── requirements.txt       # Python dependencies
├── .env.example           # Environment template
├── README.md              # This file
└── docs/                  # Documentation
    ├── QUICKSTART.md
    ├── GUIDE.md
    ├── ARCHITECTURE.md
    ├── CONFIGURATION.md
    └── API.md

테스트 실행

# Basic functionality test
python test_server.py

# Run with specific account
ACCOUNT_ID=12345 python test_server.py

# Test with live account (careful!)
HOST=live python test_server.py

새로운 도구 추가

새로운 도구를 추가하려면:

  1. server.pyhandle_list_tools()에 도구 정의 추가

  2. _execute_tool()에 핸들러 구현

  3. 필요한 경우 ctrader_bot.py에 해당 메서드 추가

  4. 문서 업데이트

📊 성능

  • 시작 시간: 5-10초 (인증 + 심볼 로딩)

  • 주문 실행: <100ms (시장가 주문)

  • 과거 데이터: 1-5초 (100개 캔들)

  • 지표 계산: <1초

  • 메모리 사용량: ~50-100 MB

🌐 속도 제한

cTrader API 제한:

  • 거래 작업: 초당 50회 요청

  • 과거 데이터: 초당 5회 요청

서버는 자동으로 이러한 제한을 준수합니다.

🐛 문제 해결

"Bot not ready" 오류

  • .env 파일 자격 증명 확인

  • 인터넷 연결 확인

  • cTrader 계정이 활성 상태인지 확인

  • 서버 로그에서 인증 오류 확인

심볼을 찾을 수 없음

  • list_symbols 도구를 사용하여 사용 가능한 심볼 확인

  • 심볼 이름은 대소문자를 구분합니다.

  • 브로커마다 심볼 이름이 다를 수 있습니다.

주문 거부

  • 계좌 잔액 및 증거금 확인

  • 심볼 거래 가능 여부 확인

  • 거래량이 최소 요구 사항을 충족하는지 확인

  • 시장이 열려 있는지 확인

연결 문제

  • API 자격 증명이 올바른지 확인

  • 계정이 활성 상태인지 확인

  • 5035(데모) 또는 5034(실거래) 포트를 차단하는 방화벽이 없는지 확인

🔗 리소스

📄 라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일 참조

⚖️ 면책 조항

이 소프트웨어는 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 거래에는 상당한 위험이 따르며 자금을 잃을 수 있습니다. 사용자의 책임하에 사용하십시오. 실거래 전에는 항상 데모 계정에서 테스트하십시오.

🤝 기여

기여를 환영합니다! 다음 단계를 따라주세요:

  1. 저장소 포크

  2. 기능 브랜치 생성

  3. 변경 사항 적용

  4. 해당되는 경우 테스트 추가

  5. 풀 리퀘스트 제출

📧 지원


알고리즘 트레이더를 위해 ❤️로 제작됨

시작할 준비가 되셨나요? ./install.sh를 실행하고 위의 지침을 따르세요!

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/akinabudu/ctrader-mcp-server'

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