Base MCP Server

Official
by base

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Allows interaction with Coinbase API for retrieving wallet addresses, listing balances, transferring funds, onramping funds, and managing ERC20 tokens

  • Enables deployment of smart contracts written in Solidity to the Base Network blockchain

기본 MCP 서버 🔵

Claude Desktop 및 Cursor와 같은 AI 애플리케이션을 위한 온체인 도구를 제공하는 MCP(Model Context Protocol) 서버로, 이를 통해 이러한 애플리케이션이 Base Network 및 Coinbase API와 상호 작용할 수 있습니다.

개요

이 MCP 서버는 Base에서 모든 작업을 수행할 수 있는 도구를 제공하여 모든 MCP 클라이언트의 기능을 확장합니다.

  • 지갑 주소 검색
  • 지갑 잔액 목록
  • 지갑 간 자금 이체
  • 스마트 계약 배포
  • Morpho 볼트와 상호 작용하여 온체인 대출을 받으세요
  • 계약 함수 호출
  • Coinbase를 통한 Onramp 자금
  • ERC20 토큰 관리
  • NFT(ERC721 및 ERC1155) 목록 및 전송
  • USDC로 OpenRouter 크레딧 구매

서버는 Base Developer Tools와 AgentKit을 기반으로 Base와 상호 작용합니다.

3P 프로토콜, 도구 및 데이터 소스를 사용하여 Base MCP 확장

Base MCP는 확장 가능하도록 설계되어 사용자가 직접 타사 프로토콜, 도구 및 데이터 소스를 추가할 수 있습니다. 이 섹션에서는 새로운 기능으로 Base MCP 서버를 확장하는 방법을 간략하게 설명합니다.

새로운 도구 추가

Base MCP 서버에 새 도구를 추가하려면 다음 단계를 따르세요.

  1. src/tools 디렉토리에 도구에 대한 새 디렉토리를 만듭니다.
  2. 기존 패턴에 따라 도구를 구현합니다.
    • index.ts : 도구 정의 및 내보내기
    • schemas.ts : 도구에 대한 입력 스키마를 정의합니다.
    • handlers.ts : 도구의 기능을 구현합니다.
  3. src/tools/index.ts 에 있는 사용 가능한 도구 목록에 도구를 추가합니다.
  4. README.md에 도구에 대한 설명서를 추가하세요.
  5. examples.md에 도구 사용 방법에 대한 예를 추가하세요.
  6. 도구에 대한 테스트를 작성하세요

프로젝트 구조

Base MCP 서버는 도구에 대해 다음 구조를 따릅니다.

지엑스피1

도구 개발을 위한 모범 사례

Base MCP를 위한 새로운 도구를 개발할 때:

  • 기존 코드 스타일과 패턴을 따르세요
  • 도구에 명확하고 집중적인 목적이 있는지 확인하세요.
  • 포괄적인 입력 검증 제공
  • 자세한 오류 처리를 포함합니다
  • 철저한 문서를 작성하세요
  • 도구 사용 방법을 보여주는 예를 추가하세요
  • 도구에 대한 테스트를 포함합니다

새로운 도구와 프로토콜을 추가하는 것을 포함하여 Base MCP에 기여하는 것에 대한 자세한 내용은 CONTRIBUTING.md 파일을 참조하세요.

필수 조건

  • Node.js(v16 이상)
  • npm 또는 yarn
  • Coinbase API 자격 증명(API 키 이름 및 개인 키)
  • 지갑 시드 문구
  • Coinbase 프로젝트 ID(온램프 기능용)
  • Alchemy API 키(NFT 기능에 필요)
  • 선택 사항: OpenRouter API 키(OpenRouter 크레딧 구매용)

설치

옵션 1: npm에서 설치(권장)

# Install globally npm install -g base-mcp # Or install locally in your project npm install base-mcp

패키지가 설치되면 다음 명령을 사용하여 클라이언트를 구성할 수 있습니다.

base-mcp --init

옵션 2: 소스에서 설치

  1. 이 저장소를 복제하세요:
    git clone https://github.com/base/base-mcp.git cd base-mcp
  2. 종속성 설치:
    npm install
  3. 프로젝트를 빌드하세요:
    npm run build
  4. 선택적으로 전역적으로 연결합니다.
    npm link

구성

자격 증명을 사용하여 .env 파일을 만듭니다.

# Coinbase API credentials # You can obtain these from the Coinbase Developer Portal: https://cdp.coinbase.com/ COINBASE_API_KEY_NAME=your_api_key_name COINBASE_API_PRIVATE_KEY=your_private_key # Wallet seed phrase (12 or 24 words) # This is the mnemonic phrase for your wallet SEED_PHRASE=your seed phrase here # Coinbase Project ID (for onramp functionality) # You can obtain this from the Coinbase Developer Portal COINBASE_PROJECT_ID=your_project_id # Alchemy API Key (required for NFT functionality) # You can obtain this from https://alchemy.com ALCHEMY_API_KEY=your_alchemy_api_key # OpenRouter API Key (optional for buying OpenRouter credits) # You can obtain this from https://openrouter.ai/keys OPENROUTER_API_KEY=your_openrouter_api_key # Chain ID (optional for Base Sepolia testnet) # Use 84532 for Base Sepolia testnet # You do not have to include this if you want to use Base Mainnet CHAIN_ID=your_chain_id

테스트

MCP 서버가 제대로 작동하는지 테스트하세요.

npm test

이 스크립트는 연결 및 사용 가능한 도구를 테스트하여 MCP 서버가 올바르게 작동하는지 확인합니다.

예시

Claude를 통해 Base MCP 도구와 상호 작용하는 방법에 대한 자세한 예는 examples.md 파일을 참조하세요.

Claude Desktop과 통합

Claude Desktop에 이 MCP 서버를 추가하려면:

  1. Claude Desktop 구성 파일을 다음 위치에서 만들거나 편집하세요.
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • 리눅스: ~/.config/Claude/claude_desktop_config.json

Claude Desktop 앱에서 Claude > 설정 > 개발자 > 구성 편집으로 이동하면 이 파일에 쉽게 액세스할 수 있습니다.

  1. 다음 구성을 추가합니다.
    { "mcpServers": { "base-mcp": { "command": "npx", "args": ["-y", "base-mcp@latest"], "env": { "COINBASE_API_KEY_NAME": "your_api_key_name", "COINBASE_API_PRIVATE_KEY": "your_private_key", "SEED_PHRASE": "your seed phrase here", "COINBASE_PROJECT_ID": "your_project_id", "ALCHEMY_API_KEY": "your_alchemy_api_key", "PINATA_JWT": "your_pinata_jwt", "OPENROUTER_API_KEY": "your_openrouter_api_key", "CHAIN_ID": "optional_for_base_sepolia_testnet" }, "disabled": false, "autoApprove": [] } } }
  2. 변경 사항을 적용하려면 Claude Desktop을 다시 시작하세요.

사용 가능한 도구

get-address

지갑 주소를 검색합니다.

Claude에 대한 예제 쿼리:

"내 지갑 주소는 뭐예요?"

목록 잔액

지갑의 모든 잔액을 나열합니다.

Claude에 대한 예제 쿼리:

"내 지갑 잔액을 보여주세요."

자금 이체

지갑에서 다른 주소로 자금을 이체합니다.

매개변수:

  • destination : 자금을 이체할 주소
  • assetId : 전송할 자산 ID
  • amount : 이체할 금액

Claude에 대한 예제 쿼리:

"0x1234567890abcdef1234567890abcdef12345678로 0.01 ETH를 전송하세요."

배포 계약

블록체인에 스마트 계약을 배포합니다.

매개변수:

  • constructorArgs : 계약 생성자에 대한 인수
  • contractName : 배포할 계약의 이름
  • solidityInputJson : 계약 소스 및 설정을 포함하는 Solidity 컴파일러에 대한 JSON 입력
  • solidityVersion : solidity 컴파일러의 버전

Claude에 대한 예제 쿼리:

"간단한 ERC20 토큰 계약을 배포해 주세요."

주소-신용도-확인

주소의 평판을 확인합니다.

매개변수:

  • address : 확인할 이더리움 주소

Claude에 대한 예제 쿼리:

"0x1234567890abcdef1234567890abcdef12345678의 평판은 무엇입니까?"

get_morpho_vaults

Morpho에서 주어진 자산의 보관소를 가져옵니다.

매개변수:

  • assetSymbol : 볼트를 필터링할 자산 심볼(선택 사항)

Claude에 대한 예제 쿼리:

"USDC에 사용 가능한 Morpho 볼트를 보여주세요."

호출_계약

블록체인에서 계약 함수를 호출합니다.

매개변수:

  • contractAddress : 호출할 계약의 주소
  • functionName : 호출할 함수의 이름
  • functionArgs : 함수에 전달할 인수
  • abi : 계약의 ABI
  • value : 거래와 함께 보낼 ETH의 값(선택 사항)

Claude에 대한 예제 쿼리:

"0x1234567890abcdef1234567890abcdef12345678의 계약에서 balanceOf 함수를 호출합니다."

get_onramp_assets

특정 국가/지역에서 온램핑에 사용할 수 있는 자산을 가져옵니다.

매개변수:

  • country : 구매 사용자의 거주 국가를 나타내는 ISO 3166-1 2자리 국가 코드 문자열
  • subdivision : ISO 3166-2 2자리 국가 하위 구분 코드(미국에 필요)

Claude에 대한 예제 쿼리:

"미국, 특히 뉴욕에서 어떤 자산을 온램프할 수 있나요?"

온램프

Coinbase를 통해 자금을 조달하기 위한 URL을 가져옵니다.

매개변수:

  • amountUsd : 온램프에 필요한 자금의 양
  • assetId : onramp에 대한 자산 ID

Claude에 대한 예제 쿼리:

"100달러어치의 ETH를 온램프하고 싶습니다."

erc20_잔액

ERC20 토큰의 잔액을 가져옵니다.

매개변수:

  • contractAddress : ERC20 계약의 주소

Claude에 대한 예제 쿼리:

"0x1234567890abcdef1234567890abcdef12345678에서 내 토큰 잔액은 얼마입니까?"

erc20_전송

ERC20 토큰을 다른 주소로 전송합니다.

매개변수:

  • contractAddress : ERC20 계약의 주소
  • toAddress : 수신자의 주소
  • amount : 전송할 토큰의 양

Claude에 대한 예제 쿼리:

"10 USDC를 0x1234567890abcdef1234567890abcdef12345678로 이체하세요."

리스트_nfts

특정 주소가 소유한 NFT를 나열합니다.

매개변수:

  • ownerAddress : NFT를 나열할 소유자의 주소
  • limit : 반환할 NFT의 최대 개수(기본값: 50)

Claude에 대한 예제 쿼리:

"0x89A93a48C6Ef8085B9d07e46AaA96DFDeC717040이 소유한 NFT를 보여주세요."

전송_nft

NFT를 다른 주소로 전송합니다. ERC721 및 ERC1155 표준을 모두 지원합니다.

매개변수:

  • contractAddress : NFT 계약의 주소
  • tokenId : 전송할 NFT의 토큰 ID
  • toAddress : 수신자의 주소
  • amount : 이체할 금액(ERC1155에만 사용, 기본값: 1)

Claude에 대한 예제 쿼리:

"계약 0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c와 토큰 ID 56090175025510453004781233574040052668718235229192064098345825090519343038548을 포함하는 내 NFT를 0x1234567890abcdef1234567890abcdef12345678로 전송합니다."

buy_openrouter_credits

USDC로 OpenRouter 크레딧을 구매합니다.

매개변수:

  • amountUsd : 구매할 크레딧 금액(USD)

Claude에 대한 예제 쿼리:

"20달러 상당의 OpenRouter 크레딧을 구매하세요."

보안 고려 사항

  • 구성 파일에는 민감한 정보(API 키 및 시드 문구)가 포함되어 있습니다. 보안을 철저히 유지하고 공유되지 않도록 주의하세요.
  • 민감한 정보를 하드코딩하는 대신 환경 변수나 안전한 자격 증명 관리자를 사용하는 것을 고려하세요.
  • 자금을 이체하거나 계약을 배포할 때는 주의하세요. 이러한 작업은 블록체인에서 되돌릴 수 없습니다.
  • 온램프 기능을 사용할 때는 보안 연결을 사용하고 있는지 확인하세요.
  • 특히 자금을 이체하거나 크레딧을 구매할 때, 확인하기 전에 모든 거래 세부 사항을 확인하세요.

문제 해결

문제가 발생하는 경우:

  1. Coinbase API 자격 증명이 올바른지 확인하세요
  2. 시드 구문이 유효한지 확인하세요
  3. 올바른 네트워크(기본 메인넷)에 있는지 확인하세요.
  4. Claude Desktop 로그에서 오류 메시지를 확인하세요.

특허

MIT 라이센스

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

Base MCP에 기여하는 방법에 대한 자세한 지침은 다음과 같습니다.

  • 버그 보고
  • 개선 사항 제안
  • 개발 설정
  • 코딩 표준
  • 새로운 도구, 프로토콜 및 데이터 소스 추가 (위의 기본 MCP 확장 섹션도 참조)
  • 테스트 요구 사항
  • 문서화 표준

포괄적인 CONTRIBUTING.md 가이드를 참조하세요.

기본 기여 단계:

  1. 저장소를 포크하세요
  2. 기능 브랜치를 생성합니다( git checkout -b feature/amazing-feature )
  3. 변경 사항을 커밋하세요( git commit -m 'Add some amazing feature' )
  4. 브랜치에 푸시( git push origin feature/amazing-feature )
  5. 풀 리퀘스트 열기

코드가 기존 스타일을 따르고 적절한 테스트를 포함하는지 확인하세요.

ID: s37x9aoxum