TypeScriptADK-TS

MCP BAMM

Interact with Borrow Automated Market Maker (BAMM) contracts on the Fraxtal blockchain.

Overview

The BAMM MCP server enables your agent to interact with Borrow Automated Market Maker contracts on the Fraxtal blockchain. It supports managing BAMM positions, adding or removing collateral, borrowing against LP tokens, and querying pool data — all through natural language.

Private Key Security

This server signs on-chain transactions using your wallet private key. Never commit your private key to source control. Always load it from a secure environment variable.

Getting Started

Install the package:

pnpm add @iqai/mcp-bamm

Use the server in your agent:

import { McpBamm } from "@iqai/adk";

const toolset = McpBamm({
  env: {
    WALLET_PRIVATE_KEY: process.env.WALLET_PRIVATE_KEY,
  },
});

const tools = await toolset.getTools();
import { McpToolset } from "@iqai/adk";

const toolset = new McpToolset({
  name: "BAMM MCP Client",
  description: "Client for BAMM DeFi operations on Fraxtal",
  transport: {
    mode: "stdio",
    command: "npx",
    args: ["-y", "@iqai/mcp-bamm"],
    env: {
      WALLET_PRIVATE_KEY: process.env.WALLET_PRIVATE_KEY,
      PATH: process.env.PATH || "",
    },
  },
});

const tools = await toolset.getTools();
{
  "mcpServers": {
    "bamm-mcp-server": {
      "command": "npx",
      "args": ["-y", "@iqai/mcp-bamm"],
      "env": {
        "WALLET_PRIVATE_KEY": "your_wallet_private_key_here"
      }
    }
  }
}

Environment Variables

VariableRequiredDescription
WALLET_PRIVATE_KEYYesPrivate key of the wallet used to sign BAMM transactions

Available Tools

ADD_COLLATERAL
bammAddress:stringamount:stringcollateralToken:stringcollateralTokenSymbol:string

Description

Add collateral to your BAMM position

BORROW
bammAddress:stringamount:stringborrowToken:stringborrowTokenSymbol:string

Description

Borrow tokens from a BAMM position

GET_POSITIONS

No parameters

Description

Get all your active BAMM positions

LEND
bammAddress:stringamount:string

Description

Lend Fraxswap LP tokens to a BAMM contract

POOL_STATS

No parameters

Description

Get statistics for all BAMM pools

REMOVE_COLLATERAL
bammAddress:stringamount:stringcollateralToken:stringcollateralTokenSymbol:string

Description

Remove collateral from your BAMM position

REPAY
bammAddress:stringamount:stringborrowToken:stringborrowTokenSymbol:string

Description

Repay borrowed tokens to a BAMM position

Integration Example

import { AgentBuilder, McpBamm } from "@iqai/adk";
import * as dotenv from "dotenv";

dotenv.config();

async function main() {
  // Initialize McpBamm toolset
  const toolset = McpBamm({
    env: {
      WALLET_PRIVATE_KEY: process.env.WALLET_PRIVATE_KEY,
    },
  });

  // Get available McpBamm tools
  const bammTools = await toolset.getTools();

  // Create agent with McpBamm tools
  const { runner } = await AgentBuilder.create("bamm_agent")
    .withModel("gemini-2.5-flash")
    .withDescription("A DeFi agent that manages BAMM positions on Fraxtal")
    .withTools(...bammTools)
    .build();

  const response = await runner.ask(
    "Add 100 FRAX as collateral to BAMM position at 0xC5B225cF058915BF28D7d9DFA3043BD53C63Ea84",
  );

  console.log(response);
}

main().catch(console.error);

Further Resources