MCP-ODOS: 분산형 거래소를 위한 모델 컨텍스트 프로토콜 서버
이 프로젝트는 탈중앙화 거래소(DEX)와 상호 작용하는 모델 컨텍스트 프로토콜(MCP) 서버를 구현합니다. 이를 통해 MCP 호환 클라이언트(AI 어시스턴트, IDE 확장 프로그램 또는 사용자 지정 애플리케이션 등)가 스왑 시세 조회 및 스왑 실행 등의 기능에 액세스할 수 있습니다.
이 서버는 TypeScript와 fastmcp 사용하여 구축되었습니다.
기능(MCP 도구)
서버는 MCP 클라이언트가 활용할 수 있는 다음과 같은 도구를 제공합니다.
ODOS_GET_QUOTE: 스왑에 대한 견적을 가져옵니다.매개변수:
chainId(숫자),sellToken(문자열),buyToken(문자열),sellAmount(문자열)
ODOS_EXECUTE_SWAP: 스왑을 실행합니다.매개변수:
chainId(숫자),sellToken(문자열),buyToken(문자열),sellAmount(문자열),quote(문자열),walletProvider(문자열)
매개변수 분석
chainId: DEX의 체인 ID입니다.sellToken: 판매하려는 토큰.buyToken: 구매하려는 토큰.sellAmount: 판매하려는 토큰의 양.quote:get-quote서비스에서 받은 견적입니다.walletProvider: 사용하려는 지갑 제공자입니다.
Related MCP server: EVM MCP Server
필수 조건
Node.js(v18 이상 권장)
pnpm( https://pnpm.io/installation 참조)
설치
mcp-odos 사용하는 방법은 여러 가지가 있습니다.
1.
pnpm dlx 사용하면 전역 설치 없이 서버를 직접 실행할 수 있습니다. 이는 MCP 클라이언트와 통합하는 가장 쉬운 방법입니다. "MCP 클라이언트로 서버 실행" 섹션에서 예시를 참조하세요. ( pnpm dlx 는 pnpm의 npx 와 동일합니다.)
2. npm에서 글로벌 설치(pnpm을 통해):
mcp-odos 명령을 시스템 전체에서 사용할 수 있도록 패키지를 전역적으로 설치합니다.
지엑스피1
3. 소스에서 빌드(개발 또는 사용자 정의 수정용):
저장소를 복제합니다.
git clone https://github.com/IQAIcom/mcp-odos.git cd mcp-odos종속성 설치:
pnpm install서버 빌드: TypeScript 코드를
dist디렉토리의 JavaScript로 컴파일합니다.pnpm run buildprepare스크립트는 또한pnpm run build실행하므로pnpm install복제하고 실행하면 종속성이 설치 시에 빌드됩니다.
구성(환경 변수)
이 MCP 서버는 서버를 실행하는 MCP 클라이언트에서 특정 환경 변수를 설정해야 할 수 있습니다. 이러한 환경 변수는 일반적으로 클라이언트의 MCP 서버 정의(예: Cursor의 경우 mcp.json 파일, 다른 클라이언트의 경우 유사 파일)에서 구성됩니다.
지갑 제공자 또는 API 키에 필요한 환경 변수입니다.
MCP 클라이언트로 서버 실행
MCP 클라이언트(AI 어시스턴트, IDE 확장 프로그램 등)는 이 서버를 백그라운드 프로세스로 실행합니다. 클라이언트가 서버를 시작하는 방법을 지정하도록 설정해야 합니다.
다음은 MCP 클라이언트가 사용할 수 있는 구성 스니펫의 예입니다(예: mcp_servers.json 또는 유사한 구성 파일). 이 예에서는 pnpm dlx 통해 게시된 npm 패키지를 사용하여 서버를 실행하는 방법을 보여줍니다.
글로벌하게 설치된 경우의 대안:
mcp-odos 전역으로 설치한 경우( pnpm add -g mcp-odos ), command 과 args 간소화할 수 있습니다.
command: 실행할 실행 파일.pnpm dlx의 경우:"pnpm"(첫 번째 인수가"dlx")글로벌 설치의 경우:
"mcp-odos"
args: 명령에 전달할 인수 배열입니다.pnpm dlx의 경우:["dlx", "mcp-odos"]글로벌 설치의 경우:
[]
env: 서버 프로세스가 시작될 때 설정되는 환경 변수를 포함하는 객체입니다. 여기에 필요한 환경 변수를 입력합니다.workingDirectory:pnpm dlx또는 글로벌 설치를 통해 게시된 패키지를 사용할 때는 일반적으로 필요하지 않습니다. 패키지가 자체 경로를 올바르게 처리해야 하기 때문입니다. 소스(node dist/index.js)에서 실행하는 경우workingDirectory프로젝트 루트로 설정하는 것이 중요합니다.