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 模式与地址签名模式),对交易签名流程进行可控与审计。
  • 安装步骤

    1. 克隆仓库并进入项目目录
    2. 安装依赖(推荐使用 pnpm):pnpm install
    3. 按需配置环境变量(见下方服务器配置与启动方式)
    4. 启动 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 中的快速起步、功能说明、部署与测试等内容可作为初步指南。

服务器信息