MCP를 사용하여 Pear Protocol DeFi 트레이딩 에이전트 구축하기
요약
Model Context Protocol(MCP)을 활용하여 Pear Protocol의 DeFi 트레이딩 에이전트를 구축하는 방법을 소개합니다. MCP 서버를 통해 LLM이 실시간 시장 데이터를 조회하고 Hyperliquid 기반의 페어 트레이딩을 직접 수행할 수 있는 환경을 구현합니다.
핵심 포인트
- MCP를 사용하여 LLM과 DeFi 거래소 API를 표준화된 방식으로 연결
- Pear Protocol의 API를 래핑한 mcp-pear 오픈 소스 서버 활용
- Claude Desktop 등 MCP 클라이언트를 통한 실시간 트레이딩 도구 구현
- 시장 탐색부터 포지션 관리 및 주문 실행까지 에이전트 기능 확장 가능
단순히 차트에 대해 대화하는 것이 아니라 실제로 _거래(trade)_를 할 수 있는 AI 에이전트를 원한다면, Model Context Protocol (MCP)는 모델을 실제 거래소에 연결하는 가장 깔끔한 방법입니다. 이 포스트에서는 Pear Protocol DeFi 트레이딩 에이전트를 구축합니다. 이 에이전트는 페어 시장을 탐색하고, 사용자의 포지션과 포트폴리오를 읽으며, (활성화했을 때) **Hyperliquid에서 레버리지 페어 거래(pair trades)**를 오픈하고 종료할 수 있습니다.
우리는 Pear Protocol의 API를 래핑(wrap)하는 오픈 소스 MCP 서버인 mcp-pear를 사용할 것입니다.
Pear Protocol이란 무엇인가요?
Pear Protocol은 **페어 트레이딩 (pair trading)**을 위한 Hyperliquid 기반 플랫폼입니다. 하나의 포지션 내에서 한 바스켓은 롱(long)을 잡고 다른 바스켓은 숏(short)을 잡아, 전체 시장의 방향성과 관계없이 두 자산 사이의 _비율(ratio)_이 본인에게 유리하게 움직임으로써 수익을 창출합니다. 전형적인 예로, 암호화폐 시장 전체에 베팅하지 않고 ETH가 BTC보다 더 높은 성과를 낼 것이라고 생각한다면 ETH 롱, BTC 숏을 잡는 방식입니다.
Pear는 Hyperliquid에서 결제되므로, 모든 페어 포지션은 실제로 온체인에서 실행되는 한 쌍의 무기한 선물(perp) 레그(legs)입니다.
MCP란 무엇이며, 왜 여기서 사용하나요?
**Model Context Protocol (MCP)**는 LLM이 하나의 통일된 인터페이스를 통해 외부 도구를 호출할 수 있게 해주는 개방형 표준입니다. Pear의 REST API를 수동으로 모델에 직접 연결하는 대신, 도구를 모델에 _설명(describe)_하는 MCP 서버를 실행하면, 모든 MCP 클라이언트(Claude Desktop, Cursor, Cline 또는 자체 에이전트)가 이를 사용할 수 있습니다.
mcp-pear는 Pear를 다음과 같은 MCP 도구 세트로 노출합니다:
- 공개 (인증 불필요):
list_markets,get_active_markets,get_pair_ratio,get_health - 인증된 읽기 (Authenticated read):
get_open_positions,get_open_orders,get_portfolio,get_trade_history,get_account_summary - 쓰기 (선택 사항):
open_position,close_position,adjust_position,adjust_leverage,set_risk_parameters,cancel_order
1단계: 서버 실행하기
설치가 필요 없습니다. npx로 가져올 수 있습니다:
npx -y @marvelcodes/mcp-pear@latest
공개 도구들은 설정 없이 작동하므로, 에이전트가 즉시 시장과 페어 비율을 탐색할 수 있습니다.
2단계: Claude Desktop에 연결하기
Claude Desktop MCP 설정에 다음을 추가하세요:
{
"mcpServers": {
"pear": {
...
Claude를 재시작한 후 다음과 같이 질문해 보세요: "지금 Pear에서 가장 상승 폭이 큰 페어 시장은 무엇인가요?" 그러면 에이전트가 get_active_markets를 호출하여 실시간 데이터를 바탕으로 답변합니다.
3단계: 계정 추가하기 (읽기 도구)
본인의 포지션과 포트폴리오를 읽으려면 Pear API 키를 발행하세요:
npx -y @marvelcodes/mcp-pear@latest setup
이 명령어를 실행하면 브라우저가 열리고, 지갑으로 한 번 로그인하면 PEAR_API_KEY와 PEAR_ADDRESS가 작성됩니다. 이를 설정에 추가하세요:
{
"mcpServers": {
"pear": {
...
이제 _"이번 주 내 포트폴리오 상태는 어때?"_라는 질문이 작동합니다. 에이전트가 실제 PnL (손익) 정보를 포함하여 get_portfolio를 호출합니다.
4단계: 에이전트가 거래하게 하기 (주의 필요)
거래 실행(Trade execution)은 기본적으로 꺼져 있습니다 (off by default). 의도적으로 옵트인(opt-in)해야 합니다:
"env": {
"PEAR_API_KEY": "your_key",
"PEAR_ADDRESS": "0xyour_address",
...
해당 플래그가 설정되면 에이전트는 open_position을 호출할 수 있습니다. 페어 트레이딩(pair trade)의 예시는 다음과 같습니다: ETH 롱(long), BTC 숏(short), 레버리지 3배, 명목 가치(notional) $100.
{
"executionType": "MARKET",
"leverage": 3,
...
open_position은 또한 TRIGGER, TWAP, LADDER 실행 유형과 함께 부착된 stopLoss (손절) / takeProfit (익절)을 지원합니다. Pear는 서버 측에서 거래에 서명하므로, MCP 서버는 사용자의 개인 키(private keys)를 절대 보유하지 않습니다.
알아두어야 할 Hyperliquid의 두 가지 주의사항:
- 주문당 최소 명목 가치(minimum notional)는 약 $1입니다. 더 작은 주문은 거절됩니다.
- 현물(Spot) vs 무기한 선물(Perps) 잔고. Hyperliquid로 브릿지된 USDC는 종종 현물(Spot) 잔고에 들어갑니다. 이를 먼저 무기한 선물(Perps) 잔고로 이동시키지 않으면, 증거금 부족으로
open_position이 실패합니다.
종합하기
이를 사용하는 에이전트 루프(agent loop)의 구조는 다음과 같습니다:
get_active_markets를 사용하여 강한 모멘텀을 가진 페어를 찾습니다.get_pair_ratio를 사용하여 현재 비율과 펀딩(funding)을 확인합니다.- 모델이 방향을 결정합니다.
- 손절매(stop-loss)를 부착하여
open_position을 실행합니다. get_open_positions를 폴링(poll)한 후, 투자 아이디어(thesis)가 실현되면close_position을 실행합니다.
모든 것이 도구 호출 (tool call)이므로, 모델은 실시간 데이터를 바탕으로 추론하고 행동합니다. 별도의 커스텀 API 글루 (glue) 코드가 필요하지 않습니다.
안전 주의 사항
- 읽기 전용 (read-only) 동작을 테스트하기 전까지는
PEAR_TRADE_ENABLED를 꺼두세요. - 아주 작은 명목 금액 (notionals)으로 시작하세요.
- 쓰기 도구 (write tools)는 실제 돈으로 실제 거래를 실행합니다. 일반적인 트레이딩 봇을 다루듯 에이전트를 제한하고, 모니터링하며, 리스크 파라미터 (risk parameters)를 설정하세요.
링크
- Repo: https://github.com/MarvelNwachukwu/mcp-pear
- npm: https://www.npmjs.com/package/@marvelcodes/mcp-pear
- Pear Protocol: http://pear.garden/
mcp-pear는 Pear Protocol과 관련이 없는 독립적인 오픈 소스 커뮤니티 프로젝트입니다. PR (Pull Requests)과 이슈 (issues)를 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기