Skip to main content
Glama
Algorand MCP Server

Algorand MCP Server

MCP Server with Algorand Integration

This server provides blockchain transaction capabilities for the Algorand network along with general utility tools.

Overview

This MCP server provides the following tools to AI assistants:

General Tools

  • echo: Echo back any message (useful for testing connectivity)

  • calculate: Perform basic mathematical calculations

  • get_current_time: Get the current time in any timezone

Algorand Blockchain Tools

  • generate_algorand_account: Generate a new Algorand account with address and mnemonic

  • get_account_info: Get account information including balance and assets

  • send_payment: Send Algo payment transaction

  • create_asset: Create a new Algorand Standard Asset (ASA)

  • opt_in_to_asset: Opt into an Algorand Standard Asset

  • transfer_asset: Transfer an Algorand Standard Asset

  • get_asset_info: Get information about an asset

  • get_transaction: Get transaction details by transaction ID

Related MCP server: Algorand MCP Server

Security Features

Mnemonic Phrase Protection

  • Encryption: Built-in AES-256-GCM encryption for mnemonic phrases

  • Secure Storage: Methods for encrypting/decrypting wallet credentials

  • Memory Safety: Sensitive data is handled securely and not logged

Network Configuration

  • Testnet Default: Safely defaults to Algorand testnet

  • Environment-based: Network configuration through environment variables

  • Production Ready: Supports mainnet for production use

Prerequisites

  • Node.js 18+

  • npm or yarn

  • TypeScript

Installation

  1. Clone or download this project

  2. Install dependencies:

    npm install
  3. Copy environment configuration:

    cp .env.example .env
  4. Configure your Algorand network in .env (defaults to testnet)

Development

Building the Project

npm run build

Running the Server

npm start

Development Mode

For development with automatic rebuilding:

npm run dev

Configuration

For VSCode

{
  "mcpServers": {
    "algorand-mcp-server": {
      "command": "node",
      "args": ["path/to/your/project/dist/index.js"]
    }
  }
}

For VS Code Debugging

The project includes a .vscode/mcp.json configuration file for debugging within VS Code. You can use this with the MCP extension for VS Code.

Available Tools

echo

  • Description: Echo back the provided message

  • Parameters:

    • message (string, required): The message to echo back

calculate

  • Description: Perform basic mathematical calculations

  • Parameters:

    • expression (string, required): Mathematical expression to evaluate

get_current_time

  • Description: Get the current time in a specified timezone

  • Parameters:

    • timezone (string, optional): Timezone identifier (defaults to UTC)

Project Structure

├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Compiled JavaScript output
├── .vscode/
│   └── mcp.json         # VS Code MCP configuration
├── .github/
│   └── copilot-instructions.md  # GitHub Copilot instructions
├── package.json          # Node.js package configuration
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

Development Guide

Adding New Tools

  1. Define the tool schema in the TOOLS array

  2. Create a Zod schema for input validation

  3. Add a case in the CallToolRequestSchema handler

  4. Implement the tool logic with proper error handling

Example Tool Implementation

const MyToolArgsSchema = z.object({
  input: z.string(),
});

// Add to TOOLS array
{
  name: 'my_tool',
  description: 'Description of what the tool does',
  inputSchema: {
    type: 'object',
    properties: {
      input: {
        type: 'string',
        description: 'Input parameter description',
      },
    },
    required: ['input'],
  },
}

// Add to request handler
case 'my_tool': {
  const parsed = MyToolArgsSchema.parse(args);
  // Implement tool logic here
  return {
    content: [
      {
        type: 'text',
        text: `Result: ${parsed.input}`,
      },
    ],
  };
}

Security Considerations

  • Input validation is performed using Zod schemas

  • The calculate tool uses eval() for demonstration purposes only - in production, use a safer math evaluation library

  • Always validate and sanitize inputs before processing

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Implement your changes with proper tests

  4. Submit a pull request

License

ISC License - see package.json for details

Resources

Available Tools

14 tools
calculateC

Perform basic mathematical calculations

Inputs: expression (required).

create_assetC

Create a new Algorand Standard Asset (ASA)

Inputs: creatorMnemonic (required), assetName (required), unitName (required), totalSupply (required), +4 more.

echoB

Echo back the provided message

Inputs: message (required).

fund_testnetA

Fund an Algorand testnet account using the official faucet

Inputs: address (required).

generate_algorand_accountA

Generate a new Algorand account with address and mnemonic

Inputs: no named parameters.

get_account_infoC

Get account information including balance and assets

Inputs: address (required).

get_asset_infoC

Get information about an Algorand Standard Asset

Inputs: assetId (required).

get_current_timeB

Get the current time in a specified timezone

Inputs: timezone.

get_transactionC

Get transaction details by transaction ID

Inputs: txId (required).

load_walletB

Load a stored wallet and return the address

Inputs: name (required), password (required).

opt_in_to_assetC

Opt into an Algorand Standard Asset

Inputs: accountMnemonic (required), assetId (required).

send_paymentB

Send Algo payment transaction (WARNING: Requires mnemonic phrase)

Inputs: mnemonic (required), toAddress (required), amount (required), note.

store_walletC

Securely store a wallet with encrypted mnemonic

Inputs: name (required), mnemonic (required), password (required).

transfer_assetC

Transfer an Algorand Standard Asset

Inputs: fromMnemonic (required), toAddress (required), assetId (required), amount (required), +1 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 14 tools

    Disambiguation4/5

    Most tools have distinct purposes within the Algorand blockchain domain, such as asset management (create_asset, get_asset_info, opt_in_to_asset, transfer_asset) and account operations (generate_algorand_account, get_account_info, fund_testnet). However, there is some overlap: 'calculate' and 'echo' are generic utilities that don't clearly relate to Algorand and could be confused with external tools, and 'get_current_time' is a general-purpose tool that doesn't fit the blockchain focus, creating minor ambiguity.

    Naming Consistency4/5

    The naming is mostly consistent with a verb_noun pattern (e.g., create_asset, get_account_info, transfer_asset), which aids readability. However, there are minor deviations: 'calculate' and 'echo' use only verbs without nouns, and 'load_wallet' and 'store_wallet' use a verb_noun format but differ slightly from others like 'generate_algorand_account' which includes the domain name. Overall, the pattern is clear but not perfectly uniform.

    Tool Count5/5

    With 14 tools, the count is well-scoped for an Algorand blockchain server, covering key operations such as account management, asset handling, transactions, and wallet storage. Each tool appears to serve a specific purpose without redundancy, making the set comprehensive yet manageable for typical blockchain tasks.

    Completeness4/5

    The toolset provides good coverage for core Algorand functionalities, including asset creation, transfer, and account operations, with no major gaps in the blockchain lifecycle. However, there are minor omissions: tools for smart contract interactions or more advanced transaction types (like atomic transfers) are missing, and the inclusion of generic tools like 'calculate' and 'echo' doesn't enhance the domain-specific completeness, though agents can likely work around this.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers