Atlas / MCP servers / goplausible / Algorand

AlgorandBLOCK

mcp/goplausible/algorand

Algorand Local Model Context Protocol (Server & Client)

Verdict
BLOCK
Grade
F
Trust score
54 /100
Exposed tools
172 139r · 27w · 6d
Transport
stdio
License
MIT
Stars
44
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://www.npmjs.com/package/@goplausible/algorand-mcp) [](https://www.npmjs.com/package/@goplausible/algorand-mcp) [](https://opensource.org/licenses/MIT)

A comprehensive Model Context Protocol (MCP) server that gives AI agents and LLMs full access to the Algorand blockchain. Built by GoPlausible.

Algorand is a carbon-negative, pure proof-of-stake Layer 1 blockchain with instant finality, low fees, and built-in support for smart contracts (AVM), standard assets (ASAs), and atomic transactions.

What is MCP?

Model Context Protocol is an open standard that lets AI applications connect to external tools and data sources. This server exposes Algorand blockchain operations as MCP tools that any compatible AI client can use — Claude Desktop, Claude Code, Cursor, Windsurf, and others.

Features

  • Agent wallet — mnemonics stored in a local SQLite database, used by the MCP server to sign on the agent's behalf (mnemonics never returned in tool responses)
  • Wallet accounts with human-readable nicknames
  • Account creation, key management, and rekeying
  • Transaction building, signing, and submission (payments, assets, applications, key registration)
  • Atomic transaction groups
  • TEAL compilation and disassembly
  • Full Algod and Indexer API access
  • NFDomains (NFD) name service integration
  • x402 HTTP micropayments — automatic discovery and one-call paid requests using the active wallet (USDC/ALGO)
  • AP2 tooling for Algorand
  • Tinyman AMM integration (pools, swaps, liquidity)
  • Haystack Router DEX aggregation (best-price swaps across Tinyman, Pact, Folks)
  • Alpha Arcade prediction market trading (browse markets, orderbooks, limit/m
Read from source at commit dd3d03d1a1b2OBSERVED · 2026-10-08
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add algorand-mcp --env ALGORAND_TOKEN=${ALGORAND_TOKEN} --env ALPHA_API_KEY=${ALPHA_API_KEY} --env HAYSTACK_API_KEY=${HAYSTACK_API_KEY} -- npx -y @goplausible/[email protected]
claude-desktop
{
  "mcpServers": {
    "algorand-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@goplausible/[email protected]"
      ],
      "env": {
        "ALGORAND_TOKEN": "${ALGORAND_TOKEN}",
        "ALPHA_API_KEY": "${ALPHA_API_KEY}",
        "HAYSTACK_API_KEY": "${HAYSTACK_API_KEY}"
      }
    }
  }
}
03

Exposed tools (172)

139 read · 27 write · 6 destructive. Blast radius: 6 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
alpha_amend_orderwriteEdit an existing unfilled Alpha Arcade order in-place (change price, quantity, or slippage). Faster than cancel + recreate.
alpha_cancel_orderwriteCancel an open Alpha Arcade order. Requires escrowAppId and orderOwner. Refunds USDC/tokens and ~0.957 ALGO collateral.
alpha_claimreadClaim USDC from a resolved Alpha Arcade market by redeeming outcome tokens. Winning = 1:1 USDC.
alpha_create_limit_orderwritePlace a limit order on an Alpha Arcade prediction market. Price and quantity in microunits (500000 = $0.50, 1000000 = 1 share). Locks ~0.957 ALGO collateral. Returns escrowAppId — save it for cancel_order.
alpha_create_market_orderwritePlace a market order with auto-matching on Alpha Arcade. Price, quantity, and slippage in microunits. Returns escrowAppId, matched quantity, and actual fill price.
alpha_get_live_marketsreadFetch all live Alpha Arcade prediction markets. Returns summary: id, title, marketAppId, prices, volume. Multi-choice markets have an options[] array — use options[].marketAppId for trading.
alpha_get_marketreadFetch full details for a single Alpha Arcade prediction market. Pass marketAppId (numeric, always required) and optionally marketId (UUID) for richer API data.
alpha_get_open_ordersreadFetch all open orders for a wallet on a specific Alpha Arcade market. Uses your active MCP wallet if walletAddress is not provided.
alpha_get_orderbookreadFetch the on-chain orderbook as a unified YES-perspective view. Merges all 4 sides (YES bids/asks + NO bids/asks). Includes spread calculation.
alpha_get_positionsreadFetch all YES/NO token positions for a wallet across all Alpha Arcade markets. Uses your active MCP wallet if walletAddress is not provided.
alpha_get_reward_marketsreadFetch Alpha Arcade markets with liquidity rewards (totalRewards, rewardsPaidOut, etc.). Same shape as alpha_get_live_markets but includes reward info. Requires ALPHA_API_KEY.
alpha_merge_shareswriteMerge equal YES and NO outcome tokens back into USDC on Alpha Arcade. 1 YES + 1 NO = 1 USDC.
alpha_propose_matchwritePropose a match between an existing maker order and your wallet as taker on Alpha Arcade.
alpha_split_sharesreadSplit USDC into equal YES and NO outcome tokens on Alpha Arcade. 1 USDC (1000000 microunits) = 1 YES + 1 NO.
api_algod_get_account_application_inforeadGet account-specific application information from algod
api_algod_get_account_asset_inforeadGet account-specific asset information from algod
api_algod_get_account_inforeadGet current account balance, assets, and auth address from algod
api_algod_get_application_boxreadGet application box by name
api_algod_get_application_boxesreadGet all application boxes
api_algod_get_application_by_idreadGet application information
api_algod_get_asset_by_idreadGet current asset information from algod
api_algod_get_node_statusreadGet current node status
api_algod_get_node_status_after_blockreadGet node status after a specific round
api_algod_get_pending_transactionreadGet pending transaction information
api_algod_get_pending_transactionsreadGet all pending transactions
api_algod_get_pending_transactions_by_addressreadGet pending transactions for an address
api_algod_get_transaction_paramsreadGet suggested transaction parameters
api_haystack_needs_optinreadCheck if an Algorand address needs to opt into an asset before swapping. Returns true if opt-in is needed, false otherwise. Always returns false for ALGO (ASA 0). Use before executing a swap to determine if wallet_optin_asset should be called first.
api_indexer_lookup_account_created_applicationsreadGet applications created by this account
api_indexer_lookup_account_transactionsreadGet account transaction history
api_indexer_lookup_application_logsreadGet application log messages
api_indexer_lookup_asset_balancesreadGet accounts holding this asset and their balances
api_indexer_lookup_asset_transactionsreadGet transactions involving this asset
api_indexer_lookup_transaction_by_idreadGet transaction information by ID
api_indexer_search_for_accountsreadSearch for accounts with various criteria
api_indexer_search_for_applicationsreadSearch for applications with various criteria
api_indexer_search_for_assetsreadSearch for assets with various criteria
api_indexer_search_for_transactionsreadSearch for transactions with various criteria
api_nfd_browse_nfdsreadBrowse NFDs with various filters
api_nfd_get_nfdreadGet a specific NFD by name or by its application ID
api_nfd_get_nfd_activityreadGet activity/changes for NFDs
api_nfd_get_nfd_analyticsreadGet analytics data for NFDs
api_nfd_get_nfds_for_addressesreadGet NFDs for specific addresses
api_nfd_search_nfdsreadSearch NFDs with various filters
api_pera_asset_verification_statusreadGet the verification status of an Algorand mainnet asset from Pera Wallet. Returns verification tier (verified, trusted, suspicious, unverified) and explorer URL.
api_pera_verified_asset_detailsreadGet detailed information about an Algorand mainnet asset from Pera Wallet, including name, unit name, decimals, total supply, USD value, logo, verification tier, and collectible status.
api_pera_verified_asset_searchreadSearch Pera Wallet verified Algorand mainnet assets by name, unit name, or keyword. Returns matching assets with verification status, USD value, and logo.
api_tinyman_get_asset_optin_quotereadGet quote for opting into a Tinyman pool token
api_tinyman_get_liquidity_quotereadGet quote for adding liquidity to a pool
api_tinyman_get_poolreadGet Tinyman pool information by asset pair
api_tinyman_get_pool_analyticsreadGet analytics for a Tinyman pool
api_tinyman_get_pool_creation_quotereadGet quote for creating a new Tinyman pool
api_tinyman_get_remove_liquidity_quotedestructiveGet quote for removing liquidity from a pool
api_tinyman_get_swap_quotereadGet quote for swapping assets
api_tinyman_get_validator_optin_quotereadGet quote for opting into Tinyman validator app
api_tinyman_get_validator_optout_quotereadGet quote for opting out of Tinyman validator app
api_ultrade_market_assetsreadGet trading assets
api_ultrade_market_balancesreadGet account balances
api_ultrade_market_cancel_orderwriteCancel open order
api_ultrade_market_cancel_ordersreadCancel multiple open orders
api_ultrade_market_chainsreadGet blockchain chains
api_ultrade_market_create_orderwriteCreate new order
api_ultrade_market_create_orderswriteCreate new orders
api_ultrade_market_depthwriteGet order book depth
api_ultrade_market_detailsreadGet market details
api_ultrade_market_fee_ratesreadGet fee rates
api_ultrade_market_historyreadGet market history
api_ultrade_market_last_tradesreadGet last trades
api_ultrade_market_marketsreadGet markets
api_ultrade_market_open_ordersreadGet open orders
api_ultrade_market_operation_detailsreadGet operation details
api_ultrade_market_order_by_idwriteGet order by ID
api_ultrade_market_order_messagewriteGenerate message from the order data
api_ultrade_market_ordersreadGet orders
api_ultrade_market_pricereadGet last market price by pair symbol
api_ultrade_market_settingsreadGet market settings
api_ultrade_market_symbolsreadGet market symbols
api_ultrade_market_withdrawal_feereadGet withdrawal fee
api_ultrade_system_maintenancereadGet system maintenance status
api_ultrade_system_timereadGet current system time
api_ultrade_system_versionreadGet system version
api_ultrade_wallet_add_keywriteAdd a trading key
api_ultrade_wallet_key_messagereadGenerate message from the trading key data
api_ultrade_wallet_keysreadGet trading keys
api_ultrade_wallet_revoke_keydestructiveRevoke a trading key
api_ultrade_wallet_signinreadSign in to trading account
api_ultrade_wallet_signin_messagereadGenerate message from the sign in data
api_ultrade_wallet_tradesreadGet filtered wallet trades
api_ultrade_wallet_transactionsreadGet filtered wallet transactions
api_ultrade_wallet_withdrawreadWithdraw token
api_ultrade_wallet_withdraw_messagereadGenerate message from the withdrawal data
api_vestige_get_aggregator_statsreadGet aggregator stats
api_vestige_get_best_v4_swap_datareadGet best V4 swap data
api_vestige_get_v4_swap_data_transactionsreadGet V4 swap data transactions
api_vestige_get_v4_swap_discountreadGet V4 swap discount
api_vestige_view_asset_candlesreadGet asset candles
api_vestige_view_asset_compositionreadGet asset lockups based on protocol and pair
api_vestige_view_asset_historyreadGet asset volume, swaps, total lockup, vwap and confidence history
api_vestige_view_asset_notes_countreadGet notes count for assets
api_vestige_view_asset_pricereadGet asset prices
api_vestige_view_assetsreadGet data about assets
api_vestige_view_assets_listreadGet asset list
api_vestige_view_assets_searchreadSearch assets by query
api_vestige_view_balancesreadGet balances by network id, protocol id and asset id
api_vestige_view_first_asset_notesreadGet first note for assets
api_vestige_view_network_by_idreadGet network by id
api_vestige_view_networksreadGet all networks
api_vestige_view_notesreadGet notes by network id and optionally asset id
api_vestige_view_poolsreadGet pools
api_vestige_view_protocol_by_idreadGet protocol by id
api_vestige_view_protocol_volumesreadGet protocol volumes at specific day. Defaults to current day.
api_vestige_view_protocolsreadGet all protocols
api_vestige_view_swapsreadGet swaps
api_vestige_view_vaultsreadGet all vaults
assign_group_idreadAssign a group ID to a list of transactions
bazaar_get_resource_detailsreadFetch full details for a single Bazaar resource by its exact
bazaar_listreadBrowse paid API resources cataloged in the Bazaar (the discovery directory hosted by the configured facilitator). Returns a compact summary per resource by default; pass
bazaar_searchreadSearch Bazaar paid API resources by keyword. Hits the same /discovery/resources endpoint as bazaar_list but with the
bigint_to_bytesreadConvert a BigInt to bytes
bytes_to_bigintreadConvert bytes to a BigInt
compile_tealreadCompile TEAL source code
create_accountwriteCreate a new Algorand account
decode_addressreadDecode an Algorand address to a public key
decode_objreadDecode msgpack bytes to an object
decode_signed_transactionreadDecode base64 signed transaction bytes back into a transaction object with signature details. Accepts the blob from sign_transaction or wallet_sign_transaction.
decode_uint64readDecode bytes to a uint64
disassemble_tealreadDisassemble TEAL bytecode back to source
encode_addressreadEncode a public key to an Algorand address
encode_objreadEncode an object to msgpack format
encode_uint64readEncode a uint64 to bytes
encode_unsigned_transactionreadEncode a transaction object into base64 unsigned transaction bytes (msgpack). Accepts output from make_*_txn or assign_group_id.
generate_algorand_qrcodereadGenerate an Algorand URI and QR code according to ARC-26 specification
get_application_addressreadGet the address for a given application ID
get_knowledge_docreadGet markdown content for specified knowledge documents
make_app_call_txnwriteCreate an application call transaction
make_app_clear_txndestructiveCreate an application clear state transaction
make_app_closeout_txnwriteCreate an application close out transaction
make_app_create_txnwriteCreate an application creation transaction
make_app_delete_txndestructiveCreate an application delete transaction
make_app_optin_txnwriteCreate an application opt-in transaction
make_app_update_txnwriteCreate an application update transaction
make_asset_config_txnwriteCreate an asset configuration transaction
make_asset_create_txnwriteCreate an asset creation transaction
make_asset_destroy_txndestructiveCreate an asset destroy transaction
make_asset_freeze_txnwriteCreate an asset freeze transaction
make_asset_transfer_txnwriteCreate an asset transfer transaction
make_http_request_with_x402readCall an x402-protected HTTP endpoint with automatic USDC/ALGO payment from the active wallet. If
make_keyreg_txnwriteCreate a key registration transaction
make_payment_txnwriteCreate a payment transaction
mdk_to_mnemonicreadConvert a master derivation key to a mnemonic
mnemonic_from_seedreadGenerate a mnemonic from a seed
mnemonic_to_mdkreadConvert a mnemonic to a master derivation key
mnemonic_to_secret_keyreadConvert a mnemonic to a secret key
pingreadBasic protocol utility to verify server connectivity
rekey_accountreadRekey an Algorand account to a new address
secret_key_to_mnemonicreadConvert a secret key to a mnemonic
seed_from_mnemonicreadGenerate a seed from a mnemonic
send_raw_transactionwriteSubmit signed transactions to the Algorand network
sign_bytesreadSign bytes with a secret key
sign_transactionreadSign a transaction with a secret key
validate_addressreadCheck if an Algorand address is valid
verify_bytesreadVerify a signature against bytes with an Algorand address
wallet_add_accountwriteCreate a new Algorand account, store it in the agent-wallet database with a nickname, and auto-switch to it if it is the first account. Returns address, public key, nickname, and index. The mnemonic is held internally by the MCP server and never returned to the agent.
wallet_get_assetsreadGet all ASA holdings for the ACTIVE wallet account (an account whose private key this MCP server owns). Returns the wallet nickname, address, network, and the assets array. Use this when listing holdings of
wallet_get_inforeadGet info for the ACTIVE wallet account (an account whose private key this MCP server owns in the OS keychain). Returns nickname, address, public key, network, on-chain balance, min-balance, opted-in apps/assets counts. Use this when you want to know the state of
wallet_optin_assetreadOpt the active wallet account into an asset by ID. Creates, signs, and submits the opt-in transaction.
wallet_remove_accountdestructiveRemove an Algorand account from the wallet by nickname or index.
wallet_sign_datareadSign arbitrary data with the active wallet account using raw Ed25519 (noble library, no Algorand SDK prefix). Returns hex signature.
wallet_sign_transactionreadSign a single transaction with the active wallet account.
wallet_sign_transaction_groupreadSign a group of transactions with the active wallet account. Assigns group ID automatically.
wallet_switch_accountreadSwitch the active wallet account by nickname or index. The active account is used for signing and balance queries.
x402_discover_payment_requirementsreadProbe an x402-protected HTTP endpoint and return its payment requirements (the
04

Trust audit

BLOCKgrade F · trust 54/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (6 observation(s))
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
src/resources/knowledge/taxonomy/algokit:cli:features:localnet.md:58
- `--dev/--no-dev`: Control whether to launch 'algod' in developer mode or not. Defaults to 'yes' (developer mode enabled).
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
src/resources/knowledge/taxonomy/developer:docs:sdks:java:index.md:113
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
src/resources/knowledge/taxonomy/developer:docs:sdks:java:index.md:126
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
src/resources/knowledge/taxonomy/developer:docs:sdks:javascript:index.md:4
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
src/resources/knowledge/taxonomy/developer:docs:sdks:javascript:index.md:15
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
src/resources/knowledge/taxonomy/developer:docs:sdks:javascript:index.md:25
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md:831
const algod = ClientManager.getAlgodClient({server: 'http://localhost', port: '4001', token: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'})
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md:971
const indexer = ClientManager.getIndexerClient({server: 'http://localhost', port: '8980', token: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'})
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md:1044
const kmd = ClientManager.getKmdClient({server: 'http://localhost', port: '4002', token: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'})
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
src/resources/knowledge/taxonomy/algokit:utils:typescript:code:modules:index.md:1268
const algod = getAlgoClient({server: 'http://localhost', port: '4001', token: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'})
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
src/resources/knowledge/taxonomy/algokit:utils:typescript:code:modules:index.md:1323
const indexer = getAlgoIndexerClient({server: 'http://localhost', port: '8980', token: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'})
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
api_tinyman_get_remove_liquidity_quote, api_ultrade_wallet_revoke_key, make_app_clear_txn, make_app_delete_txn, make_asset_destroy_txn, wallet_remove_account
Why it matters. 6 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/apiManager/algod/account.ts:2
import { getAlgodClient, extractNetwork } from '../../../algorand-client.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/apiManager/algod/account.ts:3
import { withCommonParams } from '../../commonParams.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/apiManager/algod/application.ts:2
import { getAlgodClient, extractNetwork } from '../../../algorand-client.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/apiManager/algod/application.ts:3
import { withCommonParams } from '../../commonParams.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/apiManager/algod/asset.ts:2
import { getAlgodClient, extractNetwork } from '../../../algorand-client.js';
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/resources/knowledge/taxonomy/developer:docs:details:dapps:smart-contracts:debugging.md:73
$ curl http://127.0.0.1:4001/v2/transactions/simulate --data @demo.json
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/resources/knowledge/taxonomy/developer:docs:details:dapps:smart-contracts:debugging.md:123
'http://127.0.0.1',
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/resources/knowledge/taxonomy/developer:docs:details:dapps:smart-contracts:debugging.md:183
client = AlgodClient('a' * 64, "http://127.0.0.1:4001")
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/resources/knowledge/taxonomy/sdks:javascript:README.md:45
const server = 'http://127.0.0.1';
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/resources/knowledge/taxonomy/sdks:javascript:classes:Indexer.md:81
| `baseServer` | `string` | `'http://127.0.0.1'` | REST endpoint |
LOWObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
src/resources/knowledge/taxonomy/liquid-auth:ARCHITECTURE.md:122
"clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiMzVKWXBvWEduTTRzOElJQ2FrV1NMbGxjWHkzWl9sYzNBYUxTbDg3MnFYTSIsIm9yaWdpbiI6ImFuZHJvaWQ6YXBrLWtleS1oYXNoOlI4eE83cmxRV2FXTDRCbEZ5Z3B0V
LOWObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
src/resources/knowledge/taxonomy/liquid-auth:ARCHITECTURE.md:183
"clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiMFRYdTRHNGl1M3NiQVFvcGhlb1BlX0NwbkxKT0ItUWxJVXZ3RkJDMzE3USIsIm9yaWdpbiI6ImFuZHJvaWQ6YXBrLWtleS1oYXNoOlI4eE83cmxRV2FXTDRCbEZ5Z3B0V1JiN
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/utils/responseProcessor.ts:46
const decoded = atob(token);

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha dd3d03d1a1b2full audit observations/trust-audit/mcp-server/goplausible__algorand.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08dd3d03d1a1b2BLOCKF54first audit
06

Questions

What is the Algorand MCP server?

Algorand Local Model Context Protocol (Server & Client)

What tools does Algorand expose?

172 in total: 139 read-only, 27 that write, and 6 that can delete or overwrite (api_tinyman_get_remove_liquidity_quote, api_ultrade_wallet_revoke_key, make_app_clear_txn, make_app_delete_txn, make_asset_destroy_txn). Every one is listed on this page with its risk.

Is Algorand safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (54/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 6 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Algorand need?

It reads ALGORAND_TOKEN, ALPHA_API_KEY and HAYSTACK_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Algorand run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @goplausible/algorand-mcp at 4.4.0.

How current is this page?

The grade is for one exact copy of the source (dd3d03d1a1b2), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement