npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@iflow-mcp/injectivelabs-core

v0.1.0

Published

AI agent library for trading perpetual futures on Injective

Readme

Injective MCP Server

An MCP (Model Context Protocol) server that gives AI agents full trading capabilities on Injective — perpetual futures, spot transfers, cross-chain bridging, and raw EVM transactions.

Connect it to Claude Desktop or Claude Code and trade with natural language.


Tools

Wallets

| Tool | Description | |---|---| | 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. |

Markets & Accounts

| Tool | Description | |---|---| | 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. |

Perpetual Trading

| Tool | Description | |---|---| | 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. |

Transfers & Subaccounts

| Tool | Description | |---|---| | 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. |

Bridging

| Tool | Description | |---|---| | 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

| Tool | Description | |---|---| | evm_broadcast | Broadcast a raw EVM transaction on Injective EVM. |


Setup

npm install
npm run build

Connect to Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Connect to Claude Code

Add to ~/.claude/mcp.json or your project's MCP config:

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

Set INJECTIVE_NETWORK to "testnet" to use the Injective testnet.


Quickstart

Once connected, a typical session looks like:

> List all BTC and ETH perpetual markets
> What's the current price of BTC?
> Show my balances for inj1...
> Deposit 100 USDT into my trading subaccount
> Open a $50 long on BTC/USDT with 5x leverage
> Show my open positions
> Close my BTC position

For limit orders:

> Open a limit buy on ETH at $3200 for $100 notional, 3x leverage
> List my open limit orders
> Cancel order 0xabc...

For bridging:

> Get a deBridge quote to bridge 50 USDT from Injective to Base
> Bridge 50 USDT to 0x... on Base via deBridge

Architecture

Claude (MCP client)
       │  tool calls over stdio
       ▼
MCP Server  (src/mcp/server.ts)
       │
       ├── config/       Network config (testnet / mainnet)
       ├── keystore/     AES-256-GCM encrypted key storage
       ├── wallets/      Wallet generation and management
       ├── markets/      Market data with in-memory caching
       ├── accounts/     Balances and positions
       ├── trading/      Perpetual market orders (Cosmos signing)
       ├── evm/eip712    Perpetual market orders (EIP-712 signing)
       ├── orders/       Perpetual limit order lifecycle
       ├── transfers/    Bank transfers and subaccount moves
       ├── bridges/      Peggy + deBridge cross-chain
       └── evm/          Generic Injective EVM tx broadcasting
              │
              ▼
     Injective Chain
     @injectivelabs/sdk-ts

Security

  • Private keys are never stored in plaintext — AES-256-GCM + scrypt at rest
  • Keys live in ~/.injective-agent/keys/ with 0600 permissions
  • Claude never sees raw private keys — only addresses and tx hashes
  • Wallet passwords are passed as tool parameters and may appear in MCP client logs — avoid reusing passwords from other services

See SECURITY.md for the full security model.


Development

npm test                   # unit tests (no network required)
npm run test:integration   # integration tests against testnet
npm run typecheck          # TypeScript type check

Token Support

All Injective denom formats are supported:

| Type | Format | Example | |---|---|---| | Native | inj | INJ | | Peggy (bridged ERC-20) | peggy0x... | USDT | | IBC | ibc/... | ATOM | | TokenFactory | factory/inj.../name | — | | MTS / Injective EVM ERC-20 | erc20:0x... | Injective EVM tokens |

Token metadata (symbol, decimals) is resolved automatically against on-chain registry and cached for the lifetime of the server process.


Networks

| Network | INJECTIVE_NETWORK | |---|---| | Mainnet | mainnet | | Testnet | testnet |

Testnet faucet: https://testnet.faucet.injective.network/