Skip to main content
Glama

SVM-MCP

by rkmonarch

SVM-MCP: SOON 모델 컨텍스트 프로토콜 서버

Claude AI를 SOON 및 기타 SVM 기반 블록체인과 통합하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 SOON 테스트넷 및 메인넷의 잔액 확인, 최근 거래 내역 조회, 토큰 보유량 조회 등의 도구를 제공하여 계정 잔액, 거래 내역 및 토큰 보유량을 확인할 수 있습니다.

개요

이 MCP 서버는 Claude를 SOON 생태계에 연결하도록 설계되었으며, 이를 통해 다음과 같은 작업이 가능합니다.

  • 테스트넷과 메인넷에서 지갑 잔액 쿼리
  • 주소에 대한 최신 거래를 가져옵니다.
  • 모든 계정의 토큰 보유량을 확인하세요

현재 구현에서는 SOON의 RPC 엔드포인트를 사용하지만, 모든 Solana 호환 블록체인이나 사용자 정의 SVM 구현과 작동하도록 쉽게 수정할 수 있습니다.

특징

  • 잔액 가져오기 : SOON 테스트넷 또는 메인넷의 모든 주소에 대한 기본 토큰 잔액을 가져옵니다.
  • 마지막 거래 가져오기 : 주소에 대한 가장 최근 거래를 검색합니다.
  • 토큰 계정 가져오기 : 주소가 소유한 모든 토큰 계정 나열

필수 조건

  • Node.js(v16+)
  • NPM 또는 Bun 패키지 관리자
  • Claude Desktop(로컬 테스트용)

설치

  1. 저장소를 복제합니다.

지엑스피1

  1. 종속성 설치:
npm install # or bun install
  1. 프로젝트를 빌드하세요:
npm run build # or bun run build

프로젝트 구조

주요 서버 구현은 src/index.ts 에 있습니다.

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { Connection, PublicKey } from "@solana/web3.js"; import { z } from "zod"; const connectionTestnet = new Connection("https://rpc.testnet.soo.network/rpc"); const connectionMainnet = new Connection("https://rpc.mainnet.soo.network/rpc"); const server = new McpServer({ name: "svm-mcp", version: "0.0.1", capabilities: [ "get-soon-testnet-balance", "get-soon-testnet-last-transaction", "get-soon-testnet-account-tokens", "get-soon-mainnet-balance", "get-soon-mainnet-last-transaction", "get-soon-mainnet-account-tokens", ], });

도구 구현

균형을 잡으세요

server.tool( "get-soon-testnet-balance", "Get the balance of a address on the Soon testnet", { address: z.string().describe("The Solana address to get the balance of"), }, async ({ address }) => { try { const balance = await connectionTestnet.getBalance(new PublicKey(address)); return { content: [ { type: "text", text: `Balance: ${balance}`, }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error getting balance: ${error instanceof Error ? error.message : String(error)}`, }, ], }; } } );

마지막 거래 가져오기

server.tool( "get-soon-testnet-last-transaction", "Get the last transaction of an address on the Soon testnet", { address: z .string() .describe("The Solana address to get the last transaction for"), }, async ({ address }) => { try { // Fetch the most recent transaction signatures for the address const signatures = await connectionTestnet.getSignaturesForAddress( new PublicKey(address), { limit: 1 } // Limit to just the most recent transaction ); if (signatures.length === 0) { return { content: [ { type: "text", text: "No transactions found for this address", }, ], }; } // Get the most recent transaction using its signature const latestSignature = signatures[0].signature; const transaction = await connectionTestnet.getConfirmedTransaction( latestSignature ); return { content: [ { type: "text", text: JSON.stringify(transaction), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error getting transaction: ${error instanceof Error ? error.message : String(error)}`, }, ], }; } } );

토큰 계정 받기

server.tool( "get-soon-testnet-account-tokens", "Get the tokens of a address on the Soon testnet", { address: z.string().describe("The Solana address to get the tokens of"), }, async ({ address }) => { try { const tokens = await connectionTestnet.getTokenAccountsByOwner( new PublicKey(address), { programId: new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"), } ); return { content: [ { type: "text", text: JSON.stringify(tokens), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error getting tokens: ${error instanceof Error ? error.message : String(error)}`, }, ], }; } } );

서버 초기화

async function main() { try { console.error("Starting MCP server..."); const transport = new StdioServerTransport(); console.error("Transport initialized, connecting to server..."); await server.connect(transport); console.error("Server connection established successfully"); // The server will keep running in this state } catch (error) { console.error("There was an error connecting to the server:", error); process.exit(1); } } main().catch((err) => { console.error("There was an error starting the server:", err); process.exit(1); });

구성

클로드 데스크톱 구성

Claude Desktop과 함께 이 MCP 서버를 사용하려면 claude_desktop_config.json 파일에 다음을 추가하세요.

{ "mcpServers": { "svm-mcp": { "command": "bun", "args": ["/path/to/svm-mcp/build/index.js"] } } }

RPC 엔드포인트 사용자 지정

다른 RPC 엔드포인트를 사용하거나 다른 Solana 호환 블록체인에 연결하려면 src/index.ts 에서 연결 URL을 편집하세요.

const connectionTestnet = new Connection("YOUR_TESTNET_RPC_URL"); const connectionMainnet = new Connection("YOUR_MAINNET_RPC_URL");

Claude와 함께 사용

MCP 서버가 실행 중이고 Claude에 연결되면 다음 명령을 사용할 수 있습니다.

주소 잔액 확인

Can you check the balance of this SOON testnet address: <address>

최근 거래 가져오기

What is the last transaction made by <address> on SOON testnet?

토큰 보유량 검색

What tokens does <address> hold on SOON mainnet?

감사의 말

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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Claude AI를 SOON 및 기타 SVM 기반 블록체인과 연결하는 모델 컨텍스트 프로토콜 서버로, 이를 통해 사용자는 SOON 테스트넷과 메인넷에서 계좌 잔액을 확인하고, 최근 거래를 가져오고, 토큰 보유량을 볼 수 있습니다.

  1. 개요
    1. 특징
      1. 필수 조건
        1. 설치
          1. 프로젝트 구조
            1. 도구 구현
              1. 균형을 잡으세요
              2. 마지막 거래 가져오기
              3. 토큰 계정 받기
              4. 서버 초기화
            2. 구성
              1. 클로드 데스크톱 구성
              2. RPC 엔드포인트 사용자 지정
            3. Claude와 함께 사용
              1. 주소 잔액 확인
              2. 최근 거래 가져오기
              3. 토큰 보유량 검색
            4. 감사의 말

              Related MCP Servers

              • -
                security
                F
                license
                -
                quality
                A Model Context Protocol server that enables AI assistants to access Flow blockchain data and perform operations such as checking balances, resolving domains, executing scripts, and submitting transactions.
                Last updated -
                JavaScript
                • Linux
                • Apple
              • -
                security
                F
                license
                -
                quality
                A Model Context Protocol server that provides onchain tools for Claude AI, allowing it to interact with the Solana blockchain through a standardized interface for operations like managing assets, executing token operations, and retrieving network information.
                Last updated -
                6
                TypeScript
              • -
                security
                A
                license
                -
                quality
                A Model Context Protocol server for integrating AI assistants like Claude Desktop with the Stellar blockchain, enabling wallet connections, token listings, balance queries, and fund transfers.
                Last updated -
                5
                JavaScript
                MIT License
                • Apple
                • Linux
              • -
                security
                A
                license
                -
                quality
                A production-ready Model Context Protocol server implementation that connects AI assistants to the TON blockchain, allowing them to query wallet balances, transaction details, smart contracts, and other blockchain data.
                Last updated -
                TypeScript
                MIT License

              View all related MCP servers

              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/rkmonarch/svm-mcp'

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