Alchemy MCP Server

by alchemyplatform

88 stars
263 downloads
Not rated
GitHub

About

Alchemy's official MCP Server. Allow AI agents to interact with Alchemy's blockchain APIs.

Details

Author
alchemyplatform
GitHub stars
88
Downloads
263
Categories
Developer Tools, Finance, API, Other

- Query token prices by symbol or contract address
- Retrieve historical price data with flexible time frames
- Check token balances across multiple blockchain networks
- Get NFT ownership and contract data across chains
- View transaction history and detailed asset transfers
- Send transactions and execute DEX swaps (requires wallet agent)

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Alchemy MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

To use the recommended hosted server, point your MCP client to https://mcp.alchemy.com/mcp with Streamable HTTP transport and authenticate via OAuth — no API key required. The local STDIO server runs via npx -y @alchemy/mcp-server and requires the ALCHEMY_API_KEY environment variable. For transaction and swap methods, also set AGENT_WALLET_SERVER to a configured wallet agent server.

listSupportedNetworks

List all blockchain networks supported by Alchemy, including EVM and Solana chains

fetchTokenPriceBySymbol

Get current USD prices for tokens by their ticker symbol (e.g. BTC, ETH)

fetchTokenPriceByAddress

Get current USD prices for tokens by their contract address and network

fetchTokenPriceHistoryBySymbol

Get historical token price data over a date range with configurable interval

fetchTokenPriceHistoryByTimeFrame

Get historical token prices using natural language time frames like "last week" or "past 7 days"

fetchTokensOwnedByMultichainAddresses

Get all ERC-20 tokens owned by wallet addresses across multiple chains

fetchAddressTransactionHistory

Get transaction history for wallet addresses across multiple chains, with human-readable dates and ETH values

fetchTransfers

Get token and ETH transfers filtered by address, block range, or contract

fetchNftsOwnedByMultichainAddresses

Get NFTs owned by wallet addresses across multiple chains, with spam filtering

fetchNftContractDataByMultichainAddress

Get NFT contract data for wallet addresses across multiple chains

sendTransaction

Send a transaction from a smart contract account (SCA) via the Alchemy wallet API. Requires AGENT_WALLET_SERVER

swap

Initiate a token swap from a smart contract account (SCA) via the Alchemy wallet API. Requires AGENT_WALLET_SERVER

getNFTsForOwner

Get all NFTs owned by an address on a single network, with metadata and spam filtering options

getNFTsForContract

Get all NFTs in a specific contract or collection with optional metadata

getNFTsForCollection

Get all NFTs in a collection by contract address or OpenSea slug

getNFTMetadata

Get metadata for a specific NFT by contract address and token ID

getContractMetadata

Get metadata for an NFT contract (name, symbol, total supply, etc.)

getCollectionMetadata

Get metadata for an NFT collection by its OpenSea slug

invalidateNFTContractCache

Invalidate cached metadata for an NFT contract to force a refresh on next query

getOwnersForNFT

Get all owner addresses for a specific NFT token

getOwnersForContract

Get all owner addresses for an NFT contract, optionally with token balances

getSpamContracts

Get a list of all known spam NFT contract addresses on a network

isSpamContract

Check if a specific contract address is flagged as spam

isAirdropNFT

Check if a specific NFT is flagged as an airdrop

summarizeNFTAttributes

Get a summary of trait/attribute distribution for an NFT collection

getFloorPrice

Get the marketplace floor price for an NFT collection

searchContractMetadata

Search for NFT contracts by keyword in their metadata

isHolderOfContract

Check if a wallet address owns any NFTs from a specific contract

computeRarity

Compute the rarity score for a specific NFT within its collection

getNFTSales

Get historical NFT sales data, filterable by marketplace, contract, buyer, or seller

getContractsForOwner

Get all NFT contracts that an address owns tokens in

getCollectionsForOwner

Get all NFT collections that an address owns tokens in

reportSpam

Report an NFT contract address as spam or not spam

getTokenAllowance

Get the ERC-20 token allowance a spender has been granted by an owner

getTokenBalances

Get ERC-20 token balances for a wallet address on a single network

getTokenMetadata

Get metadata (name, symbol, decimals, logo) for an ERC-20 token contract

getTransactionReceipts

Get all transaction receipts for a given block by number or hash

debugGetRawBlock

Get the raw RLP-encoded block data for a given block number or tag

debugGetRawHeader

Get the raw RLP-encoded block header for a given block number or tag

debugGetRawReceipts

Get the raw receipt data for all transactions in a block

debugTraceBlockByHash

Replay and trace all transactions in a block identified by its hash

debugTraceBlockByNumber

Replay and trace all transactions in a block identified by its number

debugTraceCall

Trace a call without executing it on-chain — useful for debugging contract interactions

debugTraceTransaction

Get a detailed execution trace of an already-mined transaction

traceBlock

Get Parity-style execution traces for all transactions in a block

traceCall

Execute and trace a call without broadcasting it (Parity-style tracing)

traceGet

Get a specific sub-trace within a transaction by index position

traceRawTransaction

Trace a raw signed transaction without broadcasting it to the network

traceReplayBlockTransactions

Replay all transactions in a block and return traces with optional state diffs

traceReplayTransaction

Replay a specific transaction and return its trace with optional state diffs

traceTransaction

Get the Parity-style execution trace of an already-mined transaction

traceFilter

Search for traces matching criteria like sender, recipient, and block range

simulateAssetChanges

Simulate a transaction and preview what asset changes (token transfers, ETH movements) would occur

simulateAssetChangesBundle

Simulate a bundle of 1-2 transactions and preview the combined asset changes

simulateExecution

Simulate full transaction execution and get detailed call traces, logs, and return data

simulateExecutionBundle

Simulate execution of a bundle of 1-2 transactions with full call traces

getMaxPriorityFeePerGas

Get the recommended max priority fee per gas for EIP-1559 transactions

getUserOperationReceipt

Get the receipt for an ERC-4337 user operation by its hash

getSupportedEntryPoints

Get the entry point contract addresses supported for ERC-4337 account abstraction

getUserOperationByHash

Get details of an ERC-4337 user operation by its hash

estimateUserOperationGas

Estimate gas costs for an ERC-4337 user operation against an entry point

simulateUserOperationAssetChanges

Simulate an ERC-4337 user operation and preview the predicted asset changes

getBeaconGenesis

Get Ethereum Beacon Chain genesis information (time, validator root, fork version)

getBeaconBlock

Get a Beacon Chain block by slot number, root, or keyword (head, finalized, genesis)

getBeaconBlockAttestations

Get attestations included in a specific Beacon Chain block

getBeaconBlockRoot

Get the root hash of a specific Beacon Chain block

getBeaconBlobSidecars

Get blob sidecars for a Beacon Chain block (EIP-4844 blob data)

getBeaconHeaders

Get Beacon Chain block headers, optionally filtered by slot or parent root

getBeaconHeaderByBlockId

Get a specific Beacon Chain block header by its block ID

getBeaconPoolVoluntaryExits

Get voluntary validator exit messages currently in the Beacon Chain mempool

getBeaconPoolAttestations

Get attestations currently pending in the Beacon Chain mempool

getBeaconStateCommittees

Get beacon committee assignments for a given state, optionally filtered by epoch/slot

getBeaconStateFinalityCheckpoints

Get finality checkpoints (justified and finalized epochs) for a given state

getBeaconStateFork

Get the fork version information for a given Beacon Chain state

getBeaconStatePendingConsolidations

Get pending validator consolidation requests for a given state

getBeaconStateRoot

Get the state root hash for a given Beacon Chain state

getBeaconStateSyncCommittees

Get sync committee assignments for a given state and optional epoch

getBeaconStateRandao

Get the RANDAO mix value for a given Beacon Chain state and optional epoch

getBeaconStateValidatorBalances

Get validator ETH balances for a given state, optionally filtered by validator ID

getBeaconStateValidators

Get validator details for a given state, optionally filtered by ID or status

getBeaconStateValidatorById

Get full details for a specific Beacon Chain validator by index or public key

getBeaconBlockRewards

Get the block rewards breakdown (proposer, attestation, sync committee) for a Beacon block

getBeaconConfigSpec

Get the full Beacon Chain configuration specification and protocol constants

getBeaconNodeSyncing

Check whether a Beacon Chain node is currently syncing and its sync progress

getBeaconNodeVersion

Get the software version string of the Beacon Chain node

solanaGetAsset

Get detailed information about a Solana asset (token, NFT, or compressed NFT) by its mint ID

solanaGetAssets

Get detailed information about multiple Solana assets by their mint IDs in a single request

solanaGetAssetProof

Get the Merkle proof for a compressed Solana asset, needed for on-chain verification

solanaGetAssetProofs

Get Merkle proofs for multiple compressed Solana assets in a single request

solanaGetAssetsByAuthority

Get all Solana assets managed by a specific authority address

solanaGetAssetsByCreator

Get all Solana assets created by a specific address, with optional verification filter

solanaGetAssetsByGroup

Get all Solana assets in a specific group (e.g. an NFT collection)

solanaGetAssetsByOwner

Get all Solana assets (tokens, NFTs) owned by a specific wallet address

solanaGetAssetSignatures

Get transaction signatures associated with a specific Solana asset

solanaGetNftEditions

Get edition information (master/print editions) for a Solana NFT

solanaGetTokenAccounts

Get Solana SPL token accounts filtered by mint address or owner

solanaSearchAssets

Search for Solana assets with flexible filters (owner, creator, authority, burnt, frozen status)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "alchemy mcp server": {
            "alchemy": {
                "command": "npx",
                "args": [
                    "-y",
                    "@alchemy/mcp-server"
                ],
                "env": {
                    "ALCHEMY_API_KEY": "YOUR_API_KEY"
                }
            }
        }
    }
}

McpServers

{
    "alchemy": {
        "command": "npx",
        "args": [
            "-y",
            "@alchemy/mcp-server"
        ],
        "env": {
            "ALCHEMY_API_KEY": "YOUR_API_KEY"
        }
    }
}
# Alchemy MCP Server (Legacy — Not Actively Maintained) This open-source Model Context Protocol (MCP) server runs Alchemy's blockchain APIs locally via STDIO. **New users should use the [hosted Alchemy MCP Server](https://www.alchemy.com/docs/alchemy-mcp-server) instead.** <a href="https://glama.ai/mcp/servers/@alchemyplatform/alchemy-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@alchemyplatform/alchemy-mcp-server/badge" alt="Alchemy Server MCP server" /> </a> ## Remote MCP Server (Recommended) The fastest way to get started is to connect to the hosted remote server at `https://mcp.alchemy.com/mcp`. It authenticates via OAuth — just sign in with your Alchemy account when prompted. No API key or local install required. **Full documentation:** [alchemy.com/docs/alchemy-mcp-server](https://www.alchemy.com/docs/alchemy-mcp-server) > **Legacy notice:** The hosted [Alchemy MCP Server](https://www.alchemy.com/docs/alchemy-mcp-server) at `https://mcp.alchemy.com/mcp` is the recommended and actively maintained MCP server. This repository contains the legacy local STDIO server, is not actively maintained, and may lag behind the hosted server's tool coverage and behavior. Alchemy plans to sunset this repository; new users should connect to the hosted server instead. | Client | Setup | | ------------------- | ---------------------------------------------------------------------------------- | | **Claude Code** | `claude mcp add alchemy --transport http https://mcp.alchemy.com/mcp` | | **Codex** | `codex mcp add alchemy --url https://mcp.alchemy.com/mcp` | | **Cursor** | Add to `~/.cursor/mcp.json` or `.cursor/mcp.json` — see JSON config below | | **Windsurf** | Add to `~/.codeium/windsurf/mcp_config.json` — see JSON config below | | **VS Code Copilot** | Add to `.vscode/mcp.json` — see JSON config below | | **Claude Desktop** | Add to `claude_desktop_config.json` — see JSON config below | | **Cline** | Open `Cline: MCP Servers` from the VS Code command palette — see JSON config below | <details> <summary>JSON config for Cursor / Windsurf / Claude Desktop / Cline</summary> ```json { "mcpServers": { "alchemy": { "type": "streamable-http", "url": "https://mcp.alchemy.com/mcp" } } } ``` </details> <details> <summary>JSON config for VS Code Copilot</summary> ```json { "servers": { "alchemy": { "type": "http", "url": "https://mcp.alchemy.com/mcp" } } } ``` </details> For any other MCP-compatible client, point it at `https://mcp.alchemy.com/mcp` using Streamable HTTP transport. ## Local STDIO Server > **Legacy:** This section documents the open-source local STDIO server. It is not actively maintained. Use the [hosted server](#remote-mcp-server-recommended) unless you specifically need the `@alchemy/mcp-server` npm package or local development workflow. This MCP server creates a bridge between AI agents and Alchemy's blockchain APIs, allowing agents to: - Query token prices and price history (including flexible time frame queries) - Get NFT ownership information and contract data - View transaction history across multiple networks - Check token balances across multiple blockchain networks - Retrieve detailed asset transfers with filtering - Send transactions via Smart Contract Accounts (**requires configured wallet agent server**) - Execute token swaps via DEX protocols (**requires configured wallet agent server**) - And more! ### Quick Setup To quickly set up the MCP server, use the following configuration in your MCP config file (typically in Claude Desktop or Cursor settings): ```json { "mcpServers": { "alchemy": { "command": "npx", "args": ["-y", "@alchemy/mcp-server"], "env": { "ALCHEMY_API_KEY": "YOUR_API_KEY" } } } } ``` This configuration allows you to use the server without manually cloning the repository. ### Environment Variables The MCP server requires the following environment variable: - `ALCHEMY_API_KEY` - Your Alchemy API key (required for all blockchain data queries) **For transaction and swap functionality**, you must also configure: - `AGENT_WALLET_SERVER` - URL of a configured wallet agent server that handles Smart Contract Account operations ⚠️ **Important**: The `sendTransaction` and `swap` methods will not function without a properly configured wallet agent server. These methods require external wallet infrastructure to handle signing and broadcasting transactions. ## Available Methods You can prompt your AI agent to use the following methods: ### Token Price Methods 1. **fetchTokenPriceBySymbol** - Gets current price data for tokens by symbol - Example: "What's the current price of ETH and BTC?" 2. **fetchTokenPriceByAddress** - Gets current price data for tokens by contract address - Example: "What's the price of the token at address 0x1234...5678 on Ethereum mainnet?" 3. **fetchTokenPriceHistoryBySymbol** - Gets historical price data for tokens with specific date ranges - Example: "Show me BTC price history from Jan 1 to Feb 1, 2023, with daily intervals" 4. **fetchTokenPriceHistoryByTimeFrame** - Gets historical price data using flexible time frames or natural language - Example: "Show me ETH price for the last week" or "Get BTC price for the past 30 days" ### Multichain Token Methods 5. **fetchTokensOwnedByMultichainAddresses** - Gets token balances for addresses across multiple networks - Example: "What tokens does 0xabc...123 hold on Ethereum and Base?" ### Transaction History Methods 6. **fetchAddressTransactionHistory** - Gets transaction history for addresses across multiple networks - Example: "Show recent transactions for wallet 0xdef...456 on Ethereum" 7. **fetchTransfers** - Gets detailed asset transfer data with advanced filtering options - Example: "Show me all ERC-20 transfers to or from 0xghi...789" ### NFT Methods 8. **fetchNftsOwnedByMultichainAddresses** - Gets all NFTs owned by addresses with spam filtering - Example: "What NFTs does 0xjkl...012 own?" 9. **fetchNftContractDataByMultichainAddress** - Gets NFT contract data for addresses - Example: "What NFT collections does 0xmno...345 have tokens from?" ### Transaction Methods 10. **sendTransaction** - Sends transactions via Smart Contract Accounts - **⚠️ Important**: Requires a configured wallet agent server with `AGENT_WALLET_SERVER` environment variable - Example: "Send 0.1 ETH to 0xpqr...678" ### Swap Methods 11. **swap** - Executes token swaps via DEX protocols (Uniswap) - **⚠️ Important**: Requires a configured wallet agent server with `AGENT_WALLET_SERVER` environment variable - Example: "Swap 100 USDC for ETH" ## Local Development This repository remains available for reference and migration, but is not actively maintained. For new features and the latest tool coverage, use the [hosted Alchemy MCP Server](https://www.alchemy.com/docs/alchemy-mcp-server). ### Installation 1. Clone the repository ```bash git clone https://github.com/alchemyplatform/alchemy-mcp.git cd alchemy-mcp ``` 2. Install dependencies ```bash pnpm install ``` ### Development ```bash pnpm watch ``` ### Building for Production ```bash pnpm build ``` ### Using the MCP Inspector for Debugging The MCP Inspector helps you debug your MCP server by providing a visual interface to test your methods: ```bash pnpm inspector ``` This will start the MCP Inspector which you can access in your browser. It allows you to: - See all available methods - Test methods with different parameters - View the response data - Debug issues with your MCP server ## Contributing This repository is not actively maintained. Pull requests for security fixes or migration-related improvements may be considered, but new features should target the hosted server instead. For major changes, please open an issue first. ## License This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. ## Example Prompts Here are some example prompts you can use with your AI agent: ``` What's the current price of Bitcoin and Ethereum? Show me the NFTs owned by the wallet 0x1234...5678 on Ethereum. What tokens does wallet 0xabcd...6789 hold across Ethereum and Base? Get me the transaction history for 0x9876...5432. Show me the price history of Ethereum from January 1st to today with daily intervals. Get me Bitcoin price data for the last week with hourly intervals. Show me ETH price performance for the past month. What ERC-20 transfers happened to address 0x1234...5678 in the last 100 blocks? ``` ## API Reference For more information about Alchemy's APIs, refer to: - [Alchemy API Documentation](https://docs.alchemy.com/)
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.