MIDL MCP 服务器(Bitcoin 与 L2-MIDL 集成)
使用说明(Markdown格式)
-
项目简介 该项目是一套基于 MCP 的服务器端实现,旨在为 LLM 客户端提供统一的上下文服务。它通过读取只读资源、注册多种工具(包括区块链相关的交易、合约部署与调用等)以及提示模板,来支撑对话式的区块链交互与自动化操作。
-
主要功能点
- 资源管理:提供多种只读资源,如 BTC 地址余额、交易、区块信息等,便于 LLM 查询与呈现。
- 工具(Tools):注册多组工具,涵盖余额查询、交易费估算、PSBT 解码、地址验证、区块信息、合约部署与调用等,支持端到端的 MIDL-L2 交互流程。
- 提示模板(Prompts):为常见场景提供预设 prompts,如 explain-transaction、debug-transaction、deploy-from-source,辅助引导 LLM 生成符合 MCP 的请求。
- MCP 服务器实现:基于 @modelcontextprotocol/sdk 的 MCP 服务端实现,默认通过 stdio 传输,亦提供 HTTP/SSE 传输的扩展能力。
- 配置与安全:通过环境变量和配置包装类实现对钱包上下文的安全集成,支持两种模式( mnemonic_signing 模式与地址签名模式),对交易签名流程进行可控与审计。
-
安装步骤
- 克隆仓库并进入项目目录
- 安装依赖(推荐使用 pnpm):pnpm install
- 按需配置环境变量(见下方服务器配置与启动方式)
- 启动 MCP 服务器,默认使用标准输入输出(stdio)传输进行本地测试
-
服务器配置 MCP 客户端(如 Claude Desktop)需要知道服务器的启动命令和参数,以便建立 MCP 连接。以下为可直接使用的配置示例(以 JSON 格式给出,供在 Claude Desktop 或其他 MCP 客户端中粘贴使用;无需将其粘贴为代码块):
{ "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" } } } }
说明:
-
command/args 指定运行服务器的启动命令和参数,确保路径指向仓库中的入口文件 src/index.ts。
-
MIDL_NETWORK 用于指定区块链网络(如 regtest、testnet、mainnet、staging 等,文档中对 staging 有特殊处理)。
-
MIDL_MNEMONIC 用于 mnemonic-based 签名模式;若使用地址模式,请提供 MIDL_ACCOUNT_ADDRESS 与可选的 MIDL_ACCOUNT_PUBKEY。
-
客户端连接后,将通过 MCP 协议与服务器交互,完成资源读取、工具执行与提示渲染。
-
基本使用方法
- 启动后,服务器将以 stdio 模式对外提供 MCP 服务,LLM 客户端通过 MCP 协议向服务器发送 JSON-RPC 请求,获取资源、执行工具、获取提示模板并渲染对话。
- 常见用例包括读取 BTC 余额、查询交易、准备/签署/广播 BTC 与 EVM 交易、合约部署与调用,以及对交易/合约进行解释与调试。
- 如需在阶段性环境(如 staging/regtest)进行测试,请在环境变量中配置 MIDL_NETWORK、MIDL_RPC_URL 等,以确保连接到正确的 RPC/区块链网络节点。
-
备注
- 服务器默认使用本地 stdio 传输,若后续需要暴露 HTTP/SSE 等传输,请结合代码中的 runHttp 方法实现进行扩展。
- 与 Claude Desktop 的集成会涉及到配置文件的创建和重启,必要时清理重启应用以确保新配置生效。
-
其他信息
- 本实现包含完整的资源、工具、提示的注册逻辑,以及对配置的包装与验证,目标是在测试网络(testnet/regtest)环境中提供可运行且可扩展的 MCP 服务端。
-
参考与文档
- README 中的快速起步、功能说明、部署与测试等内容可作为初步指南。