skills/injective-mcp-servers/SKILL.md
Set up and run Injective MCP servers. Needed by multiple Injective skills which perform MCP tool calls.
npx skillsauth add injectivelabs/agent-skills injective-mcp-serversInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Model-Context-Protocol (MCP) servers facilitate discovery and expose tools, intended to be called by LLMs. This skill provides instructions on how to set up and use MCP servers that are important for Injective.
Not applicable, as we provide a hosted MCP server for you.
Simply connect to https://docs.injective.network/mcp,
which exposes a streamable HTTP endpoint that most MCP clients are able to consume.
Perform MCP tool calls:
SearchInjectiveDocs - Searches official Injective documentation. Returns results including citations.See: https://docs.injective.network/developers-ai/documentation-mcp.md
Installation:
git clone https://github.com/InjectiveLabs/mcp-server injective-mcp-server
cd injective-mcp-server
npm install && npm run build
Run manually:
INJECTIVE_NETWORK="mainnet" node ./dist/mcp/server.js
Run via Claude Code:
Edit ~/.claude/mcp.json or the MCP configuration within your project to include the following:
{
"mcpServers": {
"injective": {
"command": "node",
"args": ["/path/to/injective-mcp-server/dist/mcp/server.js"],
"env": {
"INJECTIVE_NETWORK": "mainnet"
}
}
}
}
Perform MCP tool calls:
wallet_generate - Generate a new Injective wallet. Returns address + mnemonic (shown once).wallet_import - Import a wallet from a hex private key.wallet_list - List all wallets in the local keystore (addresses only - no keys).wallet_remove - Permanently delete a wallet from the keystore.market_list - List all active perpetual futures markets.market_price - Get the current oracle price for a market by symbol (e.g. BTC).account_balances - Get bank + subaccount balances. Supports all token types.account_positions - Get open perpetual positions with unrealized P&L.token_metadata - Look up symbol, decimals, and type for any denom.trade_open - Open a position with a market order (Cosmos signing).trade_close - Close an open position with a market order (Cosmos signing).trade_open_eip712 - Open a position using EIP-712 Ethereum signing (MetaMask-compatible keys).trade_close_eip712 - Close a position using EIP-712 Ethereum signing (MetaMask-compatible keys).trade_limit_open - Open a limit order.trade_limit_orders - List open limit orders.trade_limit_close - Cancel a limit order by orderHash.trade_limit_states - Query order states by order hash.transfer_send - Send tokens to another Injective address.subaccount_deposit - Deposit from bank balance into a trading subaccount.subaccount_withdraw - Withdraw from a trading subaccount back to bank balance.bridge_withdraw_to_eth - Withdraw to Ethereum via the Peggy bridge (~30 min, fee applies).bridge_debridge_quote - Get a deBridge DLN quote to any supported chain. Read-only.bridge_debridge_send - Bridge tokens from Injective to another chain via deBridge DLN.evm_broadcast - Broadcast a raw EVM transaction on Injective EVM.See: https://raw.githubusercontent.com/InjectiveLabs/mcp-server/refs/heads/main/README.md
Critical findings for anyone building on or extending the MCP server, or integrating with MetaMask.
getEip712TypedData) uses non-standard domain types (verifyingContract: "cosmos", salt: "0" as strings). MetaMask's eth_signTypedData_v4 silently produces invalid signatures with V1. Always use getEip712TypedDataV2 + SIGN_EIP712_V2.getEip712TypedDataV2() and createTransaction() must receive the exact same fee object. If one uses the SDK default and the other a custom fee, the chain reconstructs different typed data → hash mismatch → signature verification failure.evmChainId can be any EVM chain. Injective EIP-712 signing works regardless of which EVM chain MetaMask is connected to. Read chain ID from eth_chainId and pass to both the EIP-712 domain and createWeb3Extension.fromJSON ScalingMsgCreateDerivativeMarketOrder.fromJSON applies ×10^18 internally. It expects values in chain units (price/margin already ×10^6 for USDT markets), then appends 18 decimal places for protobuf. Pass: price = humanPrice × 10^6, margin = humanMargin × 10^6, quantity = humanQty (not scaled by quote decimals).margin == price × qty × initialMarginRatio exactly, the chain may reject due to rounding.max(oraclePrice, markPrice) for validation. The chain validates margin against the higher of oracle and mark price. Margin calculated from oracle alone may be insufficient if mark > oracle.stakeUsdt is margin, not notional. In web apps, the user's stake parameter is their margin. qty = stake × leverage / price, not notional / price.margin: '0' for reduce-only. No separate isReduceOnly flag needed on Injective.MsgDeposit (or subaccount_deposit tool call) is required to move USDT from bank → subaccount before placing derivative orders. Always check subaccount balance and auto-deposit if needed.server.js serves from dist/, deploy built files to dist/, not the project root.Cache-Control: no-cache, no-store, must-revalidate on HTML responses, browsers serve stale JS bundles after deploys.This skill does not use or depend upon any other skill.
Must have Node.js v22 or higher.
Check with node -v.
development
Detect breaking changes in Injective core between two tagged releases. For use in developer documentation and release notes.
development
Integrate Injective RFQ taker flows into browser apps and operational quote monitors. Use this skill when building, reviewing, or debugging RFQ gateway autosign settlement, Web3Gateway AuthZ setup, manual TakerStream quote collection, RFQ open/close flows, conditional TP/SL intents, quote uptime probes, market-readiness checks, or mainnet RFQ frontend integrations. Covers mainnet parameters, canonical decimals, quote windows, signer slots, market discovery, quote-hit diagnostics, and production RFQ gotchas.
tools
Enables management of Linear issues, teams, projects, comments, or configuration via the `linear` CLI
tools
Mass create, derive, and manage Injective wallets. Generate wallets from mnemonics (BIP-44 HD derivation), create random wallets, convert between ETH/INJ addresses, and batch fund wallets with INJ or USDT. Supports bulk wallet generation and batch funding.