Society Abstract MCP
Provides comprehensive wallet, token, and smart contract utilities for the Abstract network, enabling users to check balances, transfer tokens, deploy ERC-20 contracts, and manage Abstract Global Wallets (smart contract accounts).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Society Abstract MCP check the USDC balance of vitalik.eth"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Society Abstract MCP
FastMCP TypeScript server providing comprehensive wallet, token and smart contract utilities for Abstract Testnet/Mainnet

🛠️ 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 fortokenAddress(optional): ERC-20 contract address for token balancetokenSymbol(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 nameamount(required): Amount to transfer in human-readable formattokenAddress(optional): ERC-20 contract address for token transferstokenSymbol(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 stringaddress: 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
Using NPX (Recommended)
{
"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 feesABSTRACT_RPC_URL: Abstract network RPC URLTESTNET: "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
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)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 toolsab_agw_create_walletADestructive
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_erc20ADestructive
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_balanceARead-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
Native balance → { address: "vitalik.eth" }
ERC-20 balance via symbol → { address: "0x123…", tokenSymbol: "USDC" }
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_tokenADestructive
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
Scored across 5 tools
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.
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.
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.
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
Related MCP Connectors
Provide AI agents and automation tools with contextual access to blockchain data including balance…
OpenAI-compatible LLM MCP (7 tools); chat via balance key or x402 USDC on Base
ERC-8004 agent identity, on-chain subscriptions, reputation, A2A tasks and chat over 53 tools.
Verified EVM, Aptos and finance tools for AI agents; gas for 14 chains. Pay per call (x402).
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides Claude with access to Ethereum and EVM-compatible blockchain operations, enabling wallet management, transaction handling, contract interactions, and blockchain queries through natural language.35236 npm10MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables 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-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables 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-
- FlicenseBqualityDmaintenanceEnables 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.31-