metatrader-mcp-server
AI 어시스턴트가 자연어를 사용하여 대신 거래하도록 하세요

📑 목차
Related MCP server: Financial Datasets MCP Server
🌟 이것은 무엇인가요?
MetaTrader MCP 서버는 AI 어시스턴트(Claude, ChatGPT 등)를 MetaTrader 5 트레이딩 플랫폼에 연결하는 브리지입니다. 버튼을 클릭하는 대신 AI 어시스턴트에게 다음과 같이 말하기만 하면 됩니다:
"내 계좌 잔액을 보여줘" "EUR/USD 0.01랏 매수해" "수익 중인 모든 포지션을 종료해"
AI가 요청을 이해하고 MetaTrader 5에서 자동으로 실행합니다.
작동 방식
You → AI Assistant → MCP Server → MetaTrader 5 → Your Trades✨ 기능
🗣️ 자연어 트레이딩 - 평범한 언어로 AI와 대화하여 거래 실행
🤖 멀티 AI 지원 - Claude Desktop, ChatGPT(Open WebUI 경유) 등과 호환
📊 전체 시장 접근 - 실시간 가격, 과거 데이터 및 심볼 정보 확인
💼 완전한 계좌 제어 - 잔액, 증거금, 마진 및 거래 통계 확인
⚡ 주문 관리 - 간단한 명령으로 주문 생성, 수정 및 종료
🔒 보안 - 모든 자격 증명은 사용자 기기에 안전하게 보관
🌐 유연한 인터페이스 - MCP 서버, REST API 또는 WebSocket 스트림으로 사용 가능
📖 상세한 문서 - 포괄적인 가이드 및 예시 제공
🎯 누구를 위한 것인가요?
트레이더 - AI를 사용하여 트레이딩을 자동화하려는 분
개발자 - 트레이딩 봇이나 분석 도구를 구축하는 분
분석가 - 시장 데이터에 빠르게 접근해야 하는 분
누구나 - AI와 금융 시장을 결합하는 데 관심이 있는 분
⚠️ 중요 면책 조항
주의 깊게 읽어주세요:
금융 상품 거래는 상당한 손실 위험을 수반합니다. 이 소프트웨어는 '있는 그대로' 제공되며, 개발자는 이 소프트웨어 사용으로 인한 거래 손실, 이익 또는 결과에 대해 어떠한 책임도 지지 않습니다.
이 소프트웨어를 사용함으로써 귀하는 다음 사항을 인정합니다:
금융 거래의 위험을 이해함
이 시스템을 통해 실행된 모든 거래에 대한 책임은 본인에게 있음
개발자에게 어떠한 결과에 대해서도 책임을 묻지 않음
본인의 위험 부담 하에 이 소프트웨어를 사용함
이는 금융 조언이 아닙니다. 항상 책임감 있게 거래하십시오.
📋 사전 요구 사항
시작하기 전에 다음 사항이 준비되어 있는지 확인하세요:
Python 3.10 이상 - 여기서 다운로드
MetaTrader 5 터미널 - 여기서 다운로드
MT5 트레이딩 계좌 - 데모 또는 실계좌 자격 증명
로그인 번호
비밀번호
서버 이름 (예: "MetaQuotes-Demo")
🚀 빠른 시작
1단계: 패키지 설치
터미널이나 명령 프롬프트를 열고 다음을 실행하세요:
pip install metatrader-mcp-server2단계: 알고리즘 트레이딩 활성화
MetaTrader 5 실행
도구(Tools)→옵션(Options)으로 이동Expert Advisors탭 클릭알고리즘 트레이딩 허용(Allow algorithmic trading)체크박스 선택확인(OK)클릭
3단계: 인터페이스 선택
사용하려는 방식에 따라 하나를 선택하세요:
옵션 A: Claude Desktop과 함께 사용 (로컬 STDIO)
Claude Desktop 설정 파일 찾기:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMac:
~/Library/Application Support/Claude/claude_desktop_config.json
파일을 열고 다음 설정을 추가하세요:
{
"mcpServers": {
"metatrader": {
"command": "metatrader-mcp-server",
"args": [
"--login", "YOUR_MT5_LOGIN",
"--password", "YOUR_MT5_PASSWORD",
"--server", "YOUR_MT5_SERVER",
"--transport", "stdio"
]
}
}
}선택 사항: 사용자 지정 MT5 터미널 경로 지정
MT5 터미널이 표준 경로가 아닌 곳에 설치된 경우 --path 인수를 추가하세요:
{
"mcpServers": {
"metatrader": {
"command": "metatrader-mcp-server",
"args": [
"--login", "YOUR_MT5_LOGIN",
"--password", "YOUR_MT5_PASSWORD",
"--server", "YOUR_MT5_SERVER",
"--transport", "stdio",
"--path", "C:\\Program Files\\MetaTrader 5\\terminal64.exe"
]
}
}
}YOUR_MT5_LOGIN,YOUR_MT5_PASSWORD,YOUR_MT5_SERVER를 실제 자격 증명으로 교체하세요Claude Desktop 재시작
대화 시작! 다음을 시도해보세요: "내 계좌 잔액이 얼마야?"
옵션 B: Open WebUI와 함께 사용 (ChatGPT 및 기타 LLM용)
HTTP 서버 시작:
metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 0.0.0.0 --port 8000선택 사항: 사용자 지정 MT5 터미널 경로 지정
MT5 터미널이 표준 경로가 아닌 곳에 설치된 경우 --path 인수를 추가하세요:
metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --path "C:\Program Files\MetaTrader 5\terminal64.exe" --host 0.0.0.0 --port 8000브라우저에서
http://localhost:8000/docs로 접속하여 API 문서 확인Open WebUI에서:
설정(Settings) → **도구(Tools)**로 이동
도구 서버 추가(Add Tool Server) 클릭
http://localhost:8000입력저장
이제 Open WebUI 채팅에서 트레이딩 도구를 사용할 수 있습니다!
옵션 C: WebSocket을 통한 실시간 시세
대시보드, 봇 또는 모니터링을 위해 WebSocket을 통해 실시간 틱 데이터(매수, 매도, 스프레드, 거래량)를 스트리밍하세요:
metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER모든 WebSocket 클라이언트로 연결:
websocat ws://localhost:8765connected 메시지를 받은 후 JSON 형식으로 지속적인 틱 업데이트를 받게 됩니다. 자세한 내용은 WebSocket 시세 서버를 참조하세요.
옵션 D: 원격 MCP 서버 (SSE)
Windows VPS(MT5가 설치된 곳)에서 MCP 서버를 실행하고 로컬 컴퓨터의 Claude Desktop이나 Claude Code에서 원격으로 연결하세요.
서버 측 (Windows VPS에서):
metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER기본적으로 0.0.0.0:8080에서 SSE 서버가 시작됩니다. --host 및 --port로 사용자 지정 가능:
metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 127.0.0.1 --port 9000클라이언트 측 (로컬 컴퓨터의 Claude Desktop 설정):
{
"mcpServers": {
"metatrader": {
"url": "http://VPS_IP:8080/sse"
}
}
}VPS_IP를 서버의 IP 주소로 교체하세요.
보안 경고: MCP 프로토콜에는 인증이 포함되어 있지 않습니다. 네트워크를 통해 SSE 서버를 노출할 때는 방화벽을 사용하여 IP별로 접근을 제한하거나, 인증이 포함된 리버스 프록시 뒤에 배치하거나, SSH 터널을 사용하세요.
🤖 트레이딩 어시스턴트 스킬 (Claude Code / Claude Desktop)
claude-skill/ 디렉토리에 사전 구축된 트레이딩 터미널 어시스턴트 스킬이 포함되어 있습니다. 이 스킬은 Claude에게 32개의 모든 트레이딩 도구, 출력 형식 및 MetaTrader 5 도메인 전문 지식에 대한 구조화된 정보를 제공합니다.
Claude Code용 설치
옵션 1: 심볼릭 링크 (권장)
표준 Claude Code 스킬 디렉토리에서 claude-skill/로 심볼릭 링크 생성:
cd metatrader-mcp-server
mkdir -p .claude
ln -s ../claude-skill .claude/skills스킬이 자동으로 검색되어 /trading으로 사용할 수 있게 됩니다.
옵션 2: 복사
스킬 파일을 Claude Code 스킬 디렉토리로 복사:
cd metatrader-mcp-server
mkdir -p .claude/skills
cp -r claude-skill/trading .claude/skills/tradingClaude Desktop용 설치
Claude Desktop의 경우, 스킬을 전역 Claude 스킬 디렉토리로 복사하세요:
# macOS
mkdir -p ~/Library/Application\ Support/Claude/skills
cp -r claude-skill/trading ~/Library/Application\ Support/Claude/skills/trading
# Windows
mkdir "%APPDATA%\Claude\skills"
xcopy /E claude-skill\trading "%APPDATA%\Claude\skills\trading\"스킬의 기능
직접 실행: 요청 시 추가 확인 없이 즉시 거래 실행
워크플로우: 복잡한 작업을 위해 도구를 연결하는 방법(예: 시장가 주문 후 SL/TP 설정)을 알고 있음
형식 지정: 계좌 데이터, 포지션, 주문 및 가격을 깔끔한 터미널 스타일 표로 표시
도메인 지식: MT5 주문 유형, 타임프레임, 심볼 형식 및 체결 모드 이해
사용법
설치 후 /trading을 호출하거나 자연스럽게 트레이딩 관련 질문을 하세요:
/trading
> Show me my account dashboard
> Buy 0.1 lots of EURUSD with SL at 1.0800
> Close all profitable positions
> Show me GBPUSD H4 candles📡 WebSocket 시세 서버
WebSocket 시세 서버는 MetaTrader 5에서 실시간 틱 데이터를 모든 WebSocket 클라이언트로 스트리밍합니다. 라이브 대시보드, 알고리즘 트레이딩 프론트엔드 및 실시간 모니터링에 이상적입니다.
서버 시작
metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER서버는 기본적으로 ws://0.0.0.0:8765에서 시작됩니다.
사용자 지정
metatrader-quote-server \
--login YOUR_LOGIN \
--password YOUR_PASSWORD \
--server YOUR_SERVER \
--host 127.0.0.1 \
--port 9000 \
--symbols "EURUSD,GBPUSD,XAUUSD" \
--poll-interval 200설정
플래그 | 환경 변수 | 기본값 | 설명 |
|
|
| 바인딩할 호스트 |
|
|
| 바인딩할 포트 |
|
|
| 스트리밍할 심볼 (쉼표로 구분) |
|
|
| 틱 폴링 간격 (밀리초) |
CLI 플래그가 환경 변수보다 우선하며, 환경 변수는 기본값보다 우선합니다.
메시지 형식
연결 시 — 서버가 심볼 목록과 함께 connected 메시지를 보내고, 캐시된 틱을 전송합니다:
{"type": "connected", "symbols": ["XAUUSD", "EURUSD", "GBPUSD"], "poll_interval_ms": 100}틱 업데이트 — 매수, 매도 또는 거래량이 변경될 때마다 전송:
{"type": "tick", "symbol": "XAUUSD", "bid": 2345.67, "ask": 2345.89, "spread": 0.22, "volume": 1234, "time": "2026-03-14T10:30:45+00:00"}오류 — 심볼을 가져올 수 없는 경우 전송:
{"type": "error", "symbol": "INVALID", "message": "Symbol not found or data unavailable"}예시: Python으로 연결
import asyncio
import json
from websockets.asyncio.client import connect
async def main():
async with connect("ws://localhost:8765") as ws:
async for message in ws:
tick = json.loads(message)
if tick["type"] == "tick":
print(f"{tick['symbol']}: {tick['bid']}/{tick['ask']} (spread: {tick['spread']})")
asyncio.run(main())설계 참고 사항
변경 감지: 매수, 매도 또는 거래량이 실제로 변경될 때만 브로드캐스팅하여 불필요한 트래픽을 줄입니다.
지연 참여자: 새로운 클라이언트는 연결 즉시 캐시된 틱을 받으므로 다음 변경까지 기다릴 필요가 없습니다.
MT5 스레드 안전성: 모든 MT5 SDK 호출은 동시 접근 문제를 방지하기 위해 단일 스레드 실행기를 통해 직렬화됩니다.
다중 클라이언트: 여러 WebSocket 클라이언트가 동시에 연결할 수 있습니다.
💡 사용 예시
Claude Desktop 사용 시
설정 후 자연스럽게 대화할 수 있습니다:
계좌 확인:
사용자: "내 계좌 정보 보여줘"
Claude: 잔액, 증거금, 마진, 레버리지 등을 반환
시장 데이터 가져오기:
사용자: "EUR/USD 현재 가격이 얼마야?"
Claude: 매수, 매도 및 스프레드 표시
거래 실행:
사용자: "GBP/USD 0.01랏 매수해, 손절가는 1.2500, 익절가는 1.2700으로 설정"
Claude: 거래 실행 및 확인
포지션 관리:
사용자: "손실 중인 모든 포지션 종료해"
Claude: 포지션 종료 및 결과 보고
기록 분석:
사용자: "지난주 EUR/USD 거래 내역을 모두 보여줘"
Claude: 거래 내역을 표로 반환
HTTP API 사용 시
# Get account info
curl http://localhost:8000/api/v1/account/info
# Get current price
curl "http://localhost:8000/api/v1/market/price?symbol_name=EURUSD"
# Place a market order
curl -X POST http://localhost:8000/api/v1/order/market \
-H "Content-Type: application/json" \
-d '{
"symbol": "EURUSD",
"volume": 0.01,
"type": "BUY",
"stop_loss": 1.0990,
"take_profit": 1.1010
}'
# Get all open positions
curl http://localhost:8000/api/v1/positions
# Close a specific position
curl -X DELETE http://localhost:8000/api/v1/positions/12345Python 라이브러리로 사용 시
from metatrader_client import MT5Client
# Connect to MT5
config = {
"login": 12345678,
"password": "your_password",
"server": "MetaQuotes-Demo"
}
client = MT5Client(config)
client.connect()
# Get account statistics
stats = client.account.get_trade_statistics()
print(f"Balance: ${stats['balance']}")
print(f"Equity: ${stats['equity']}")
# Get current price
price = client.market.get_symbol_price("EURUSD")
print(f"EUR/USD Bid: {price['bid']}, Ask: {price['ask']}")
# Place a market order
result = client.order.place_market_order(
type="BUY",
symbol="EURUSD",
volume=0.01,
stop_loss=1.0990,
take_profit=1.1010
)
print(result['message'])
# Close all positions
client.order.close_all_positions()
# Disconnect
client.disconnect()📚 사용 가능한 작업
계좌 관리
get_account_info- 잔액, 증거금, 수익, 마진 레벨, 레버리지, 통화 정보 가져오기
시장 데이터
get_symbols- 사용 가능한 모든 거래 심볼 목록get_symbol_price- 심볼의 현재 매수/매도 가격 가져오기get_candles_latest- 최근 가격 캔들(OHLCV 데이터) 가져오기get_candles_by_date- 날짜 범위에 따른 과거 캔들 가져오기get_symbol_info- 상세 심볼 정보 가져오기
주문 실행
place_market_order- 즉시 매수/매도 주문 실행place_pending_order- 향후 실행을 위한 지정가/역지정가 주문 배치modify_position- 손절가 또는 익절가 업데이트modify_pending_order- 대기 주문 매개변수 수정
포지션 관리
get_all_positions- 모든 오픈 포지션 보기get_positions_by_symbol- 거래 쌍별로 포지션 필터링get_positions_by_id- 특정 포지션 상세 정보 가져오기close_position- 특정 포지션 종료close_all_positions- 모든 오픈 포지션 종료close_all_positions_by_symbol- 특정 심볼의 모든 포지션 종료close_all_profitable_positions-
This server cannot be installed
Maintenance
Appeared in Searches
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/ariadng/metatrader-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server