blockscout avatar

Mcp Server

blockscout/mcp-server

Wraps the Blockscout blockchain explorer API to let Claude query addresses, contracts, transactions, and NFTs across multiple chains. You get balance lookups, token holdings with market data, transaction history with time range filters, contract ABIs and source code for verified contracts, and ENS resolution. The server handles pagination with opaque cursors and truncates large responses to keep token usage reasonable. Reach for this when you need to analyze on-chain data without bouncing between block explorers or writing custom RPC calls. Works through both the hosted endpoint at mcp.blockscout.com and a REST API wrapper if you need programmatic access outside MCP hosts.

tools
15
transport
HTTP
last updated
Sep 8, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.blockscout.com/mcp --name blockscout

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http blockscout https://mcp.blockscout.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 15 tools

Verified live against the running server on Nov 6, 2026.

get_block_infoGet block information like timestamp, gas used, burnt fees, transaction count etc. Can optionally include the list of transaction hashes contained in the block. Transaction hashes are omitted by default; request them only when you truly need them, because on high-traffic chain...4 params

Get block information like timestamp, gas used, burnt fees, transaction count etc. Can optionally include the list of transaction hashes contained in the block. Transaction hashes are omitted by default; request them only when you truly need them, because on high-traffic chain...

Parameters* required
chain_id*string
The ID of the blockchain
include_transactionsvalue
If true, includes a list of transaction hashes from the block.default: false
number_or_hash*string
Block number or hash
session_idvalue
Opaque session identifier.
get_block_numberRetrieves the block number and timestamp for a specific date/time or the latest block. Use when you need a block height for a specific point in time (e.g., "block at 2024-01-01") or the current chain tip. If `datetime` is provided, finds the block immediately preceding that ti...3 params

Retrieves the block number and timestamp for a specific date/time or the latest block. Use when you need a block height for a specific point in time (e.g., "block at 2024-01-01") or the current chain tip. If `datetime` is provided, finds the block immediately preceding that ti...

Parameters* required
chain_id*string
The ID of the blockchain
datetimevalue
The date and time (ISO 8601 format, e.g. 2025-05-22T23:00:00.00Z) to find the block for. If omitted, returns the latest block.
session_idvalue
Opaque session identifier.
get_address_by_ens_nameUseful for when you need to convert an ENS domain name (e.g. "blockscout.eth") to its corresponding Ethereum address.2 params

Useful for when you need to convert an ENS domain name (e.g. "blockscout.eth") to its corresponding Ethereum address.

Parameters* required
name*string
ENS domain name to resolve
session_idvalue
Opaque session identifier.
get_transactions_by_addressRetrieves native currency transfers and smart contract interactions (calls, internal txs) for an address. **EXCLUDES TOKEN TRANSFERS**: Filters out direct token balance changes (ERC-20, etc.). You'll see calls *to* token contracts, but not the `Transfer` events. For token hist...7 params

Retrieves native currency transfers and smart contract interactions (calls, internal txs) for an address. **EXCLUDES TOKEN TRANSFERS**: Filters out direct token balance changes (ERC-20, etc.). You'll see calls *to* token contracts, but not the `Transfer` events. For token hist...

Parameters* required
address*string
Address which either sender or receiver of the transaction
age_from*string
Start date and time (e.g 2025-05-22T23:00:00.00Z). Alone, returns all transactions to/from the address since this date.
age_tovalue
End date and time (e.g 2025-05-22T22:30:00.00Z). Adding this bounds the upper end of the date range started by `age_from`.
chain_id*string
The ID of the blockchain
cursorvalue
The pagination cursor from a previous response to get the next page of results.
methodsvalue
A method signature to filter transactions by (e.g 0x304e6ade). Filters the (optionally date-bounded) results to a specific method signature.
session_idvalue
Opaque session identifier.
get_token_transfers_by_addressGet ERC-20 token transfers for an address within a specific time range. **SUPPORTS PAGINATION**: If response includes 'pagination' field, use the provided next_call to get additional pages.7 params

Get ERC-20 token transfers for an address within a specific time range. **SUPPORTS PAGINATION**: If response includes 'pagination' field, use the provided next_call to get additional pages.

Parameters* required
address*string
Address which either transfer initiator or transfer receiver
age_from*string
Start date and time (e.g 2025-05-22T23:00:00.00Z). Alone, returns all ERC-20 transfers to/from the address since this date.
age_tovalue
End date and time (e.g 2025-05-22T22:30:00.00Z). Adding this bounds the upper end of the date range started by `age_from`; if omitted, transfers up to the current time are returned.
chain_id*string
The ID of the blockchain
cursorvalue
The pagination cursor from a previous response to get the next page of results.
session_idvalue
Opaque session identifier.
tokenvalue
An ERC-20 token contract address to restrict results to a single token. If omitted, returns transfers of all tokens.
lookup_token_by_symbolSearch for token addresses by symbol or name. Returns multiple potential matches based on symbol or token name similarity. Only the first 7 matches from the Blockscout API are returned.3 params

Search for token addresses by symbol or name. Returns multiple potential matches based on symbol or token name similarity. Only the first 7 matches from the Blockscout API are returned.

Parameters* required
chain_id*string
The ID of the blockchain
session_idvalue
Opaque session identifier.
symbol*string
Token symbol or name to search for
get_contract_abiGet smart contract ABI (Application Binary Interface). An ABI defines all functions, events, their parameters, and return types. The ABI is required to format function calls or interpret contract data.3 params

Get smart contract ABI (Application Binary Interface). An ABI defines all functions, events, their parameters, and return types. The ABI is required to format function calls or interpret contract data.

Parameters* required
address*string
Smart contract address
chain_id*string
The ID of the blockchain
session_idvalue
Opaque session identifier.
inspect_contract_codeInspects a verified contract's source code or metadata.4 params

Inspects a verified contract's source code or metadata.

Parameters* required
address*string
The address of the smart contract.
chain_id*string
The ID of the blockchain.
file_namevalue
The name of the source file to inspect. If omitted, returns contract metadata and the list of source files.
session_idvalue
Opaque session identifier.
read_contractCalls a smart contract function (view/pure, or non-view/pure simulated via eth_call) and returns the decoded result. This tool provides a direct way to query the state of a smart contract. Example: To check the USDT balance of an address on Ethereum Mainnet, you would use the...7 params

Calls a smart contract function (view/pure, or non-view/pure simulated via eth_call) and returns the decoded result. This tool provides a direct way to query the state of a smart contract. Example: To check the USDT balance of an address on Ethereum Mainnet, you would use the...

Parameters* required
abi*object
The JSON ABI for the specific function being called. This should be a dictionary that defines the function's name, inputs, and outputs. The function ABI can be obtained using the `get_contract_abi`...
address*string
Smart contract address
argsstring
A JSON string containing an array of arguments. Example: "["0xabc..."]" for a single address argument, or "[]" for no arguments. Order and types must match ABI inputs. Addresses: use 0x-prefixed st...default: []
blockvalue
The block identifier to read the contract state from. Can be a block number (e.g., 19000000) or a string tag (e.g., 'latest'). Defaults to 'latest'.default: latest
chain_id*string
The ID of the blockchain
function_name*string
The symbolic name of the function to be called. This must match the `name` field in the provided ABI.
session_idvalue
Opaque session identifier.
get_address_infoGet comprehensive information about an address, including: - Address existence check - Native token (ETH) balance (provided as is, without adjusting by decimals) - First transaction details (block number and timestamp) for age calculation - ENS name association (if any) - Cont...3 params

Get comprehensive information about an address, including: - Address existence check - Native token (ETH) balance (provided as is, without adjusting by decimals) - First transaction details (block number and timestamp) for age calculation - ENS name association (if any) - Cont...

Parameters* required
address*string
Address to get information about
chain_id*string
The ID of the blockchain
session_idvalue
Opaque session identifier.
get_tokens_by_addressGet comprehensive ERC20 token holdings for an address with enriched metadata and market data. Returns detailed token information including contract details (name, symbol, decimals), market metrics (exchange rate, market cap, volume), holders count, and actual balance (provided...4 params

Get comprehensive ERC20 token holdings for an address with enriched metadata and market data. Returns detailed token information including contract details (name, symbol, decimals), market metrics (exchange rate, market cap, volume), holders count, and actual balance (provided...

Parameters* required
address*string
Wallet address
chain_id*string
The ID of the blockchain
cursorvalue
The pagination cursor from a previous response to get the next page of results.
session_idvalue
Opaque session identifier.
nft_tokens_by_addressRetrieve NFT tokens (ERC-721, ERC-404, ERC-1155) owned by an address, grouped by collection. Provides collection details (type, address, name, symbol, total supply, holder count) and individual token instance data (ID, name, description, external URL, metadata attributes). Ess...4 params

Retrieve NFT tokens (ERC-721, ERC-404, ERC-1155) owned by an address, grouped by collection. Provides collection details (type, address, name, symbol, total supply, holder count) and individual token instance data (ID, name, description, external URL, metadata attributes). Ess...

Parameters* required
address*string
NFT owner address
chain_id*string
The ID of the blockchain
cursorvalue
The pagination cursor from a previous response to get the next page of results.
session_idvalue
Opaque session identifier.
get_transaction_infoGet comprehensive transaction information. Unlike standard eth_getTransactionByHash, this tool returns enriched data including decoded input parameters, detailed token transfers with token metadata, transaction fee breakdown (priority fees, burnt fees) and categorized transact...4 params

Get comprehensive transaction information. Unlike standard eth_getTransactionByHash, this tool returns enriched data including decoded input parameters, detailed token transfers with token metadata, transaction fee breakdown (priority fees, burnt fees) and categorized transact...

Parameters* required
chain_id*string
The ID of the blockchain
include_raw_inputvalue
If true, includes the raw transaction input data.default: false
session_idvalue
Opaque session identifier.
transaction_hash*string
Transaction hash
get_chains_listGet supported blockchain chains with their chain IDs. Ethereum Mainnet is `chain_id` `1`; use this tool to resolve any other chain. Use this when another tool needs a supported `chain_id` and only the chain name, ecosystem, or native currency is known. Prefer a narrow `query`...2 params

Get supported blockchain chains with their chain IDs. Ethereum Mainnet is `chain_id` `1`; use this tool to resolve any other chain. Use this when another tool needs a supported `chain_id` and only the chain name, ecosystem, or native currency is known. Prefer a narrow `query`...

Parameters* required
queryvalue
Optional case-insensitive substring filter applied to chain name, chain ID, native currency, and ecosystem. Prefer narrow text terms over partial numeric chain IDs because matching is substring-based.
session_idvalue
Opaque session identifier.
direct_api_callCall a raw Blockscout API endpoint for advanced or chain-specific data. Before the first call to this tool in a session, read `blockscout-mcp://skill/SKILL.md` (the operating rules), then `blockscout-mcp://skill/references/blockscout-api-index.md` (the authoritative index of c...7 params

Call a raw Blockscout API endpoint for advanced or chain-specific data. Before the first call to this tool in a session, read `blockscout-mcp://skill/SKILL.md` (the operating rules), then `blockscout-mcp://skill/references/blockscout-api-index.md` (the authoritative index of c...

Parameters* required
chain_id*string
The ID of the blockchain
cursorvalue
The pagination cursor from a previous response to get the next page of results.
endpoint_path*string
The Blockscout API path to call (e.g., '/api/v2/stats'); do not include query strings — pass all query parameters via query_params to avoid double-encoding.
json_bodyvalue
JSON request body for POST requests.
methodstring
HTTP method used for the upstream call. Use POST with json_body.one of GET · POSTdefault: GET
query_paramsvalue
Optional query parameters forwarded to the Blockscout API.
session_idvalue
Opaque session identifier.

Sponsors

Readme

Blockscout MCP Server

smithery badge

Blockscout Server MCP server

The Model Context Protocol (MCP) is an open protocol designed to allow AI agents, IDEs, and automation tools to consume, query, and analyze structured data through context-aware APIs.

This server wraps Blockscout APIs and exposes blockchain data—balances, tokens, NFTs, contract metadata—via MCP so that AI agents and tools (like Claude, Cursor, or IDEs) can access and analyze it contextually.

Key Features:


View the full README on GitHub

Details

Repository
github.com/blockscout/mcp-server
Website
blockscout.com
Transport
HTTP
Registry
MCP registry, active
Resources
21
Tools verified
Nov 6, 2026

More from blockscout