MCP-Claude 链上铸造工具
一个MCP服务器,帮助用户创建NFT集合,将智能合约部署到Monad区块链,并通过集成克劳德人工智能生成铸造网站。
服务介绍
Monad NFT 发布工具
使用 Model Context Protocol (MCP) 开发的工具,用于创建 NFT 集合、部署智能合约以及生成铸造网页。
特性
- 🖼️ 创建 NFT 集合
- 🚀 在 Monad 链上部署合约
- 💾 IPFS 或本地存储集成
- 🌐 自动生成铸造网页
- 🤖 Claude AI 集成
安装
-
克隆仓库:
bash
git clone https://github.com/KULLANICI_ADI/REPO_ADI.git
cd REPO_ADI -
安装依赖项:
bash
npm install -
创建
.env文件:
私钥(请用真实的私钥替换此值)
PRIVATE_KEY=0x...
API 端口
PORT=3000
网络
RPC_URL=https://testnet-rpc.monad.xyz/
- 构建并启动项目:
bash
npm run build
npm start
使用
MCP API 通过以下端点提供:http://localhost:3000/api/mcp
示例请求
-
创建 NFT 集合:
bash
curl -X POST http://localhost:3000/api/mcp -H "Content-Type: application/json" -d {
"tool": "create-nft",
"params": {
"collectionName": "My NFT Collection",
"symbol": "MNFT",
"totalSupply": 100,
"mintPrice": 0.05,
"description": "示例 NFT 集合",
"imageZipPath": "./nft-images.zip"
}
} -
生成铸造网页:
bash
curl -X POST http://localhost:3000/api/mcp -H "Content-Type: application/json" -d {
"tool": "generate-website",
"params": {
"title": "My NFT Collection",
"description": "示例 NFT 集合铸造页面",
"collectionInfo": {
"name": "My NFT Collection",
"supply": 100,
"price": "0.05",
"contractAddress": "0x87F735a3B5a24a587c8C4588bDB3fD2c1857C40D"
}
}
}
与 Claude AI 的集成
此 MCP 工具可以与 Claude AI 集成工作。您可以按照如下方式向 Claude 提供使用说明:
- 向 Claude 展示 mcp-config.json 文件
- 指示 Claude 根据以下指令格式化请求:
我想使用这个 MCP 工具创建一个 NFT 集合。
集合名称为 "Claude NFT",符号为 "CNFT",总供应量为 50,铸造价格为 0.01 ETH。
你能帮我以正确的 JSON 格式创建请求吗?
- Claude 将会生成如下格式的请求:
json
{
"tool": "create-nft",
"params": {
"collectionName": "Claude NFT",
"symbol": "CNFT",
"totalSupply": 50,
"mintPrice": 0.01,
"description": "由 Claude 创建的 NFT 集合",
"imageZipPath": "./nft-images.zip"
}
}
您可以将此请求发送到您的 MCP 服务器,并与 Claude 分享结果。
Cursor 集成
要将 MCP 工具与 Cursor IDE 集成,请执行以下步骤:
- 创建
.cursor/mcp.json文件 - 重启 Cursor
- 可以从 MCP 菜单访问您的工具
故障排除
- 对于私钥问题,请检查 .env 文件或上下文参数
- 如果遇到 IPFS 错误,请尝试使用本地文件系统
- 如果铸造失败,请通过 Monad Explorer 检查交易
许可证
MIT
私钥使用
在部署 NFT 合约时,该工具按以下优先级处理私钥:
- 上下文对象(推荐):在请求上下文中安全地传递您的私钥
- 环境变量:回退到
.env文件中的PRIVATE_KEY - 虚拟密钥:使用默认的虚拟密钥(仅适用于本地测试)
上下文示例:
javascript
const nftLaunchTool = new NftLaunchTool();
const context = new Map();
// 在上下文中安全设置私钥
context.set('privateKey', 'your-private-key-here');
// 使用提供的上下文创建 NFT
const result = await nftLaunchTool.createNft({
collectionName: 'My NFT Collection',
symbol: 'MNFT',
description: '一系列独特的数字艺术品',
totalSupply: 100,
mintPrice: '0.05',
imageZipPath: './path/to/images.zip',
}, context);### 直接合约部署:
您也可以使用上下文中的私钥直接部署合约:
javascript
const deployResult = await nftLaunchTool.deployContract({
collectionName: 'My NFT Collection',
symbol: 'MNFT',
totalSupply: 100,
mintPrice: '0.05',
metadataUri: 'ipfs://QmYourMetadataCID',
rpcUrl: 'https://mainnet.infura.io/v3/YOUR_API_KEY' // 可选 - 默认为 localhost:8545
}, context);
console.log(合约已部署在: ${deployResult.contractAddress});
安全注意事项
- 切勿在应用程序代码中硬编码私钥
- 在生产环境中,建议使用环境变量或安全的密钥管理解决方案
- 如果工具检测到正在使用虚拟私钥,会自动发出警告
- 在 API 请求中传输私钥时始终使用 HTTPS
- 对于高价值部署,请考虑使用硬件钱包或密钥管理服务
- 如果在上下文或环境中未提供私钥,则将使用虚拟密钥(仅适用于本地测试)