Alchemy MCP Server
About
Alchemy's official MCP Server. Allow AI agents to interact with Alchemy's blockchain APIs.
Details
- License
- MIT
Explore
- 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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Alchemy MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Clone the repository
git clone https://github.com/alchemyplatform/alchemy-mcp.git
cd alchemy-mcp
2. Install dependencies
pnpm install
To quickly set up the MCP server, use the following configuration in your MCP config file (typically in Claude Desktop or Cursor settings):
{
"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.
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.
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"
}
}
}
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 instead.
<a href="https://glama.ai/mcp/servers/@alchemyplatform/alchemy-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
> Legacy notice: The hosted 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>
{
"mcpServers": {
"alchemy": {
"type": "streamable-http",
"url": "https://mcp.alchemy.com/mcp"
}
}
}
</details>
<details>
<summary>JSON config for VS Code Copilot</summary>
{
"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 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):
{
"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.
Installation
1. Clone the repository
git clone https://github.com/alchemyplatform/alchemy-mcp.git
cd alchemy-mcp
2. Install dependencies
pnpm install
Development
pnpm watch
Building for Production
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:
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:
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



