MCP-BAMM

MCP-BAMM

A Model Context Protocol server that enables interaction with Borrow Automated Market Maker (BAMM) contracts on the Fraxtal blockchain, allowing users to manage positions, borrow against LP tokens, and perform other BAMM-related operations.

Category
Visit Server

README

MCP-BAMM: Model Context Protocol Server for Borrow Automated Market Maker

This project implements a Model Context Protocol (MCP) server to interact with Borrow Automated Market Maker (BAMM) contracts on the Fraxtal blockchain. It allows MCP-compatible clients (like AI assistants, IDE extensions, or custom applications) to manage BAMM positions, borrow against LP tokens, and perform other operations related to the BAMM protocol.

This server is built using TypeScript and fastmcp.

Features (MCP Tools)

The server exposes the following tools that MCP clients can utilize:

  • ADD_COLLATERAL: Add collateral to your BAMM position.

    • Parameters: bammAddress (string), amount (string), collateralToken (string, optional), collateralTokenSymbol (string, optional)
    • Requires WALLET_PRIVATE_KEY in the environment.
  • BORROW: Borrow tokens from a BAMM position.

    • Parameters: bammAddress (string), amount (string), borrowToken (string, optional), borrowTokenSymbol (string, optional)
    • Requires WALLET_PRIVATE_KEY in the environment.
  • REPAY: Repay borrowed tokens to a BAMM position.

    • Parameters: bammAddress (string), amount (string), borrowToken (string, optional), borrowTokenSymbol (string, optional)
    • Requires WALLET_PRIVATE_KEY in the environment.
  • LEND: Lend Fraxswap LP tokens to a BAMM contract.

    • Parameters: bammAddress (string), amount (string)
    • Requires WALLET_PRIVATE_KEY in the environment.
  • WITHDRAW: Withdraw LP tokens from a BAMM contract by redeeming BAMM tokens.

    • Parameters: bammAddress (string), amount (string)
    • Requires WALLET_PRIVATE_KEY in the environment.
  • REMOVE_COLLATERAL: Remove collateral from your BAMM position.

    • Parameters: bammAddress (string), amount (string), collateralToken (string, optional), collateralTokenSymbol (string, optional)
    • Requires WALLET_PRIVATE_KEY in the environment.
  • GET_POSITIONS: Get all your active BAMM positions.

    • Requires WALLET_PRIVATE_KEY in the environment.
  • POOL_STATS: Get statistics for all BAMM pools.

    • Requires WALLET_PRIVATE_KEY in the environment.

Prerequisites

  • Node.js (v18 or newer recommended)
  • pnpm

Installation

There are a few ways to use mcp-bamm:

1. Using pnpm dlx (Recommended for most MCP client setups):

You can run the server directly using pnpm dlx without needing a global installation. This is often the easiest way to integrate with MCP clients.

2. Global Installation from npm (via pnpm):

Install the package globally to make the mcp-bamm command available system-wide:

pnpm add -g mcp-bamm

3. Building from Source (for development or custom modifications):

  1. Clone the repository:

    git clone https://github.com/your-org/mcp-bamm.git
    cd mcp-bamm
    
  2. Install dependencies:

    pnpm install
    
  3. Set up your wallet private key:

    Set the WALLET_PRIVATE_KEY environment variable with your wallet's private key (without 0x prefix):

    export WALLET_PRIVATE_KEY=your_private_key_here
    

    For persistent configuration, add this to your shell profile or use a .env file (make sure to add the .env file to .gitignore).

  4. Build the project:

    pnpm run build
    
  5. Start the server:

    pnpm run start
    

Configuration (Environment Variables)

This MCP server requires certain environment variables to be set by the MCP client that runs it. These are typically configured in the client's MCP server definition (e.g., in a mcp.json file for Cursor, or similar for other clients).

  • WALLET_PRIVATE_KEY: (Required for all blockchain operations)
    • The private key of the wallet to be used for interacting with BAMM contracts (signing transactions for lending, borrowing, etc.).
    • Security Note: Handle this private key with extreme care. Ensure it is stored securely and only provided to trusted MCP client configurations.

Running the Server with an MCP Client

MCP clients (like AI assistants, IDE extensions, etc.) will run this server as a background process. You need to configure the client to tell it how to start your server. Below is an example configuration snippet that an MCP client might use (e.g., in a mcp_servers.json or similar configuration file). This example shows how to run the server using the published npm package via pnpm dlx.

{
  "mcpServers": {
    "bamm-mcp-server": {
      "command": "pnpm",
      "args": ["dlx", "mcp-bamm"],
      "env": {
        "WALLET_PRIVATE_KEY": "your_wallet_private_key_here"
      }
    }
  }
}

Alternative if Globally Installed: If you have installed mcp-bamm globally (pnpm add -g mcp-bamm), you can simplify the command and args:

{
  "mcpServers": {
    "bamm-mcp-server": {
      "command": "mcp-bamm",
      "args": [],
      "env": {
        "WALLET_PRIVATE_KEY": "your_wallet_private_key_here"
      }
    }
  }
}
  • command: The executable to run.
    • For pnpm dlx: "pnpm" (with "dlx" as the first arg)
    • For global install: "mcp-bamm"
  • args: An array of arguments to pass to the command.
    • For pnpm dlx: ["dlx", "mcp-bamm"]
    • For global install: []
  • env: An object containing environment variables to be set when the server process starts. This is where you provide WALLET_PRIVATE_KEY.

Example Usage

Using an MCP client, you can perform operations like:

// First, ensure the WALLET_PRIVATE_KEY environment variable is set on the server

// Add collateral to a BAMM position
await client.runTool("ADD_COLLATERAL", {
  bammAddress: "0xC5B225cF058915BF28D7d9DFA3043BD53C63Ea84",
  amount: "100",
  collateralTokenSymbol: "FRAX"
});

// Get all your positions
await client.runTool("GET_POSITIONS", {});

Development

  • pnpm run build: Compiles TypeScript to JavaScript in dist/ and makes the output executable.
  • pnpm run dev: Runs the server in development mode using tsx (hot-reloading for TypeScript).
  • pnpm run start: Runs the built server (from dist/) using Node.
  • pnpm run lint: Lints the codebase using Biome.
  • pnpm run format: Formats the codebase using Biome.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured