starknet_getBlockWithTxHashesLABSCO SUMMARY
Read-only, and that is stated rather than implied.
There is no write path here, so the worst a mistaken call can do is read the wrong block — which is the right shape for pointing a model at a chain. The author also names the rough edge honestly: models tend to send strings where the input schema asks for something else, and some of that is handled in code but not all of it. Your client will ask permission per method and show the input and output inline, which makes the calls easy to check.
What it is
A Starknet server that exposes the chain's JSON-RPC read methods as MCP tools, pointed at whatever RPC endpoint you configure.
What you get
- Blocks:
starknet_getBlockWithTxHashes,starknet_getBlockWithTxs,starknet_getBlockWithReceipts,starknet_getBlockTransactionCount,starknet_blockNumber,starknet_blockHashAndNumber - Transactions:
starknet_getTransactionByHash,starknet_getTransactionByBlockIdAndIndex,starknet_getTransactionStatus,starknet_getTransactionReceipt - Contracts:
starknet_callto read from a contract,starknet_getClass,starknet_getClassAt,starknet_getClassHashAt,starknet_getStorageAt,starknet_getNonce - Chain state:
starknet_getStateUpdate,starknet_getEvents,starknet_chainId,starknet_syncing,starknet_specVersion - Write methods are not supported, and neither are
starknet_estimateFeeorstarknet_estimateMessageFee
Requirements
Bun, a clone of the repository, and bun install. Point your client at index.ts with STARKNET_RPC_URL set to your RPC endpoint. No account and no key beyond whatever your RPC provider requires.
Setup effort
Build from source — git clone https://github.com/milancermak/starknet-mcp
USE CASES
Asking about chain state in plain language
Get the latest block hash and number, or the chain ID and sync status, without an RPC client.
Tracing a transaction
Look it up by hash and read its status and receipt.
Inspecting a contract
Read its class, storage and nonce, and call a view function against it.
Finding what a contract emitted
Query events over a block range instead of scanning blocks yourself.
21 tools
Listed in project docs. Your client may show a different list.
starknet_getBlockWithTxsstarknet_getBlockWithReceiptsstarknet_getStateUpdatestarknet_getStorageAtstarknet_getTransactionStatusstarknet_getTransactionByHashstarknet_getTransactionByBlockIdAndIndexstarknet_getTransactionReceiptstarknet_getClassstarknet_getClassHashAtstarknet_getClassAtstarknet_getBlockTransactionCountstarknet_callstarknet_getEventsstarknet_getNoncestarknet_blockNumberstarknet_blockHashAndNumberstarknet_chainIdstarknet_syncingstarknet_specVersionBEFORE YOU INSTALL
What to know first
Tools you get
21 tools named in the project's documentation. All tools read; write methods are not supported yet, and neither are starknet_estimateFee and starknet_estimateMessageFee.
Requires
- Bun
- A Starknet RPC endpoint, set as STARKNET_RPC_URL
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/milancermak/starknet-mcp
cd starknet-mcp
bun installMCP Clients
Claude Desktop
{
"mcpServers": {
"starknet": {
"command": "bun",
"args": [
"<YOUR_PATH_TO_THIS_REPO>/starknet-mcp/index.ts"
],
"env": {
"STARKNET_RPC_URL": "https://starknet-mainnet.public.blastapi.io/rpc/v0_7"
}
}
}
}<YOUR_PATH_TO_THIS_REPO> is the folder you cloned into, and STARKNET_RPC_URL is the RPC endpoint you want to read from.