An MCP (Model Context Protocol) server that wraps the RARE Protocol CLI, enabling any MCP-compatible AI client to deploy NFT contracts, mint tokens, and run auctions on SuperRare — directly from natural language.
Built for the Synthesis Hackathon 2026 — sponsored by SuperRare.
Note for Synthesis judges: This server is ready to test. Install rare-cli, configure a Sepolia wallet, add this server to your MCP client, and ask it to deploy a contract and mint an NFT. The full lifecycle works end-to-end.
The RARE Protocol powers $300M+ in NFT sales on SuperRare. This MCP server exposes the entire protocol surface as structured AI tools — so agents can:
- Deploy branded ERC-721 collections on Ethereum
- Mint NFTs with IPFS media upload in one step
- Create, bid, settle, and cancel auctions
- Search tokens, auctions, and collections
- Query on-chain contract and token status
Judges are AI agents. They can use this server to mint an NFT and run an auction during evaluation.
Before installing this MCP server, complete these steps in order:
Download from nodejs.org. Verify:
node --version # must be v22.x or highernpm install -g @rareprotocol/rare-cliVerify:
rare --helpImport your existing private key (recommended: use a dedicated hot wallet, not your main wallet):
rare configure --chain sepolia --private-key 0xYOUR_PRIVATE_KEY --rpc-url https://YOUR_RPC_URL
rare configure --default-chain sepoliaGet a free RPC URL from Alchemy or Infura — public endpoints are rate-limited.
Get free Sepolia testnet ETH from sepoliafaucet.com.
Verify your setup:
rare configure --show
rare wallet address- Claude Desktop: Download from claude.ai/download
- Claude Code:
npm install -g @anthropic-ai/claude-code
Once all four steps are complete, install this MCP server.
git clone https://github.com/Deconstruct2021/rare-protocol-mcp-server
cd rare-protocol-mcp-server
npm install
npm run buildFind your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
C:\Users\YOU\AppData\Roaming\Claude\claude_desktop_config.json
Add the rare-protocol entry:
{
"mcpServers": {
"rare-protocol": {
"command": "node",
"args": ["/path/to/rare-protocol-mcp-server/dist/index.js"],
"env": {
"RARE_CLI_PATH": "/usr/local/bin/rare"
}
}
}
}Windows users — use full paths with double backslashes:
{
"mcpServers": {
"rare-protocol": {
"command": "node",
"args": ["C:\\Users\\YOU\\rare-protocol-mcp-server\\dist\\index.js"],
"env": {
"RARE_CLI_PATH": "C:\\Users\\YOU\\AppData\\Roaming\\npm\\rare.cmd"
}
}
}
}Find your RARE_CLI_PATH by running:
where rare # Windows
which rare # macOS / LinuxFully quit and restart Claude Desktop after saving the config.
claude mcp add rare-protocol node /path/to/rare-protocol-mcp-server/dist/index.jsThis server defaults to Sepolia testnet — safe for testing with no real funds at risk.
rare configure --default-chain mainnet
rare configure --chain mainnet --rpc-url https://YOUR_MAINNET_RPC_URLGet a mainnet RPC URL from Alchemy — create a new app and select Ethereum Mainnet.
Just say "on mainnet" in your request and the agent will pass --chain mainnet automatically:
"Deploy a collection called 'YOUR COLLECTION NAME' with symbol 'SYMBL' on mainnet"
- Make sure your wallet has real ETH for gas (0.1 ETH is enough for several operations)
- Always do a full test run on Sepolia first
- Double-check all parameters — on-chain transactions are irreversible
| Tool | Description | Read-only |
|---|---|---|
rare_configure_show |
Show wallet and RPC config | ✓ |
rare_wallet_address |
Get configured wallet address | ✓ |
rare_deploy_contract |
Deploy ERC-721 collection | |
rare_import_contract |
Import existing contract into registry | |
rare_mint_nft |
Mint NFT with local media or IPFS URI | |
rare_auction_create |
Create reserve price auction | |
rare_auction_bid |
Place auction bid | |
rare_auction_settle |
Settle completed auction | |
rare_auction_cancel |
Cancel auction (no bids only) | |
rare_auction_status |
Check auction state | ✓ |
rare_search_tokens |
Search NFTs | ✓ |
rare_search_auctions |
Search auctions by state | ✓ |
rare_search_collections |
Search collections | ✓ |
rare_status |
Query contract/token on-chain status | ✓ |
Ask any MCP-compatible AI client:
"Deploy a new NFT collection called 'FRAME OF MIND' with symbol 'FOM' on Sepolia, mint a piece called 'Arrival' with the image at /art/arrival.png, then create a 24-hour auction with a 0.1 ETH reserve."
The agent will:
- Call
rare_configure_show— verify wallet and chain - Call
rare_deploy_contract— get contract address - Call
rare_mint_nft— get token ID - Call
rare_auction_create— auction live on-chain
No code. No UI. Pure natural language to on-chain.
| Chain | Deploy + Auction | Wallet + Search |
|---|---|---|
| mainnet | ✓ | ✓ |
| sepolia | ✓ | ✓ |
| base | ✓ | |
| base-sepolia | ✓ | |
| arbitrum | ✓ | |
| optimism | ✓ | |
| zora | ✓ |
| Contract | Mainnet | Sepolia |
|---|---|---|
| Factory | 0xAe8E375a268Ed6442bEaC66C6254d6De5AeD4aB1 |
0x3c7526a0975156299ceef369b8ff3c01cc670523 |
| Auction | 0x6D7c44773C52D396F43c2D511B81aa168E9a7a42 |
0xC8Edc7049b233641ad3723D6C60019D1c8771612 |
- Private keys are stored in
~/.rare/config.json— never in this server - All destructive tools (mint, auction, deploy) require explicit agent invocation
- Always test on Sepolia before mainnet
- Never share your
~/.rare/config.json - Use a dedicated hot wallet — never your main wallet
npm run dev # run with tsx (no build step)
npm run build # compile TypeScript
npm start # run compiled serverTest with MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jssrc/
├── index.ts # Server entry point
├── constants.ts # Chain addresses, CLI path
├── cli.ts # rare-cli execution utility
└── tools/
├── wallet.ts # configure_show, wallet_address
├── deploy.ts # deploy_contract, import_contract
├── mint.ts # mint_nft
├── auction.ts # auction_create/bid/settle/cancel/status
└── search.ts # search_tokens/auctions/collections, status
DECONSTRUCT LAB — Generative audiovisual artist on SuperRare.
Built for the Synthesis Hackathon 2026.
MIT