{"id":24651626,"url":"https://github.com/opensvm/solana-mcp-server","last_synced_at":"2025-10-07T11:31:26.126Z","repository":{"id":272373280,"uuid":"916378167","full_name":"openSVM/solana-mcp-server","owner":"openSVM","description":"solana mcp sever to enable solana rpc methods","archived":false,"fork":false,"pushed_at":"2025-01-22T11:04:47.000Z","size":101,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-22T11:28:12.178Z","etag":null,"topics":["agent","agent-tools","mpc","mpc-tools","opensvm","solana"],"latest_commit_sha":null,"homepage":"http://opensvm.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openSVM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-14T01:17:16.000Z","updated_at":"2025-01-22T11:08:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"5e5cc4f6-4982-4e2f-8ae8-93c6a37aa2f8","html_url":"https://github.com/openSVM/solana-mcp-server","commit_stats":null,"previous_names":["opensvm/solana-mcp-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openSVM%2Fsolana-mcp-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openSVM%2Fsolana-mcp-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openSVM%2Fsolana-mcp-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openSVM%2Fsolana-mcp-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openSVM","download_url":"https://codeload.github.com/openSVM/solana-mcp-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235621564,"owners_count":19019522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agent-tools","mpc","mpc-tools","opensvm","solana"],"created_at":"2025-01-25T19:12:31.521Z","updated_at":"2025-10-07T11:31:26.120Z","avatar_url":"https://github.com/openSVM.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Solana MCP Server\n\nA Model Context Protocol (MCP) server that provides comprehensive access to Solana blockchain data through Cline. This server implements a wide range of Solana RPC methods, making it easy to query blockchain information directly through natural language conversations.\n\n## 🚀 Usage Modes\n\nThe Solana MCP Server supports two modes of operation:\n\n### 📡 Stdio Mode (Default)\nFor integration with Claude Desktop and other MCP clients:\n```bash\nsolana-mcp-server stdio  # or just: solana-mcp-server\n```\n\n### 🌐 Web Service Mode  \nFor HTTP API access and integration with web applications:\n```bash\n# Run on default port 3000\nsolana-mcp-server web\n\n# Run on custom port\nsolana-mcp-server web --port 8080\n```\n\n**Web Service Endpoints:**\n- `POST /api/mcp` - MCP JSON-RPC API\n- `GET /health` - Health check\n- `GET /metrics` - Prometheus metrics\n\n📖 **[Complete Web Service Documentation](./docs/web-service.md)**\n\n## Quick Installation (One-liner)\n\n🚀 **Install Solana MCP Server for Claude Desktop in one command:**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh | bash\n```\n\nThis will:\n- Download pre-built binaries (if available) or build from source\n- Configure Claude Desktop automatically  \n- Set up proper environment variables\n- Back up existing configurations\n\n**Alternative install methods:**\n\n```bash\n# Using wget\nwget -qO- https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh | bash\n\n# Manual download and run\ncurl -fsSL https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh -o install.sh\nchmod +x install.sh\n./install.sh\n```\n\nAfter installation, restart Claude Desktop and start querying Solana data directly!\n\n## Manual Installation (Advanced)\n\n### Using Pre-built Binaries\n\n1. Go to the [Releases](https://github.com/opensvm/solana-mcp-server/releases) page\n2. Download the appropriate binary for your system:\n   - Linux: `solana-mcp-server-linux-amd64`\n   - macOS Intel: `solana-mcp-server-macos-amd64`\n   - macOS Apple Silicon: `solana-mcp-server-macos-arm64`\n   - Windows: `solana-mcp-server-windows-amd64.exe`\n3. Make the binary executable (Linux/macOS):\n   ```bash\n   chmod +x solana-mcp-server-*\n   ```\n4. Configure Claude Desktop:\n   ```bash\n   CONFIG_DIR=\"${XDG_CONFIG_HOME:-$HOME/.config}/claude\"\n   mkdir -p \"$CONFIG_DIR\"\n   echo \"{\\\"mcpServers\\\":{\\\"solana\\\":{\\\"command\\\":\\\"$PWD/solana-mcp-server-*\\\",\\\"env\\\":{\\\"SOLANA_RPC_URL\\\":\\\"https://api.mainnet-beta.solana.com\\\"}}}}\" \u003e \"$CONFIG_DIR/config.json\"\n   ```\n\n### Building from Source\n\n```bash\ngit clone https://github.com/opensvm/solana-mcp-server.git\ncd solana-mcp-server\ncargo build --release\n```\n\nThen configure Claude Desktop with the path to `target/release/solana-mcp-server`.\n\n## Quick Deployment\n\n🚀 **One-liner deployment scripts for all platforms:**\n\n```bash\n# Local development\n./scripts/deploy-local.sh\n\n# Docker container\n./scripts/deploy-docker.sh\n\n# Kubernetes with autoscaling\n./scripts/deploy-k8s.sh\n\n# AWS Lambda\n./scripts/deploy-lambda.sh\n\n# Google Cloud Functions  \n./scripts/deploy-gcf.sh\n\n# Vercel Edge Functions\n./scripts/deploy-vercel.sh\n```\n\nSee [`scripts/README.md`](scripts/README.md) for detailed usage and requirements for each deployment option.\n\n## ⚡ Autoscaling and Monitoring\n\nThe Solana MCP Server supports dynamic scaling to handle variable load efficiently:\n\n### Features\n- **Prometheus metrics** exposed at `/metrics` endpoint\n- **Kubernetes HPA** with CPU, memory, and custom metrics\n- **Docker scaling** guidelines and automation scripts\n- **Health checks** at `/health` endpoint\n- **MCP JSON-RPC API** for web service integration\n\n### Web Service API\n\nThe server now supports both traditional stdio transport and HTTP JSON-RPC mode:\n\n```bash\n# Run as stdio transport (default)\nsolana-mcp-server stdio\n\n# Run as web service\nsolana-mcp-server web --port 3000\n```\n\n**API Endpoints:**\n- `POST /api/mcp` - Full MCP JSON-RPC 2.0 API\n- `GET /health` - Health check with capability information  \n- `GET /metrics` - Prometheus metrics\n\n**[📚 Complete MCP JSON-RPC API Documentation](./docs/mcp-json-rpc-api.md)**\n\n### Metrics Exposed\n- `solana_mcp_rpc_requests_total` - Total RPC requests by method and network\n- `solana_mcp_rpc_request_duration_seconds` - Request latency histogram\n- `solana_mcp_rpc_requests_failed_total` - Failed requests by error type\n- Standard resource metrics (CPU, memory)\n\n### Quick Start with Autoscaling\n\n```bash\n# Deploy with Kubernetes autoscaling\nkubectl apply -f k8s/deployment.yaml\nkubectl apply -f k8s/hpa.yaml\n\n# Check autoscaling status\nkubectl get hpa solana-mcp-server-hpa --watch\n\n# Access metrics\nkubectl port-forward svc/solana-mcp-service 8080:8080\ncurl http://localhost:8080/metrics\n```\n\n📊 **[Complete Autoscaling Documentation](./docs/metrics.md)** | 🐳 **[Docker Scaling Guide](./docs/docker-scaling.md)**\n\n## Available RPC Methods\n\n### Account Methods\n- `getAccountInfo`: Returns all information associated with the account of provided Pubkey\n  - Input: `pubkey` (string) - Pubkey of account to query, as base-58 encoded string\n  - Returns: Account data, balance, owner, and other metadata\n\n- `getMultipleAccounts`: Returns account information for a list of Pubkeys\n  - Input: `pubkeys` (array of strings) - List of Pubkeys to query\n  - Returns: Array of account information\n\n- `getProgramAccounts`: Returns all accounts owned by the provided program Pubkey\n  - Input: `programId` (string) - Program Pubkey to query\n  - Returns: Array of owned accounts with their data\n\n- `getBalance`: Returns the SOL balance of an account\n  - Input: `pubkey` (string) - Account Pubkey to query\n  - Returns: Balance in lamports (1 SOL = 1,000,000,000 lamports)\n\n- `getLargestAccounts`: Returns the 20 largest accounts by lamport balance\n  - Input: Optional `filter` (string) - Filter by account type (circulating|nonCirculating)\n  - Returns: Array of accounts with their balances\n\n- `getMinimumBalanceForRentExemption`: Returns minimum balance for rent exemption\n  - Input: `dataSize` (integer) - Size of account data in bytes\n  - Returns: Minimum lamports required for rent exemption\n\n### Block Methods\n- `getBlock`: Returns identity and transaction information about a confirmed block\n  - Input: `slot` (integer) - Slot number to query\n  - Returns: Block data including hash, parent, and transactions\n\n- `getBlocks`: Returns a list of confirmed blocks between two slots\n  - Input: `start_slot` (integer), `end_slot` (integer)\n  - Returns: Array of block slots\n\n- `getBlocksWithLimit`: Returns a list of confirmed blocks starting at given slot\n  - Input: `start_slot` (integer), `limit` (integer)\n  - Returns: Array of block slots up to limit\n\n- `getBlockTime`: Returns estimated production time of a block\n  - Input: `slot` (integer)\n  - Returns: Unix timestamp (seconds since epoch)\n\n- `getBlockHeight`: Returns current block height\n  - Input: None\n  - Returns: Current block height\n\n- `getBlockCommitment`: Returns commitment for particular block\n  - Input: `slot` (integer)\n  - Returns: Block commitment information\n\n- `getBlockProduction`: Returns recent block production information\n  - Input: Optional `identity` (string) - Validator identity, `range` (object)\n  - Returns: Block production stats\n\n- `getSlot`: Returns the current slot the node is processing\n  - Input: Optional `commitment` (string) - Commitment level\n  - Returns: Current slot\n\n- `getSlotLeaders`: Returns slot leaders for a given slot range\n  - Input: `startSlot` (integer), `limit` (integer)\n  - Returns: Array of validator identity pubkeys\n\n- `getFirstAvailableBlock`: Returns the lowest confirmed block still available\n  - Input: None\n  - Returns: First available block slot\n\n- `getGenesisHash`: Returns the genesis hash of the ledger\n  - Input: None\n  - Returns: Genesis hash as string\n\n### System Methods\n- `getHealth`: Returns current health status of the node\n  - Input: None\n  - Returns: \"ok\" if healthy, error otherwise\n\n- `getVersion`: Returns current Solana version running on the node\n  - Input: None\n  - Returns: Version info including feature set\n\n- `getIdentity`: Returns identity pubkey for the current node\n  - Input: None\n  - Returns: Node identity pubkey\n\n- `getClusterNodes`: Returns information about all cluster nodes\n  - Input: None\n  - Returns: Array of node information\n\n- `getLeaderSchedule`: Returns the leader schedule for an epoch\n  - Input: Optional `slot` (integer), `identity` (string)\n  - Returns: Leader schedule by validator identity\n\n- `getVoteAccounts`: Returns account info and stake for all voting accounts\n  - Input: Optional `votePubkey` (string), configuration parameters\n  - Returns: Current and delinquent vote accounts\n\n### Epoch and Inflation Methods\n- `getEpochInfo`: Returns information about the current epoch\n  - Input: None\n  - Returns: Epoch info including slot and block height\n\n- `getEpochSchedule`: Returns epoch schedule information\n  - Input: None\n  - Returns: Epoch schedule parameters\n\n- `getInflationGovernor`: Returns current inflation governor\n  - Input: None\n  - Returns: Inflation parameters\n\n- `getInflationRate`: Returns specific inflation values for current epoch\n  - Input: None\n  - Returns: Inflation rates\n\n- `getInflationReward`: Returns inflation reward for list of addresses\n  - Input: `addresses` (array of strings), optional `epoch` (integer)\n  - Returns: Array of inflation rewards\n\n### Token Methods\n- `getTokenAccountBalance`: Returns token balance of an SPL Token account\n  - Input: `accountAddress` (string) - Token account to query\n  - Returns: Token amount with decimals\n\n- `getTokenAccountsByDelegate`: Returns all token accounts by approved delegate\n  - Input: `delegateAddress` (string)\n  - Returns: Array of token accounts\n\n- `getTokenAccountsByOwner`: Returns all token accounts by token owner\n  - Input: `ownerAddress` (string)\n  - Returns: Array of token accounts\n\n- `getTokenLargestAccounts`: Returns 20 largest accounts of a token type\n  - Input: `mint` (string) - Token mint to query\n  - Returns: Array of largest token accounts\n\n- `getTokenSupply`: Returns total supply of an SPL Token type\n  - Input: `mint` (string) - Token mint to query\n  - Returns: Total supply with decimals\n\n### Transaction Methods\n- `getTransaction`: Returns transaction details for confirmed transaction\n  - Input: `signature` (string) - Transaction signature\n  - Returns: Transaction info and status\n\n- `getSignaturesForAddress`: Returns signatures for address's transactions\n  - Input: `address` (string), optional `limit` (integer)\n  - Returns: Array of transaction signatures\n\n- `getSignatureStatuses`: Returns statuses of a list of signatures\n  - Input: `signatures` (array of strings)\n  - Returns: Array of transaction statuses\n\n- `getTransactionCount`: Returns current Transaction count from ledger\n  - Input: None\n  - Returns: Transaction count\n\n- `simulateTransaction`: Simulate sending a transaction\n  - Input: `transaction` (string) - Encoded transaction\n  - Returns: Simulation results\n\n- `sendTransaction`: Send a transaction\n  - Input: `transaction` (string) - Signed encoded transaction\n  - Returns: Transaction signature\n\n### Other Methods\n- `getFeeForMessage`: Get the fee for a message\n  - Input: `message` (string) - Encoded message\n  - Returns: Fee in lamports\n\n- `getLatestBlockhash`: Returns the latest blockhash\n  - Input: None\n  - Returns: Blockhash and last valid slot\n\n- `isBlockhashValid`: Returns whether a blockhash is still valid\n  - Input: `blockhash` (string)\n  - Returns: Validity status\n\n- `getStakeMinimumDelegation`: Returns stake minimum delegation\n  - Input: None\n  - Returns: Minimum stake delegation in lamports\n\n- `getSupply`: Returns information about current supply\n  - Input: None\n  - Returns: Supply info including total and circulating\n\n- `requestAirdrop`: Request an airdrop of lamports to a Pubkey\n  - Input: `pubkey` (string), `lamports` (integer)\n  - Returns: Transaction signature\n\n## Usage Examples\n\nOnce configured, you can interact with the Solana blockchain through natural language in Cline. Here are some example queries:\n\n### Basic Queries\n- \"What's the SOL balance of address Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr?\"\n- \"Show me the current slot number\"\n- \"Get information about the latest block\"\n- \"What's the current inflation rate?\"\n- \"Show me the token accounts owned by address ...\"\n\n### Multi-Network Queries\n- \"List all available SVM networks\"\n- \"Enable Eclipse mainnet for queries\"\n- \"Check SOL balance on all enabled networks\"\n- \"Compare transaction counts across networks\"\n\n### Advanced Operations\n- \"Show me the largest USDC token accounts\"\n- \"Get the leader schedule for the current epoch\"\n- \"Find all accounts owned by the SPL Token program\"\n- \"Check the block production stats for a validator\"\n\n## Security\n\nThis project undergoes regular security audits using `cargo audit`. Our CI/CD pipeline automatically scans for vulnerabilities and generates reports.\n\n### Current Security Status\n- ✅ **Active monitoring**: Weekly automated security scans\n- ✅ **Dependency updates**: Regular updates to latest secure versions\n- ⚠️ **Known acceptable risks**: Some vulnerabilities exist in deep Solana ecosystem dependencies\n- 📋 **Full audit reports**: Available as CI artifacts and in `docs/security-audit.md`\n\nFor detailed security information, vulnerability assessments, and risk analysis, see:\n\n📋 **[Security Audit Documentation](./docs/security-audit.md)**\n\n## Documentation\n\nFor comprehensive documentation including architecture, deployment guides, and complete API reference, see:\n\n📚 **[Complete Documentation](./docs/README.md)**\n\n🚀 **[Developer Onboarding Guide](./docs/onboarding.md)** - **Start here if you're new to the project!**\n\n- [🏗️ Architecture Overview](./docs/architecture.md) - Server internals and design\n- [🚀 Deployment Guide](./docs/deployment.md) - Local, serverless, and endpoint deployment\n- [📖 API Reference](./docs/api-reference.md) - Complete method documentation\n- [⚙️ Configuration Guide](./docs/configuration.md) - Configuration options and management\n\n## Environment Variables\n\n- `SOLANA_RPC_URL`: (Optional) The Solana RPC endpoint to use. Defaults to \"https://api.mainnet-beta.solana.com\" if not specified.\n- `SOLANA_COMMITMENT`: (Optional) Commitment level (processed|confirmed|finalized). Defaults to \"confirmed\".\n- `SOLANA_PROTOCOL_VERSION`: (Optional) MCP protocol version. Defaults to latest.\n\n## Development\n\n### Prerequisites\n- Rust and Cargo\n- Solana CLI tools (optional, for testing)\n\n### Building\n```bash\ncargo build\n```\n\n### Running\n```bash\ncargo run\n```\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensvm%2Fsolana-mcp-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopensvm%2Fsolana-mcp-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensvm%2Fsolana-mcp-server/lists"}