mcpField
I
injective-mcp-servers

injective-mcp-servers

github.com/injectivelabs开发641 次安装16 周前更新
代码仓库

关于 injective-mcp-servers

介绍如何配置和使用 Injective Documentation MCP Server 与 Injective MCP Server 的技能指南,涵盖文档查询、链上查询、交易、转账、跨链桥接及集成注意事项。

主要功能

  1. 01搜索 Injective 官方文档
  2. 02查询 Injective 市场与账户
  3. 03管理钱包和交易订单
  4. 04转移代币及跨链资产
  5. 05EIP-712 签名与保证金指引

适用场景

  1. 01查找带引用的 Injective 文档答案
  2. 02查看余额、市场或持仓
  3. 03提交和管理 Injective 交易
  4. 04转账或跨链到其他网络

MCP 相关

指南说明如何通过流式 HTTP 连接托管的 Injective Documentation MCP Server,以及如何安装和运行 Injective MCP Server。它介绍了文档搜索、账户和市场查询、交易、转账、桥接及原始 EVM 交易工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/injectivelabs/agent-skills --skill injective-mcp-servers

安装后在 Claude Code 中输入/injective-mcp-servers确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
TERMS_OF_USE
references/
sample-prompts.md

详细介绍

Injective MCP 服务与技能指南

模型上下文协议(MCP)服务便于发现并公开供大模型调用的工具。 本技能介绍如何设置和使用对 Injective 至关重要的 MCP 服务。

适用场景

  • 搜索 Injective 的权威信息时,请使用 Injective Documentation MCP Server。
  • 查询 Injective 主网或测试网,或在其上进行交易时,请使用 Injective MCP Server。
  • 使用完整交易功能(包括永续期货、现货转账、跨链桥接和原始 EVM 交易)时,请使用 Injective MCP Server。

活动

设置并运行 Injective Documentation MCP Server

无需设置,因为我们为你提供托管的 MCP 服务。 只需连接到 https://docs.injective.network/mcp, 该服务会公开一个大多数 MCP 客户端都能使用的可流式传输 HTTP 端点。

使用 Injective Documentation MCP Server

执行 MCP 工具调用:

  • SearchInjectiveDocs - 搜索 Injective 官方文档。返回的结果包含引用。

参见:https://docs.injective.network/developers-ai/documentation-mcp.md

设置并运行 Injective MCP Server

安装:

git clone https://github.com/InjectiveLabs/mcp-server injective-mcp-server
cd injective-mcp-server
npm install && npm run build

手动运行:

INJECTIVE_NETWORK="mainnet" node ./dist/mcp/server.js

通过 Claude Code 运行:

编辑 ~/.claude/mcp.json,或编辑项目中的 MCP 配置,并加入以下内容:

{
  "mcpServers": {
    "injective": {
      "command": "node",
      "args": ["/path/to/injective-mcp-server/dist/mcp/server.js"],
      "env": {
        "INJECTIVE_NETWORK": "mainnet"
      }
    }
  }
}
使用 Injective MCP Server

执行 MCP 工具调用:

  • wallet_generate - 生成新的 Injective 钱包。返回地址和助记词(仅显示一次)。
  • wallet_import - 从十六进制私钥导入钱包。
  • wallet_list - 列出本地密钥库中的所有钱包(仅地址,不包含密钥)。
  • wallet_remove - 从密钥库中永久删除钱包。
  • market_list - 列出所有活跃的永续期货市场。
  • market_price - 按交易对代码(例如 BTC)获取市场的当前预言机价格。
  • account_balances - 获取银行账户和子账户余额。支持所有代币类型。
  • account_positions - 获取未平仓的永续仓位及未实现盈亏。
  • token_metadata - 查询任意 denom 的代码、小数位数和类型。
  • trade_open - 使用市价单开仓(Cosmos 签名)。
  • trade_close - 使用市价单平仓(Cosmos 签名)。
  • trade_open_eip712 - 使用 EIP-712 Ethereum 签名开仓(兼容 MetaMask 的密钥)。
  • trade_close_eip712 - 使用 EIP-712 Ethereum 签名平仓(兼容 MetaMask 的密钥)。
  • trade_limit_open - 创建限价单。
  • trade_limit_orders - 列出未成交的限价单。
  • trade_limit_close - 按 orderHash 取消限价单。
  • trade_limit_states - 按订单哈希查询订单状态。
  • transfer_send - 向另一个 Injective 地址发送代币。
  • subaccount_deposit - 将银行账户余额存入交易子账户。
  • subaccount_withdraw - 从交易子账户提取资金,转回银行账户余额。
  • bridge_withdraw_to_eth - 通过 Peggy 桥提取到 Ethereum(约需 30 分钟,需支付手续费)。
  • bridge_debridge_quote - 获取通过 deBridge DLN 转至任意支持链的报价。只读。
  • bridge_debridge_send - 通过 deBridge DLN 将代币从 Injective 桥接到另一条链。
  • evm_broadcast - 在 Injective EVM 上广播原始 EVM 交易。

参见:https://raw.githubusercontent.com/InjectiveLabs/mcp-server/refs/heads/main/README.md

已知注意事项

为任何构建或扩展 MCP 服务,或与 MetaMask 集成的人员提供的重要发现。

EIP-712 签名(MetaMask)
  • 使用 V2,而不是 V1。 V1(getEip712TypedData)使用非标准的域类型(verifyingContract: "cosmos"、salt: "0" 均为字符串)。MetaMask 的 eth_signTypedData_v4 会静默地产生无效签名。始终使用 getEip712TypedDataV2 + SIGN_EIP712_V2。
  • 费用对象必须完全一致。 getEip712TypedDataV2() 和 createTransaction() 必须接收完全相同的费用对象。如果其中一个使用 SDK 默认费用,另一个使用自定义费用,链上重建的类型化数据就会不同 → 哈希不匹配 → 签名验证失败。
  • evmChainId 可以是任意 EVM 链。 无论 MetaMask 连接到哪条 EVM 链,Injective EIP-712 签名都能正常工作。通过 eth_chainId 读取链 ID,并将其传递给 EIP-712 域和 createWeb3Extension。
SDK fromJSON 的缩放处理
  • MsgCreateDerivativeMarketOrder.fromJSON 内部会乘以 10^18。 它要求传入链单位的数值(USDT 市场的价格/保证金已乘以 10^6),然后会为 protobuf 补上 18 位小数。传入:price = humanPrice × 10^6、margin = humanMargin × 10^6、quantity = humanQty(不要按报价币的小数位缩放)。
保证金计算
  • 在精确的最低值之上增加 1–2% 的缓冲。 如果 margin == price × qty × initialMarginRatio 恰好相等,链可能会因舍入问题拒绝该订单。
  • 验证时使用 max(oraclePrice, markPrice)。 链会根据预言机价格和标记价格中的较高者验证保证金。如果标记价格高于预言机价格,仅按预言机价格计算的保证金可能不足。
  • stakeUsdt 指的是保证金,而不是名义价值。 在 Web 应用中,用户的质押参数就是其保证金。qty = stake × leverage / price,而不是 notional / price。
平仓订单
  • 减仓时使用 margin: '0'。 Injective 不需要单独的 isReduceOnly 标志。
  • 平仓时使用 1% 的滑点。 对低杠杆仓位使用 5% 的滑点可能触发“订单价格超过破产价格”错误。
子账户存款
  • 银行余额 ≠ 交易所子账户余额。 下达衍生品订单前,必须使用 MsgDeposit(或调用 subaccount_deposit 工具)将 USDT 从银行账户转入子账户。始终检查子账户余额,并在需要时自动存款。
部署(Express / Web 应用)
  • 从正确的子目录提供文件。 如果 server.js 从 dist/ 提供文件,就应将构建文件部署到 dist/,而不是项目根目录。
  • 为 HTML 设置禁用缓存的响应头。 如果 HTML 响应没有 Cache-Control: no-cache, no-store, must-revalidate,浏览器在部署后可能仍会提供过期的 JS 包。

相关技能

此技能不使用也不依赖任何其他技能。

前置条件

必须安装 Node.js v22 或更高版本。 使用 node -v 检查。

评论

支持 Markdown