Skip to main content
Glama

Society Abstract MCP

FastMCP TypeScript server providing comprehensive wallet, token and smart contract utilities for Abstract Testnet/Mainnet

Abstract

TypeScript FastMCP


🛠️ Available Tools

1. ab_get_balance - Balance Checker

Get native ETH or ERC-20 token balance for any address with ENS support.

Parameters:

  • address (required): Wallet address or ENS name to check balance for

  • tokenAddress (optional): ERC-20 contract address for token balance

  • tokenSymbol (optional): Token symbol (e.g., "USDC") for well-known tokens

Example Usage:

// Get native ETH balance
{ address: "0x1234...abcd" }

// Get ERC-20 balance by contract
{ address: "vitalik.eth", tokenAddress: "0xA0b86a33E6F..." }

// Get balance by token symbol
{ address: "0x1234...abcd", tokenSymbol: "USDC" }

Returns: Human-readable balance as string (e.g., "1.234567")


2. ab_transfer_token - Token Transfer

Transfer native ETH or ERC-20 tokens to another address with ENS support.

Parameters:

  • to (required): Recipient address or ENS name

  • amount (required): Amount to transfer in human-readable format

  • tokenAddress (optional): ERC-20 contract address for token transfers

  • tokenSymbol (optional): Token symbol for well-known tokens

Example Usage:

// Transfer native ETH
{ to: "0x1234...abcd", amount: "0.1" }

// Transfer ERC-20 by contract
{ to: "vitalik.eth", amount: "100", tokenAddress: "0xA0b86a33E6F..." }

// Transfer by token symbol
{ to: "0x1234...abcd", amount: "50", tokenSymbol: "USDC" }

Returns: Transaction hash of the successful transfer


3. ab_deploy_token_erc20 - ERC-20 Token Deployment

Deploy a new ERC-20 BasicToken contract to Abstract network.

Parameters:

  • name (required): Token name (e.g., "DemoToken")

  • symbol (required): Token symbol/ticker (e.g., "DMT")

  • initialSupply (required): Total supply in wei (18 decimals) as string

Example Usage:

// Deploy 1000 tokens (1000 * 10^18 wei)
{
  name: "MyToken",
  symbol: "MTK",
  initialSupply: "1000000000000000000000"
}

Returns: Deployed contract address and deployment details


4. ab_agw_create_wallet - Abstract Global Wallet Creation

Deploy a new Abstract Global Wallet (smart contract account) for a given signer.

Parameters:

  • signer (optional): EOA signer address or ENS name. If omitted, uses server wallet as initial signer

Example Usage:

// Create AGW with specific signer
{ signer: "0x1234...abcd" }

// Create AGW with server wallet as signer
{ }

Returns: Smart account address and deployment transaction hash


5. ab_generate_wallet - EOA Wallet Generation

Generate a brand-new Externally Owned Account (EOA) with private key and address.

Parameters:

  • random_string (required): Any string for entropy (can be anything)

Example Usage:

{ random_string: "my-random-seed" }

Returns:

  • privateKey: 0x-prefixed 32-byte hex string

  • address: Checksummed Ethereum/Abstract address

⚠️ Security Note: Store the private key securely and never log it.


Related MCP server: Base MCP Server

🚀 Quick Start

For MCP Client Integration

{
  "mcpServers": {
    "society-abstract-mcp": {
      "command": "npx",
      "args": ["-y", "society-abstract-mcp@0.1.4"],
      "env": {
        "ABSTRACT_PRIVATE_KEY": "your-private-key-here",
        "ABSTRACT_RPC_URL": "https://api.testnet.abs.xyz",
        "TESTNET": "true",
        "PORT": "3101",
        "MCP_DISABLE_PINGS": "true"
      }
    }
  }
}

Using Local Build

{
  "mcpServers": {
    "society-abstract-mcp-local": {
      "command": "node",
      "args": ["/path/to/your/society_abstract_mcp/dist/server.js"],
      "env": {
        "ABSTRACT_PRIVATE_KEY": "your-private-key-here",
        "ABSTRACT_RPC_URL": "https://api.testnet.abs.xyz",
        "TESTNET": "true",
        "PORT": "3101",
        "MCP_DISABLE_PINGS": "true"
      }
    }
  }
}

For Development

# 1. Install dependencies
npm install

# 2. Build the project
npm run build

# 3. Run development server
npm run dev

# 4. Run tests
npm run test

# 5. Run integration tests (requires funds)
INTEGRATION=1 npm run test:int

📋 Environment Variables

Required for MCP Client:

  • ABSTRACT_PRIVATE_KEY: EOA private key that pays gas fees

  • ABSTRACT_RPC_URL: Abstract network RPC URL

  • TESTNET: "true" for testnet, "false" for mainnet

Optional for MCP Client:

  • PORT: HTTP port for the MCP server (default: 3101)

  • MCP_DISABLE_PINGS: "true" to disable ping messages

Note: No .env file needed for production. All variables should be passed by the MCP client.


🏗️ Build & Deploy

# Build for production
npm run build

# Start production server
npm start

# Build outputs to dist/ with:
# - ESM modules
# - TypeScript definitions
# - Copied JavaScript assets

🧪 Testing

  • Unit Tests: npm run test (mocked, no gas required)

  • Integration Tests: INTEGRATION=1 npm run test:int (requires testnet funds)

  • Balance Checker: npm run balance (multi-network balance tool)


📖 Technical Details

  • Framework: FastMCP with TypeScript

  • Networks: Abstract Testnet/Mainnet

  • Standards: ERC-20 tokens, Abstract Global Wallets

  • Dependencies: viem, zksync-ethers, @abstract-foundation/agw-client

  • Build Target: ES2022 (Node.js ≥ 16.14)


🤝 Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🆘 Support

  • Issues: GitHub Issues

  • Documentation: This README and inline code documentation

  • Community: Join our Telegram


Available Tools

5 tools
ab_agw_create_walletA
Destructive

Deploy a new Abstract Global Wallet (smart-contract account) for a given signer.

The tool wraps @abstract-foundation/agw-client’s deployAccount helper.

Returns both the smart-account address and the deployment tx hash (undefined when the account already exists).

Inputs: signer.

ab_deploy_token_erc20A
Destructive

Deploy an ERC-20 BasicToken to the Abstract network.

PARAMETERS

  • name – token name (e.g. "DemoToken")

  • symbol – token symbol/ticker (e.g. "DMT")

  • initialSupply – numeric string of total supply in wei (18 decimals)

FLOW

  • Uses proven zksync-ethers deployment method via subprocess

  • Returns the deployed contract address

SECURITY / LIMITATIONS

  • Make sure the deployer wallet (ABSTRACT_PRIVATE_KEY / PRIVATE_KEY) has enough funds on the target network

Inputs: name (required), symbol (required), initialSupply (required), debug.

ab_generate_walletA

Generate a brand-new Externally Owned Account (EOA).

RETURNS • privateKey – 0x-prefixed 32-byte hex string • address – checksummed Ethereum/Abstract address

COMMON USES • Let agents spin up their own keypairs before funding or deploying smart-accounts.

SECURITY • The private key is returned in plaintext. Ensure the caller stores it securely and never logs it.

Inputs: no named parameters.

ab_get_balanceA
Read-only

Fetch the current on-chain balance for a wallet.

CAPABILITIES • Native ETH balance (default) • ERC-20 balance via tokenAddress OR well-known tokenSymbol (lookup table) • ENS name resolution for the target address

EXAMPLES

  1. Native balance → { address: "vitalik.eth" }

  2. ERC-20 balance via symbol → { address: "0x123…", tokenSymbol: "USDC" }

  3. ERC-20 via contract → { address: "0xabc…", tokenAddress: "0xA0b8…" }

RETURNS • Human-readable string (e.g. "12.3456")

SECURITY • Read-only operation, no gas spent; safe to run frequently.

Inputs: address (required), tokenAddress, tokenSymbol.

ab_transfer_tokenA
Destructive

Transfer value from the caller’s wallet to another address.

FUNCTIONALITY • Native ETH transfer (simple payment) • ERC-20 transfer (requires tokenAddress or known tokenSymbol) • ENS resolution for recipient

VALIDATION & LOGGING • Ensures wallet signer configured, token decimals fetched automatically • Logs tx hash on success so the agent can create explorer links

COMMON USE-CASES • Payout scripted rewards • Move workshop faucet tokens to students • Automation flows needing programmatic payment

Inputs: to (required), amount (required), tokenAddress, tokenSymbol.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: creating a smart-contract wallet, deploying an ERC-20 token, generating an EOA wallet, fetching balances, and transferring tokens. There is no overlap in functionality, and the descriptions clearly differentiate their roles in the blockchain interaction workflow.

    Naming Consistency5/5

    All tools follow a consistent 'ab_' prefix with descriptive verb_noun patterns (e.g., create_wallet, deploy_token, generate_wallet, get_balance, transfer_token). This uniformity makes the toolset predictable and easy to navigate, with no deviations in naming conventions.

    Tool Count5/5

    With 5 tools, the set is well-scoped for interacting with the Abstract network, covering key operations like wallet management, token deployment, balance queries, and transfers. Each tool serves a distinct and necessary function without being overly sparse or bloated.

    Completeness4/5

    The toolset provides comprehensive coverage for core blockchain interactions, including creation, deployment, querying, and transferring. A minor gap exists in lacking update or delete operations for deployed contracts or wallets, but agents can work around this as these are less common in typical workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI applications to interact with the Base blockchain network, allowing wallet management, smart contract deployment, token transfers, NFT operations, DeFi interactions with Morpho vaults, and onramping funds via Coinbase.
      22 npm
      -
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI applications to interact with the Base blockchain network and Coinbase API, supporting wallet management, token transfers, smart contract deployment, NFT operations, DeFi interactions with Morpho vaults, and fiat onramp functionality.
      22 npm
      -
    • F
      license
      B
      quality
      D
      maintenance
      Enables secure interaction with blockchain smart contracts across multiple chains, including ABI analysis, contract method invocation (view/nonpayable/payable), and local wallet management for Ethereum and Base networks.
      3
      1
      -