使用说明
MIDL MCP服务器
一个生产就绪的模型上下文协议(MCP)服务器,用于 MIDL.js 生态系统。使LLM能够与比特币交互,并以安全、可检查和AI原生的方式将智能合约部署到MIDL L2(比特币锚定EVM)。
快速开始
- 安装依赖项:
git clone https://github.com/Svector-anu/midl-mcp.git
cd midl-mcp
pnpm install
完整部署指南: 部署_执行时间.md 测试指南: 功能_估计_ GIDE.md 实例: 示例_部署.md
特性
智能合约操作
deploy-contract-source-编译和部署Solidity(自动解析OpenZeppelin导入)call-contract-调用已部署合约的功能(处理BTC锚定)verify-contract-在Blockscout浏览器上验证源代码
比特币钱包操作
get-wallet-balance-检查BTC余额prepare-btc-transfer-为传输创建未签名的PSBTbroadcast-transaction-广播签名交易estimate-btc-transfer-fee-计算交易成本
区块链信息
get-address-transactions-查看交易历史记录get-blockchain-info-网络状态和信息decode-psbt-检查PSBT详细信息validate-bitcoin-address-验证地址格式
资源(只读)
midl://balance/{address}-当前BTC余额midl://utxos/{address}-未用交易产出midl://fee-rates-当前网络费用midl://block-height-当前块高度midl://network-网络配置midl://account-已连接帐户信息
配置
Claude桌面设置
将此添加到您的 claude_desktop_config.json:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"midl-bitcoin": {
"command": "npx",
"args": ["-y", "tsx", "/path/to/midl-mcp/src/index.ts"],
"env": {
"MIDL_NETWORK": "regtest",
"MIDL_MNEMONIC": "your twelve word mnemonic phrase here"
}
}
}
}
配置变量
| 变量 | 描述 | 示例 | 必填 |
|---|---|---|---|
MIDL_NETWORK |
比特币网络 | regtest, testnet, mainnet |
是的 |
MIDL_MNEMONIC |
你的钱包助记符(12或24个单词) | word1 word2 word3 ... |
是的 |
MIDL_RPC_URL |
可选自定义RPC端点 | https://mempool.space/testnet |
没有 |
特征:
- 自动交易签名
- 合同部署
- 合同互动
- BTC转账
- 完全读/写访问
**安全提示:**您的助记符永远不会离开您的机器。它仅由本地MCP服务器用于签署交易。MCP协议确保Claude不能直接访问环境变量。
重要设置步骤
- 替换
/path/to/midl-mcp使用您的实际安装路径 - 使用你真正的助记符 来自Xverse或其他比特币钱包
- 重新启动克劳德桌面 完全(Mac上的Cmd+Q,然后重新打开)
- 获得测试资金 从 https://faucet.regtest.midl.xyz (右)
用法示例
部署合约
问克劳德:
Deploy this contract:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Counter {
uint256 public count;
function increment() public { count++; }
}
与合同互动
问克劳德:
Call increment() on contract 0xYourContractAddress
查询余额
问克劳德:
What's my BTC balance?
估算费用
问克劳德:
How much would it cost to send 0.001 BTC to bcrt1q...?
看 功能_估计_ GIDE.md 12个完整的测试场景。
建筑
MIDL L2部署流程
MIDL是一个以比特币为基础的EVM。合同部署需要:
- BTC交易 -将操作锚定到比特币
- EVM交易 -包含合约字节码
- BIP322签名 -将EVM tx链接到BTC txId
- 合并提交 -两者均通过发送
eth_sendBTCTransactions
MCP服务器自动处理此完整流程!
运作原理
┌─────────────┐
│ Claude │ "Deploy this contract"
└──────┬──────┘
│
v
┌─────────────────────┐
│ MCP Server │
│ 1. Compile Solidity │ (resolves @openzeppelin imports)
│ 2. Create BTC tx │ (anchors to Bitcoin)
│ 3. Sign EVM tx │ (with BIP322)
│ 4. Submit both │ (eth_sendBTCTransactions)
│ 5. Verify contract │ (on Blockscout)
└──────┬──────────────┘
│
v
┌─────────────────────┐
│ MIDL L2 Network │
│ Bitcoin + EVM │
└─────────────────────┘
测试
运行测试套件:
pnpm test
使用Claude Desktop进行手动测试:
# Follow the testing guide
cat FEATURE_TESTING_GUIDE.md
网络资源
重新测试(测试)
- 水龙头: https://faucet.regtest.midl.xyz
- 比特币浏览器: https://mempool.regtest.midl.xyz
- EVM浏览器: https://blockscout.regtest.midl.xyz
- EVM-RPC: https://rpc.regtest.midl.xyz
测试网
- 比特币浏览器: https://mempool.space/testnet
- 水龙头: 使用外部比特币测试网水龙头
安全
设计原则
- 内存中没有私钥: 服务器从不存储私钥
- 基于记忆的签名: 用途
@midl/node用于安全交易签名 - 循环中的人类: 所有操作都需要通过Claude进行明确的用户确认
- 先测试网: 默认为testnet/regtest以确保安全
- 透明操作: 所有交易都是人类可读的
安全架构
服务器使用 预连接钱包配置模型:
- 外部建立的钱包连接(通过助记符)
- 服务器在查询的只读执行上下文中运行
- 写操作需要显式的工具调用
- MCP协议阻止直接访问环境变量
最佳实践
- 首先使用testnet/regtest 在主网之前
- 查看所有交易 确认前
- 确保你的助记符安全 永远不要分享
- 使用专用测试钱包 为了发展
- 验证合同地址 论区块探险家
文档
- 部署指导 -完整演练
- 测试指导 -测试所有12个工具
- 真实示例 -反合约部署
- MIDL JS SDK -核心SDK文档
故障排除
“未连接帐户”
解决方案: 检查 MIDL_MNEMONIC 在Claude桌面配置中
“资金不足”
解决方案: 从获取测试BTC https://faucet.regtest.midl.xyz
合同未出现在资源管理器上
解决方案: 等待1-2分钟以确认比特币区块
签名上“找不到方法”
解决方案: 确保您正在使用 MIDL_MNEMONIC 在您的配置中
克劳德没有看到工具
解决方案: 完全重新启动克劳德桌面(Mac上的Cmd+Q,然后重新打开)
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 为新功能添加测试
- 提交拉取请求
许可证
麻省理工学院
链接
- github: https://github.com/Svector-anu/midl-mcp
- MIDL网站: https://midl.xyz
- MIDL-SDK: https://js.midl.xyz
- 文档: https://js.midl.xyz/guides/deploy-contract
**专为midl.xyz打造**