Algorand MCP Server
Provides comprehensive blockchain transaction capabilities for the Algorand network, including account generation, balance checking, payment transactions, asset creation and management, and transaction querying with built-in security features for mnemonic phrase protection
Click on "Install 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., "@Algorand MCP Servercheck my account balance for address ABC123DEF456"
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.
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
Clone or download this project
Install dependencies:
npm installCopy environment configuration:
cp .env.example .envConfigure your Algorand network in
.env(defaults to testnet)
Development
Building the Project
npm run buildRunning the Server
npm startDevelopment Mode
For development with automatic rebuilding:
npm run devConfiguration
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 fileDevelopment Guide
Adding New Tools
Define the tool schema in the
TOOLSarrayCreate a Zod schema for input validation
Add a case in the
CallToolRequestSchemahandlerImplement 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
calculatetool useseval()for demonstration purposes only - in production, use a safer math evaluation libraryAlways validate and sanitize inputs before processing
Contributing
Fork the repository
Create a feature branch
Implement your changes with proper tests
Submit a pull request
License
ISC License - see package.json for details
Resources
Available Tools
14 toolscalculateC
Perform basic mathematical calculations
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Mathematical expression to evaluate (e.g., "2 + 2", "10 * 5") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool performs calculations but lacks details on error handling (e.g., invalid expressions), computational limits, or output format. This is a significant gap for a tool that could involve complex inputs, making it inadequate for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence ('Perform basic mathematical calculations') that directly states the tool's function without unnecessary words. It is front-loaded and efficient, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mathematical calculations with potential for errors) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like error messages, supported operations, or result formatting, which are crucial for an agent to use the tool correctly in varied contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'expression' well-documented in the schema as a mathematical expression. The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints, so it meets the baseline for high schema coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Perform basic mathematical calculations,' which specifies the verb ('perform') and resource ('calculations'). It distinguishes from siblings like 'create_asset' or 'send_payment' by focusing on math operations, though it could be more specific about what 'basic' entails (e.g., arithmetic vs. advanced functions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, limitations, or context for choosing it over other tools (e.g., for simple math vs. complex operations handled elsewhere). This leaves the agent without explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assetC
Create a new Algorand Standard Asset (ASA)
| Name | Required | Description | Default |
|---|---|---|---|
| creatorMnemonic | Yes | Creator account mnemonic phrase (25 words) | |
| assetName | Yes | Name of the asset | |
| unitName | Yes | Unit name/symbol of the asset | |
| totalSupply | Yes | Total supply of the asset | |
| decimals | No | Number of decimal places (default: 0) | |
| defaultFrozen | No | Whether asset starts frozen (default: false) | |
| url | No | Optional URL for asset metadata | |
| metadataHash | No | Optional metadata hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Create' implies a write operation, but the description doesn't mention permissions needed, whether this is irreversible, network effects, or what happens on success/failure. For a creation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a creation tool and gets straight to the point with no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after creation, error conditions, or behavioral implications. The agent lacks crucial context about this write operation's effects and requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new Algorand Standard Asset (ASA)'), making the purpose immediately understandable. It doesn't differentiate from siblings like 'transfer_asset' or 'get_asset_info', but the verb+resource combination is specific enough for basic understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'transfer_asset' or 'get_asset_info'. There's no mention of prerequisites, use cases, or constraints beyond what's implied by the name. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
echoC
Echo back the provided message
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to echo back |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool echoes back a message, implying a read-only or output operation, but does not disclose any behavioral traits like whether it modifies data, requires authentication, has rate limits, or what the output format is. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of a single sentence 'Echo back the provided message' that directly conveys the tool's function without any waste. Every word earns its place, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is minimal but incomplete. It lacks context about the tool's role in the server (e.g., among Algorand-related siblings), behavioral details, or output expectations. While the purpose is clear, the overall description does not provide enough information for confident use without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'message' fully documented as 'The message to echo back'. The description adds no additional meaning beyond this, as it only repeats the parameter's purpose without providing extra context like formatting or constraints. With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Echo back the provided message' clearly states the tool's function with a specific verb ('echo back') and resource ('the provided message'), making the purpose immediately understandable. However, it does not explicitly differentiate from sibling tools, which include various Algorand-related operations like 'calculate' or 'send_payment', though the function is distinct enough that confusion is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lacks context about its role among sibling tools, such as whether it's for testing, debugging, or simple output, and does not mention any prerequisites or exclusions. This leaves the agent without explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fund_testnetA
Fund an Algorand testnet account using the official faucet
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Algorand testnet address to fund |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the faucet source but lacks details on rate limits, success/failure conditions, amount funded, or any prerequisites (e.g., account must exist). This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—front-loaded with the core action and resource. Every word earns its place without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks behavioral details (e.g., what happens on success/failure, amount funded) and output expectations, which are critical for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'address' documented in the schema. The description adds no additional parameter semantics beyond implying it's for a testnet address, which is already clear from the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('fund') and target resource ('an Algorand testnet account'), using the official faucet. It distinguishes itself from siblings like 'send_payment' or 'transfer_asset' by specifying the faucet-based funding mechanism for testnet accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'testnet account' and 'official faucet', indicating this is for test environments rather than mainnet. However, it does not explicitly state when not to use it or name alternatives like 'send_payment' for peer-to-peer transfers, leaving some guidance gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_algorand_accountA
Generate a new Algorand account with address and mnemonic
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool generates an account but doesn't disclose behavioral traits like whether this is a local or on-chain operation, security implications, or what happens to existing accounts. This is a significant gap for a tool that likely creates sensitive data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place with no waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of account generation (likely involving cryptographic operations and sensitive outputs), no annotations, and no output schema, the description is incomplete. It should explain what the generated account includes, security notes, or how to use the output with other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the inputs. The description doesn't need to add parameter details, and it correctly doesn't mention any. Baseline is 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Generate a new Algorand account') and the resources produced ('with address and mnemonic'). It distinguishes from sibling tools like 'load_wallet' or 'store_wallet' by focusing on creation rather than management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a new account is needed, but it doesn't explicitly state when to use this tool versus alternatives like 'fund_testnet' or 'load_wallet'. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoC
Get account information including balance and assets
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Algorand account address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets' information, implying a read-only operation, but doesn't specify if it requires authentication, rate limits, network access, or what happens with invalid addresses. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the purpose ('Get account information') and specifies key data points ('balance and assets'), making it easy to scan and understand quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple single-parameter input, the description is incomplete. It doesn't cover behavioral aspects like safety, performance, or error handling, and lacks details on return values (e.g., format of balance and assets). For a tool interacting with account data, more context is needed to ensure proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'address' parameter fully documented as an 'Algorand account address'. The description adds no additional parameter details beyond implying it retrieves 'account information' for that address. Baseline 3 is appropriate since the schema does the heavy lifting, but the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('account information'), specifying what data is retrieved ('balance and assets'). It distinguishes from siblings like 'get_asset_info' (specific asset) or 'generate_algorand_account' (creation). However, it doesn't explicitly differentiate from 'load_wallet' or 'store_wallet', which might involve account data but with different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an account address), exclusions, or comparisons to siblings like 'get_asset_info' for asset-specific details or 'load_wallet' for wallet-based access. The description implies usage for retrieving account data but lacks contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_asset_infoC
Get information about an Algorand Standard Asset
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Get information') but does not describe traits like whether it's read-only, requires authentication, has rate limits, or what the return format includes. This leaves significant gaps for a tool that likely queries blockchain data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficient for a tool that likely returns detailed asset information. It does not explain what data is returned (e.g., metadata, supply, creator) or handle complexities like error cases, leaving the agent with incomplete context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'assetId' parameter clearly documented. The description does not add any additional meaning beyond the schema, such as examples of asset IDs or context about what information is retrieved. Baseline 3 is appropriate as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get information') and resource ('an Algorand Standard Asset'), making the purpose evident. However, it does not differentiate from sibling tools like 'get_account_info' or 'get_transaction', which also retrieve information about different resources, leaving some ambiguity in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'get_account_info' for account details or 'get_transaction' for transaction data. There is no mention of prerequisites, exclusions, or specific contexts for its application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_timeB
Get the current time in a specified timezone
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | Timezone identifier (e.g., "UTC", "America/New_York") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It lacks details on permissions, rate limits, error handling, or return format (e.g., timestamp structure). This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is front-loaded with the core purpose and appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple but undocumented behavioral profile, the description is incomplete. It doesn't explain what 'current time' means (e.g., server time, formatted string), error cases for invalid timezones, or return values, leaving gaps for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the optional 'timezone' parameter. The description adds no additional meaning beyond implying timezone specification, matching the baseline for high schema coverage without extra param context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'current time', specifying the action and target. It distinguishes from siblings by focusing on time retrieval rather than financial or asset operations, though it doesn't explicitly name alternatives for time-related functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when current time in a specific timezone is needed, but provides no explicit guidance on when to use this tool versus alternatives (e.g., system time functions or other time tools). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionC
Get transaction details by transaction ID
| Name | Required | Description | Default |
|---|---|---|---|
| txId | Yes | Transaction ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'Get transaction details' but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, potential rate limits, error conditions (e.g., invalid ID), or what the return format looks like. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a transaction retrieval tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'details' include (e.g., fields returned), error handling, or behavioral context. For a tool that likely returns structured data, more completeness is needed to guide an agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'txId' fully documented in the schema as 'Transaction ID'. The description adds no additional meaning beyond this, as it only restates 'by transaction ID'. According to the rules, with high schema coverage (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'transaction details', specifying it's done 'by transaction ID'. It distinguishes from siblings like 'get_account_info' or 'get_asset_info' by focusing on transactions. However, it doesn't explicitly mention what details are retrieved (e.g., amount, status, timestamp), keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify if this is for retrieving a single transaction's metadata versus using other tools for broader operations like 'send_payment' or 'transfer_asset'. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_walletB
Load a stored wallet and return the address
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Wallet name/identifier | |
| password | Yes | Password to decrypt the mnemonic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions decryption ('Password to decrypt the mnemonic' is in the schema, not the description) and returning an address, but lacks details on permissions, error handling, or side effects. It doesn't specify if this tool authenticates the user, what happens on failure, or if it modifies any state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose and outcome. It is front-loaded with no unnecessary words, making it easy to understand quickly without any wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (involving decryption and address retrieval), no annotations, and no output schema, the description is minimally adequate. It covers the basic action but lacks details on return values, error cases, or behavioral nuances. It meets the minimum viable standard but has clear gaps in completeness for secure wallet operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear details for both parameters ('name' and 'password'). The description adds no additional parameter semantics beyond what the schema already states, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Load') and resource ('a stored wallet') with the outcome ('return the address'). It distinguishes from siblings like 'store_wallet' (which creates) and 'generate_algorand_account' (which creates new). However, it doesn't explicitly differentiate from 'get_account_info' which might retrieve similar information, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify if this should be used instead of 'get_account_info' for accessing wallet addresses or if it's specifically for loading encrypted wallets. The description implies usage but offers no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opt_in_to_assetC
Opt into an Algorand Standard Asset
| Name | Required | Description | Default |
|---|---|---|---|
| accountMnemonic | Yes | Account mnemonic phrase (25 words) | |
| assetId | Yes | Asset ID to opt into |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but lacks critical details: it doesn't specify if this is a read-only or destructive operation, what permissions or authentication are needed (beyond the mnemonic parameter), potential side effects (e.g., transaction fees, account state changes), or error conditions. This leaves significant gaps for safe tool invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It's appropriately sized for a simple tool and front-loaded with the core purpose, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a financial/blockchain operation with no annotations and no output schema), the description is incomplete. It doesn't explain what 'opting in' entails behaviorally (e.g., a blockchain transaction), what the expected output or success indicators are, or error handling. For a tool that likely modifies account state, this lack of context is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents both parameters (accountMnemonic and assetId). The description adds no additional parameter semantics beyond what's in the schema, such as format examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Opt into') and resource ('an Algorand Standard Asset'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'transfer_asset' or 'create_asset' by specifying this is specifically for adding an asset to an account's holdings rather than creating or transferring assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing asset and account), exclusions, or comparisons to siblings like 'transfer_asset' or 'get_asset_info'. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_paymentB
Send Algo payment transaction (WARNING: Requires mnemonic phrase)
| Name | Required | Description | Default |
|---|---|---|---|
| mnemonic | Yes | Sender account mnemonic phrase (25 words) | |
| toAddress | Yes | Recipient address | |
| amount | Yes | Amount in microAlgos (1 Algo = 1,000,000 microAlgos) | |
| note | No | Optional transaction note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds value by warning about the mnemonic requirement, implying security and authentication needs, but lacks details on critical behaviors like transaction finality, error handling, rate limits, or what happens upon success/failure. This is a moderate disclosure for a high-stakes tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with a parenthetical warning—and front-loaded with the core purpose. Every word earns its place, making it efficient and easy to parse without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a payment tool with no annotations and no output schema, the description is insufficient. It lacks information on return values, error conditions, transaction lifecycle, and how it differs from sibling tools. For a high-risk operation, more context is needed to ensure safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description doesn't add any semantic details beyond what's in the schema (e.g., it doesn't explain parameter interactions or provide examples). This meets the baseline for high schema coverage but offers no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send Algo payment transaction') and the resource ('Algo payment'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'transfer_asset' or 'fund_testnet', which also involve value transfers, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a warning about requiring a mnemonic phrase, which hints at a prerequisite, but provides no guidance on when to use this tool versus alternatives like 'transfer_asset' or 'fund_testnet'. There's no explicit context for usage or exclusions, leaving the agent with minimal direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
store_walletC
Securely store a wallet with encrypted mnemonic
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Wallet name/identifier | |
| mnemonic | Yes | Mnemonic phrase to store securely | |
| password | Yes | Password to encrypt the mnemonic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'securely store' and 'encrypted mnemonic', hinting at security measures, but fails to detail aspects like storage location, access controls, error handling, or whether this is a one-time creation versus an update. More behavioral context is needed for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly conveys the core functionality without unnecessary words. It is front-loaded and appropriately sized, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is insufficient. It lacks details on what happens after storage (e.g., success response, error cases, or how to retrieve the wallet), leaving gaps in understanding the full context of use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all three parameters (name, mnemonic, password). The description adds no additional semantic details beyond what the schema provides, such as format constraints or usage examples, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('store') and resource ('wallet') with the specific method 'with encrypted mnemonic', making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'load_wallet', which might handle retrieval, leaving room for improvement in sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as 'load_wallet' or other wallet-related operations. The description lacks context on prerequisites, exclusions, or recommended scenarios, offering minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_assetC
Transfer an Algorand Standard Asset
| Name | Required | Description | Default |
|---|---|---|---|
| fromMnemonic | Yes | Sender account mnemonic phrase (25 words) | |
| toAddress | Yes | Recipient address | |
| assetId | Yes | Asset ID to transfer | |
| amount | Yes | Amount to transfer | |
| note | No | Optional transaction note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Transfer' which implies a write/mutation operation, but doesn't mention critical behaviors like whether this is irreversible, requires network fees, has rate limits, or returns transaction confirmation details. The description is minimal and lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that directly states the tool's purpose. There's no wasted words or unnecessary elaboration. It's front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after transfer (success/failure indicators), doesn't mention network implications, and provides no context about the Algorand ecosystem. Given the complexity of asset transfers, more operational detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, so all parameters are documented in the schema itself. The description doesn't add any additional meaning about parameters beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Transfer') and resource ('Algorand Standard Asset'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'send_payment' or 'opt_in_to_asset', which appear to handle related but different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'send_payment' (which might handle Algo currency transfers) or 'opt_in_to_asset' (which might prepare accounts for receiving assets). There's no mention of prerequisites, constraints, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
- First observed
calculate - First observed
create_asset - First observed
echo - First observed
fund_testnet - First observed
generate_algorand_account - First observed
get_account_info - First observed
get_asset_info - First observed
get_current_time - First observed
get_transaction - First observed
load_wallet - First observed
opt_in_to_asset - First observed
send_payment - First observed
store_wallet - First observed
transfer_asset
TDQS
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.
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.
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.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Pay any Algorand x402 invoice with any asset, plus DEX swap quotes and unsigned builds.
Connect to the COTI blockchain to manage accounts, transfer native tokens, and deploy and operate…
Production-grade cryptography toolkit with 31 MCP tools for classical, PQC, and KMS workflows.
Non-custodial Solana toolkit: rug-checks, swaps, portfolios, token minting, multisig, Arweave.
Related MCP Servers
- AlicenseCqualityBmaintenanceA comprehensive MCP server for tooling interactions(40+) and resource accessibility(60+) with Algorand blockchain, plus many useful prompts.1009544MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with the Algorand blockchain through 25+ specialized tools for account management, payments, asset creation, NFT operations, and network monitoring. Supports both mainnet and testnet with instant finality and low fees.251MIT
- AlicenseBqualityAmaintenanceEnables comprehensive Solana blockchain interactions including wallet management, SOL and SPL token transfers, token creation and minting, account operations, and network switching across mainnet, devnet, testnet, and localhost.25811MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Tinyman AMM protocol on Algorand blockchain, supporting pool management, token swaps, liquidity operations, and analytics for both v1.1 and v2 protocols.141MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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