Skip to main content
Glama

Armor Crypto MCP

Alpha Test version 0.1.24

A single source for integrating AI Agents with the Crypto ecosystem. This includes Wallet creation and management, swaps, transfers, event-based trades like DCA, stop loss and take profit, and much more. The Armor MCP supports Solana in Alpha and, when in beta, will support more than a dozen blockchains, including Ethereum. Base, Avalanche, Bitcoin, Sui, Berachain, megaETH, Optimism, Ton, BNB, and Arbitrum, among others. Using Armor's MCP you can bring all of crypto into your AI Agent with unified logic and a complete set of tools.

Armor MCP

Features

🧠 AI Native

📙 Wallet Management

🔃 Swaps

🌈 Specialized trades (DCA, Stop Loss etc.)

⛓️ Multi-chain

↔️ Cross-chain transations

🥩 Staking

🤖 Fast intergration to Agentic frameworks

👫 Social Sentiment

🔮 Prediction Armor MCP Diagram

Requirements

1. Make sure you have python installed

2. Install uv

Linux / Windows

pip install uv

Mac

brew install uv

3. Claude Desktop or your AI Agent will run the MCP

See Usage & Configuration for details.

Alpha Testing

We are currently in pre-alpha, and we are testing the capabilities of various agents and agentic frameworks like Claude Desktop, Cline, Cursor, n8n, etc.

Current Features & Tools

  • Wallet Management

    • Grouping & Organization

    • Archiving

  • Swap & Trades

    • Normal swap

    • DCA (place / list / cancel)

    • Scheduled Orders

    • Limit Orders (place / list / cancel)

  • Staking and Unstaking

  • Token Search and Trending Tokens

  • Statistical Calculator for accurate Analysis

  • Supports Solana blockchain

Related MCP server: DeFi Trading Agent MCP Server

Coming Soon

  • More Blockchain Support

  • Minting

  • Armor Agents as a Tool (or A2A)

MCP Setup

Currently you need to have the Armor NFT to get an API Key. Get it here

Usage & Configuration

To use the Armor MCP with your agent, you need the following configuration, replace <PUT-YOUR-KEY-HERE> with your API key:

{
  "mcpServers": {
    "armor-crypto-mcp": {
      "command": "uvx",
      "args": ["armor-crypto-mcp@latest", "--version"],
      "env": {
        "ARMOR_API_KEY": "<PUT-YOUR-KEY-HERE>"
      }
    }
  }
}

Use in Claude Desktop

  1. Must have Developer Mode enabled

  2. Open Claude Desktop's File Menu top left of the window.

  3. Go to File > Settings

  4. Under Developer, click Edit Configuration

  5. In the config file, insert the armor-wallet-mcp section from above

  6. Make sure to replace the placeholder with your API key

  7. Save the file and start a new Chat in Claude Desktop

Use in Cline

  1. Click on the MCP Servers button in the Cline tab in VSCode on the left panel

  2. Scroll to the bottom of the left panel and click on Configure MCP Servers

  3. In the config file, insert armor-wallet-mcp section from above

  4. Make sure to replace the placeholder with your API key

  5. Save the file, click Done under the MCP Servers tab and start chatting with Cline

Use in n8n

  1. Open the n8n app

  2. Bottom-left of screen click ... next to your username and click Settings

  3. On the left panel, click Community nodes and then Install a Community Node button

  4. In the search field for npm Package Name type in mcp

  5. Install MCP Nodes

  6. Add any MCP node, for example: List Tools

  7. In the MCP Client Parameters tab, click Select Credential and click Create new credential

  8. Under Command enter uvx

  9. Under Arguments enter armor-crypto-mcp

  10. Under Environments enter ARMOR_API_KEY=eyJhbGciOiJIUzI1NiIsIn... paste the full API Key value after the =

  11. Back in the Parameters tab you can choose the MCP Operation for that Node

Using Armor MCP

Once you have setup the Armor MCP here are some prompts you can use to get started

Available Tools

37 tools
add_wallets_to_groupC

Add wallets to a specified group.

Expects the group name and a list of wallet names, returns a list of AddWalletToGroupResponse.

Inputs: add_wallet_to_group_requests (required). Returns: result

archive_wallet_groupB

Archive wallet groups.

Expects a list of group names, returns a list of GroupArchiveOrUnarchiveResponse.

Inputs: archive_wallet_group_requests (required). Returns: result

archive_walletsC

Archive wallets.

Expects a list of wallet names, returns a list of WalletArchiveOrUnarchiveResponse.

Inputs: archive_wallet_requests (required). Returns: result

calculate_token_conversionC

Perform token conversion quote between two tokens. Good for quickly calculating market prices.

Expects a ConversionRequestContainer, returns a list of ConversionResponse.

Inputs: conversion_requests (required). Returns: result

calculatorA

Safely evaluates a mathematical or statistical expression string using Python syntax.

Supports arithmetic operations (+, -, *, /, **, %, //), list expressions, and a range of math and statistics functions: abs, round, min, max, len, sum, mean, median, stdev, variance, sin, cos, tan, sqrt, log, exp, floor, ceil, etc.

Custom variables can be passed via the 'variables' dict, including lists for time series data.

Inputs: variables (required), expression (required).

cancel_dca_orderD

Create a DCA order.

Note: Make a single or multiple dca_order_requests

Inputs: cancel_dca_order_requests (required). Returns: result

cancel_orderC

Cancel a limit, take profit or stop loss order.

Expects a CancelOrderRequestContainer, returns a CancelOrderResponseContainer.

Inputs: cancel_order_requests (required). Returns: cancel_order_responses

create_dca_orderC

Create a DCA order.

Expects a DCAOrderRequestContainer, returns a list of DCAOrderResponse.

Inputs: dca_order_requests (required). Returns: result

create_groupsC

Create new wallet groups.

Expects a list of group names, returns a list of CreateGroupResponse.

Inputs: create_groups_requests (required). Returns: result

create_orderC

Create a order. Can be a limit, take profit or stop loss order.

Expects a CreateOrderRequestContainer, returns a CreateOrderResponseContainer.

Inputs: create_order_requests (required). Returns: create_order_responses

create_walletC

Create new wallets.

Expects a list of wallet names, returns a list of WalletInfo.

Inputs: create_wallet_requests (required). Returns: result

get_all_ordersC

Retrieve all limit, take profit and stop loss orders.

Returns a list of orders.

Inputs: get_all_orders_requests (required). Returns: list_order_responses

get_all_walletsC

Retrieve all wallets with balances.

Returns a list of Wallets and asssets

Inputs: get_all_wallets_requests (required). Returns: result

get_armor_mcp_versionA

Get the current Armor Wallet version

Inputs: no named parameters.

get_current_timeA

Gets the current time and date

Inputs: no named parameters. Returns: result

get_stake_balancesA

Get the balance of staked SOL (jupSOL).

Returns a StakeBalanceResponse.

Inputs: no named parameters. Returns: total_stake_amount, total_stake_amount_in_usd

get_token_candle_dataB

Get candle data about any token for analysis.

Expects a CandleStickRequest, returns a list of candle sticks.

Inputs: candle_stick_requests (required). Returns: result

get_wallet_token_balanceB

Get the balance for a list of wallet/token pairs.

Expects a WalletTokenPairsContainer, returns a list of WalletTokenBalance.

Inputs: wallet_token_pairs (required). Returns: result

list_dca_ordersC

List all DCA orders.

Returns a list of DCAOrderResponse.

Inputs: list_dca_order_requests (required). Returns: list_dca_order_responses

list_groupsA

List all wallet groups.

Returns a list of GroupInfo.

Inputs: no named parameters. Returns: result

list_single_groupB

Retrieve details for a single wallet group.

Expects the group name as a parameter, returns SingleGroupInfo.

Inputs: list_single_group_requests (required). Returns: id, name, wallets, is_archived

remove_wallets_from_groupB

Remove wallets from a specified group.

Expects the group name and a list of wallet names, returns a list of RemoveWalletFromGroupResponse.

Inputs: remove_wallets_from_group_requests (required). Returns: result

rename_walletsC

Rename wallets.

Expects a RenameWalletRequestContainer, returns a list.

Inputs: rename_wallet_requests (required). Returns: result

search_official_token_addressA

Get the official token address and symbol for a token symbol or token address. Try to use this first to get address and symbol of coin. If not found, use search_token_details to get details.

Expects a TokenDetailsRequestContainer, returns a TokenDetailsResponseContainer.

Inputs: token_details_requests (required). Returns: token_details_responses

search_token_detailsA

Search and retrieve details about single token. If only address or symbol is needed, use get_official_token_address first.

Expects a TokenSearchRequest, returns a list of TokenDetailsResponse.

Inputs: token_search_requests (required). Returns: token_search_responses

send_key_to_telegramB

Send the mnemonic or private key to telegram.

Inputs: private_key_request (required). Returns: result

stake_quoteC

Retrieve a stake quote.

Expects a StakeQuoteRequestContainer, returns a SwapQuoteRequestContainer.

Inputs: stake_quote_requests (required). Returns: swap_quote_requests

stake_transactionC

Execute a stake transaction.

Expects a StakeTransactionRequestContainer, returns a SwapTransactionRequestContainer.

Inputs: stake_transaction_requests (required). Returns: swap_transaction_requests

swap_quoteB

Retrieve a swap quote. Be sure to add slippage!

Expects a SwapQuoteRequestContainer, returns a list of SwapQuoteResponse.

Inputs: swap_quote_requests (required). Returns: result

swap_transactionC

Execute a swap transaction.

Expects a SwapTransactionRequestContainer, returns a list of SwapTransactionResponse.

Inputs: swap_transaction_requests (required). Returns: result

transfer_tokensC

Transfer tokens from one wallet to another.

Expects a TransferTokensRequestContainer, returns a list of TransferTokenResponse.

Inputs: transfer_tokens_requests (required). Returns: result

unarchive_wallet_groupB

Unarchive wallet groups.

Expects a list of group names, returns a list of GroupArchiveOrUnarchiveResponse.

Inputs: unarchive_wallet_group_requests (required). Returns: result

unarchive_walletsC

Unarchive wallets.

Expects a list of wallet names, returns a list of WalletArchiveOrUnarchiveResponse.

Inputs: unarchive_wallet_requests (required). Returns: result

unstake_quoteB

Retrieve an unstake quote.

Expects a UnstakeQuoteRequestContainer, returns a SwapQuoteRequestContainer.

Inputs: unstake_quote_requests (required). Returns: swap_quote_requests

unstake_transactionC

Execute an unstake transaction.

Expects a UnstakeTransactionRequestContainer, returns a SwapTransactionRequestContainer.

Inputs: unstake_transaction_requests (required). Returns: swap_transaction_requests

wait_a_momentB

Wait for some short amount of time, no more than 10 seconds

Inputs: seconds (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 37 tools

    Disambiguation4/5

    Most tools have distinct purposes with clear descriptions, but there is potential confusion between pairs like swap_quote/swap_transaction and stake_quote/stake_transaction. However, the descriptions differentiate them adequately. The inclusion of utility tools like calculator and wait_a_moment also adds some ambiguity regarding their role.

    Naming Consistency5/5

    Tool names consistently follow a verb_noun pattern (e.g., create_order, cancel_order, list_groups, archive_wallets). Even longer names like calculate_token_conversion and send_key_to_telegram adhere to this pattern. There is no mixing of conventions, making the set predictable.

    Tool Count3/5

    With 37 tools, the set is quite large. While the domain (crypto wallet and trading management) is broad, the inclusion of generic utilities like calculator, get_current_time, and wait_a_moment inflates the count unnecessarily. A leaner, more focused set (20-25 tools) would be more appropriate.

    Completeness3/5

    The tool surface covers major lifecycle operations for wallets, orders, staking, and swapping, but notable gaps exist: no order modification or viewing individual order details, no transaction history, and no reward management for staking. Some operations like wallet grouping are thorough, but the set feels incomplete in fine-grained control.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers