MCP cover image
See in Github
2025-03-23

用于Solana Web3.js开发和智能合同部署的MCP服务器

1

Github Watches

1

Github Forks

0

Github Stars

Solana Web3.js MCP Server

A Model Context Protocol (MCP) server that enables AI assistants like Claude to develop and deploy Solana smart contracts end-to-end. This server acts as a bridge between AI language models and the Solana blockchain, providing a standardized interface for blockchain interactions.

Important Update: This project is currently being migrated from Solana web3.js v1.x to v2.0 to take advantage of improved performance, better type safety, and modern functional programming patterns. See the migration plan for details.

What is MCP?

The Model Context Protocol (MCP) is an open standard that allows AI assistants to access external tools and data sources in a secure, controlled manner. This server implements the MCP specification to expose Solana blockchain functionality to AI assistants.

What This Server Does

This MCP server provides AI assistants with the ability to:

  1. Interact with the Solana Blockchain: Query account data, check balances, view transaction history, and get network status from various Solana clusters (mainnet, testnet, devnet)

  2. Create and Manage Transactions: Build, simulate, sign, and send transactions to the Solana blockchain with proper error handling and fee estimation

  3. Develop Smart Contracts: Access templates, compile, test, and deploy Solana programs written in Rust using the Solana SDK or Pinocchio framework

  4. Manage Wallets and Keys: Generate keypairs, derive addresses, and interact with wallet adapters while maintaining security best practices

  5. Work with Tokens: Create, transfer, and manage SPL tokens and token accounts

Architecture

The server exposes three types of MCP capabilities:

  • Tools: Functions that perform actions like sending transactions, deploying programs, or generating keypairs
  • Resources: Data sources such as documentation, code templates, and blockchain state information
  • Prompts: Templates for guiding the AI through complex workflows like smart contract development

All blockchain interactions are performed through the @solana/web3.js library and related SDKs, with the MCP server acting as a secure intermediary between the AI and the blockchain.

Installation

# Clone the repository
git clone https://github.com/FrankGenGo/solana-web3js-mcp-server.git
cd solana-web3js-mcp-server

# Install dependencies
npm install

# Build the server
npm run build

# Start the server
npm start

Usage with Claude Desktop

  1. Install Claude Desktop

  2. Add the following to your Claude Desktop configuration file:

    On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "solana": {
      "command": "node",
      "args": ["/absolute/path/to/solana-web3js-mcp-server/dist/index.js"]
    }
  }
}
  1. Restart Claude Desktop

  2. You can now ask Claude to perform Solana-related tasks, such as:

    • "Create a new Solana account and show me the keypair"
    • "What's the current balance of address X?"
    • "Help me write and deploy a simple token contract on Solana devnet"

Security Considerations

  • This server does NOT store private keys by default
  • Sensitive operations (signing, deploying to mainnet) require explicit user approval
  • The server follows best practices for secure blockchain interactions

Available Tools

Account Management (Implemented)

  • getAccountInfo: Fetch and decode account information
  • checkAccountBalance: Get SOL balance for an address
  • findProgramAccounts: Find accounts owned by a program
  • getRentExemption: Calculate minimum balance for rent exemption

Transaction Management (Implemented)

  • createTransaction: Build a transaction with specified instructions
  • signTransaction: Sign a transaction with one or more keypairs
  • sendTransaction: Send and confirm a transaction on-chain
  • simulateTransaction: Simulate a transaction without sending it
  • getTransactionStatus: Check the status of a transaction

Key Management (Implemented)

  • generateKeypair: Create a new Solana keypair
  • importKeypair: Import an existing keypair from various formats
  • deriveKeypair: Derive a keypair from seed, mnemonic, or path

Program Development (Implemented)

  • deployProgram: Deploy a program to a Solana cluster
  • upgradeProgram: Upgrade an existing upgradeable program
  • generateProgramAddress: Derive a program derived address (PDA)

Token Operations (Implemented)

  • createToken: Create a new SPL token
  • mintTokens: Mint tokens to a token account
  • transferTokens: Transfer tokens between accounts
  • getTokenAccountInfo: Get token account information
  • getTokenSupply: Get the total supply of a token

Configuration Management (Planned)

  • getConfig: Get current configuration settings
  • setConfig: Update configuration parameters
  • getClusterVersion: Get Solana cluster version

Extended Keypair Management (Planned)

  • saveKeypair: Save keypair to secure storage
  • recoverKeypair: Recover keypair from seed phrase
  • verifyKeypair: Verify keypair integrity

Network Interaction (Planned)

  • requestAirdrop: Request SOL from devnet/testnet faucet
  • manageStake: Create and manage stake accounts
  • getValidators: Get validator information

Blockchain Data Inspection (Planned)

  • getBlock: Get block details by slot number
  • getBlockProduction: Get block production statistics
  • getRecentBlockhash: Get recent blockhash with fee calculator
  • getEpochInfo: Get current epoch information
  • getInflationRate: Get current inflation rate

Logging & Monitoring (Planned)

  • getLogs: Stream and filter transaction logs
  • getProgramLogs: Monitor program execution logs

Development

# Run in development mode (with auto-reload)
npm run dev

# Run tests (including integration tests against devnet)
npm test

# Lint the code
npm run lint

Setting Up Test Environment

The test suite includes integration tests that run against the Solana devnet. To set up your environment for testing:

  1. Install Solana CLI: Follow the official installation instructions

  2. Generate a test keypair:

    mkdir -p ~/solana-web3js-tests
    solana-keygen new --force --no-bip39-passphrase -o ~/solana-web3js-tests/test-keypair.json
    
  3. Fund the test keypair with devnet SOL:

    solana airdrop 1 $(solana address -k ~/solana-web3js-tests/test-keypair.json) --url devnet
    
  4. Verify the balance:

    solana balance -k ~/solana-web3js-tests/test-keypair.json --url devnet
    

The test suite will automatically use this keypair for integration tests against devnet.

Project Structure

  • src/index.ts: Main entry point (implemented)
  • src/solana-server.ts: Core server implementation (implemented)
  • src/core/connection-manager.ts: Solana connection management (implemented)
  • src/transport/: Transport layer implementations
    • src/transport/stdio.ts: Standard I/O transport (implemented)
    • src/transport/http.ts: HTTP/SSE transport (implemented)
    • src/transport/index.ts: Transport exports (implemented)
  • src/tools/: Tool implementations for Solana operations
    • src/tools/accounts/: Account management tools (implemented)
    • src/tools/transactions/: Transaction operations tools (implemented)
    • src/tools/keys/: Key management tools (implemented)
    • src/tools/programs/: Program development tools (implemented)
  • src/resources/: Resource implementations for Solana data (planned)
  • src/prompts/: Reusable prompts for common workflows (planned)
  • src/types/: TypeScript type definitions
    • src/types/solana.ts: Solana-specific type definitions (partial implementation)
    • src/types/tools.ts: Tool input/output type definitions (planned)
    • src/types/config.ts: Configuration type definitions (planned)
  • src/utils/: Utility functions and classes
    • src/utils/errors.ts: Error handling system (implemented)
    • src/utils/logging.ts: Logging system (implemented)

Extending the Server

This server is designed to be extensible. To add new functionality:

  1. Create a new tool in the appropriate file in the tools directory
  2. Register the tool in solana-server.ts
  3. Test the tool with both unit tests and integration tests

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Bora Yalcin
  • Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • Contraband Interactive
  • Emulating Dr. Jordan B. Peterson's style in providing life advice and insights.

  • rustassistant.com
  • Your go-to expert in the Rust ecosystem, specializing in precise code interpretation, up-to-date crate version checking, and in-depth source code analysis. I offer accurate, context-aware insights for all your Rust programming questions.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • modelcontextprotocol
  • 模型上下文协议服务器

  • Mintplex-Labs
  • 带有内置抹布,AI代理,无代理构建器,MCP兼容性等的多合一桌面和Docker AI应用程序。

  • huahuayu
  • 统一的API网关,用于将多个Etherscan样区块链Explorer API与对AI助手的模型上下文协议(MCP)支持。

    Reviews

    1 (1)
    Avatar
    user_b9MzvVV5
    2025-04-16

    The solana-web3js-mcp-server by FrankGenGo is a game-changer for developers working with Solana blockchain. It's incredibly powerful and simplifies many tasks associated with web3 integration. The server's setup is straightforward, and the documentation provided on the GitHub page is thorough. I recommend checking it out if you're looking to streamline your Solana development process.