Skip to main content
Glama

Algorand MCP Server

README.md4.87 kB
# 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 ## 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: ```bash npm install ``` 3. Copy environment configuration: ```bash cp .env.example .env ``` 4. Configure your Algorand network in `.env` (defaults to testnet) ## Development ### Building the Project ```bash npm run build ``` ### Running the Server ```bash npm start ``` ### Development Mode For development with automatic rebuilding: ```bash npm run dev ``` ## Configuration ### For VSCode ```json { "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 ```typescript 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 - [Model Context Protocol Documentation](https://modelcontextprotocol.io/) - [MCP SDK Reference](https://github.com/modelcontextprotocol/typescript-sdk)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jake-loranger/algorand-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server