Layerzero_mcp

Layerzero_mcp

🚀 LayerZero OFT MCP 服务器

LayerZero OFT MCP 是一个用 TypeScript/Node.js 编写的模型上下文协议(MCP)服务器,用于在多个区块链上创建、部署和桥接 跨链可替代代币(OFT)。交互主要通过 ethers.js 进行管理,利用 LayerZero 合约和协议实现跨链通信。

该 MCP 通过提供一个结构化、上下文感知的层来抽象跨链代币创建和跨链交互的复杂性,用于发起、管理和桥接 OFT。它旨在方便与需要安全可靠地访问去中心化跨链功能的大语言模型(LLM)代理、机器人或应用程序集成。

确定性跨链合约地址
MCP 使用 Solidity 的 CREATE2 操作码在每个链上的相同地址部署 OFT 合约。 该地址由字节码和一个固定的盐派生而来,目前盐中包含 代币名称和符号。部署时请确保使用唯一的标识符,因为不能使用同一个工厂两次创建相同的代币(相同的名称和符号)。

这是一个可行的起点。你可以引入自己的 OFT 合约,并通过自定义功能或代币逻辑对其进行扩展。该系统在设计上是开放且可扩展的。

✨ 主要特性

此 MCP 服务器提供以下交互工具:

1. deploy-and-configure-oft-multichain

  • 描述:将跨链可替代代币(OFT)合约部署到一个或多个指定的支持 LayerZero 的链上。部署成功后,它会将每个新的 OFT 合约配置为与集合中所有其他新部署的 OFT 成为对等合约。它还会在每个合约上设置标准强制选项(例如,设置 gas 限制),以实现向其对等合约的跨链转移。
  • 参数
    • tokenName(字符串):代币名称(例如,"MyToken")。
    • tokenSymbol(字符串):代币符号(例如,"MYT")。
    • initialTotalSupply(字符串):以人类可读格式表示的代币总供应量(例如,"1000000")。这将使用 decimals 值进行解析。
    • decimals(数字,可选,默认值:18):代币的小数位数。
    • targetChains(字符串数组):要在其上部署和配置 OFT 的链名称列表(来自 utils.ts 中配置的 NETWORKS,例如,["Arbitrum sepolia", "baseSepolia"])。必须至少选择一个。要实现对等连接,必须指定至少两条链并确保部署成功。
    • owner(字符串,可选):部署合约的以太坊地址。如果未提供,则默认为 .env 文件中设置的 OWNER_ADDRESS
  • 输出:详细说明每个目标链上部署的成功或失败情况、它们之间的对等状态以及设置强制选项的状态。

2. bridge-oft

  • 描述:使用 LayerZero 将 OFT 代币从一个链桥接到另一个链。
  • 参数
    • tokenAddress(字符串):源链上 OFT 合约的地址。
    • amount(字符串):要桥接的代币数量(例如,"100")。假设使用 18 位小数进行解析;如有必要,请确保你的代币使用此设置或修改该工具。
    • fromChain(字符串):源链名称(例如,"Arbitrum sepolia")。
    • toChain(字符串):目标链名称(例如,"baseSepolia")。
    • receiverAddress(字符串):目标链上接收代币的地址。
    • extraOptions(字符串,可选,默认值:"0x"):LayerZero 消息执行的额外选项。
  • 输出:桥接交易的详细信息,包括交易哈希。

📚 详细文档

⚠️ 重要提示

在运行服务器之前,你必须将这些路径替换为你的合约工件的绝对路径。

// --- index.ts ---
// 将这些路径替换为你的 OFT 合约的实际 ABI 和字节码 JSON 文件路径(例如,来自 MyOFT.sol)
const oftPath = resolve(
"D:\\Dev\\layerzero-mcp\\artifacts\\MyOFT\\MyOFT.json"
);
// 工厂合约同理
// 这应该指向 CREATE2Factory 的 ABI 和字节码 JSON 文件
const factoryPath = resolve(
"D:\\Dev\\layerzero-mcp\\artifacts\\factory\\CREATE2Factory.json"
);
// --- --- ---

如果不这样做,在尝试使用 deploy-and-configure-oft-multichain 工具时将导致错误。bridge-oft 工具也需要正确设置 OFT_ABI 才能与现有合约进行交互。

📦 安装指南

前提条件

  • Node.js(建议使用 v16 或更高版本)
  • npmyarn
  • 能够通过模型上下文协议进行通信的大语言模型(LLM)或应用程序(例如,Claude for Desktop)。

安装步骤

  1. 克隆仓库
git clone https://github.com/your-username/layerzero-oft-mcp.git
cd layerzero-oft-mcp
  1. 安装依赖
npm install
# 或者
yarn install
  1. 创建 .env 文件: 复制 .env.example(如果提供)或在项目根目录中创建一个新的 .env 文件,并使用你的详细信息填充它:
PRIVATE_KEY="your_hex_encoded_private_key_here"
OWNER_ADDRESS="your_owner_ethereum_address_here"
ARBITRUM_SEPOLIA_RPC_URL="your_Arbitrum sepolia_testnet_rpc_url_here"
BASE_SEPOLIA_RPC_URL="your_base_sepolia_testnet_rpc_url_here"
ARBITRUM_FACTORY_ADDRESS="0x754a2643Ce68e0e34510B1E246254f93946AE3a1"
BASE_FACTORY_ADDRESS="0x754a2643Ce68e0e34510B1E246254f93946AE3a1"

# 如果你在 utils.ts 中配置了更多网络,请添加其他 RPC URL 环境变量

安全注意事项:切勿将包含私钥的 .env 文件提交到公共仓库。

  1. 更新 ABI 和字节码: 如上面“重要提示”部分所述,打开 layerzero-mcp.ts 并将 OFT_ABIOFT_BYTECODE 占位符替换为你的实际合约详细信息。

  2. 构建项目(如果使用 TypeScript 编译)

npm run build
# 或者
yarn run build

(此命令假设你的 package.json 中有一个 build 脚本,用于将 TypeScript 编译为 JavaScript,例如,tsc

为 Claude for Desktop 配置 MCP(示例)

将 MCP 配置添加到你的 Claude for Desktop 配置文件中(在 Windows 上通常位于 C:\Users\{User}\AppData\Roaming\Claude\claude_desktop_config.json):

{
"layerzero-oft-mcp": {
"command": "node",
"args": [
"/build/index.js"
],
"env": {
"PRIVATE_KEY": "your_hex_encoded_private_key_here",
"OWNER_ADDRESS": "your_owner_ethereum_address_here",
"ARBITRUM_SEPOLIA_RPC_URL": "your_Arbitrum_sepolia_testnet_rpc_url_here",
"BASE_SEPOLIA_RPC_URL": "your_base_sepolia_testnet_rpc_url_here",
"ARBITRUM_FACTORY_ADDRESS": "0x754a2643Ce68e0e34510B1E246254f93946AE3a1",
"BASE_FACTORY_ADDRESS": "0x754a2643Ce68e0e34510B1E246254f93946AE3a1"
}
}
}
  • 替换为你的项目目录的实际绝对路径。
  • 确保此处的 env 变量与你的服务器所需的变量相匹配,或者如果你的 Node.js 设置加载了这些变量(脚本中的 dotenv.config() 调用应该处理这个问题),则确保它们能正确从 .env 文件中获取。对于 Claude Desktop,需要在 claude_desktop_config.json 中显式设置这些变量。

遵循官方 MCP 指南,获取有关使用 Claude for Desktop 进行测试的更多详细信息。

运行应用程序及示例用法

配置完成(包括 ABI/字节码和环境变量)后,MCP 服务器将在需要时由主机应用程序(例如,Claude for Desktop)启动。

如果你使用大语言模型,可以使用自然语言提示与它进行交互。例如:

部署并配置新的 OFT: "在 Arbitrum sepolia 和 Base Sepolia 测试网上部署一个名为 'OmniCoin'(OMC)、总供应量为 500,000 个代币的新 OFT。" 这将使用 deploy-and-configure-oft-multichain 工具。

桥接现有 OFT 代币: "将 50 个 MyOFT 从 Arbitrum sepolia 桥接到 Base Sepolia 的地址 0x123...abc。该代币部署在 Arbitrum sepolia 的地址 0xabc...123 上。" 这将使用 bridge-oft 工具。

⚠️ 重要提示

请确保与你的 PRIVATE_KEY 关联的账户在相应链上有足够的 gas 代币(例如,测试网 ETH 或 MATIC),以支付部署和桥接交易费用。

🖼️ 示例截图

部署 OFT

桥接 OFT

  • 0 关注
  • 0 收藏,28 浏览
  • system 提出于 2025-09-26 14:51

相似服务问题

相关AI产品