Skip to main content
Glama
milancermak

Starknet MCP Server

by milancermak

starknet-mcp

MCP server for Starknet. Makes the following Starknet RPC method available through MCP:

starknet_getBlockWithTxHashes
starknet_getBlockWithTxs
starknet_getBlockWithReceipts
starknet_getStateUpdate
starknet_getStorageAt
starknet_getTransactionStatus
starknet_getTransactionByHash
starknet_getTransactionByBlockIdAndIndex
starknet_getTransactionReceipt
starknet_getClass
starknet_getClassHashAt
starknet_getClassAt
starknet_getBlockTransactionCount
starknet_call
starknet_getEvents
starknet_getNonce
starknet_blockNumber
starknet_blockHashAndNumber
starknet_chainId
starknet_syncing
starknet_specVersion

Write methods are not yet supported.

Installation

Install Bun. Clone this repo. Install the dependencies with bun install. Update Claude's MCP config - see instructions for your particular OS. You'll want something like this in the claude_desktop_config.json file:

{
  "mcpServers": {
    "starknet": {
      "command": "bun",
      "args": ["/PATH/TO/THIS/REPO/starknet-mcp/index.ts"],
      "env": {
        "STARKNET_RPC_URL": "https://starknet-mainnet.public.blastapi.io/rpc/v0_7"
      }
    }
  }
}

Related MCP server: Geth MCP Proxy

Usage

After correctly configuring Claude Desktop, it will have access to all the available methods. You can start asking Claude questions about the state of the chain, e.g. "What is the latest block hash and number on Starknet?". If Claude determines it has to use an MCP method to answer your question, it will ask you for permissions:

You'll see the used method, its input and output inline in the chat.

Quirks

Methods starknet_estimateFee and starknet_estimateMessageFee are not yet supported.

Claude doesn't 100% follow the tool inputSchema. It prefers sending strings over anything else. Some of this is prevented in the code, but if you encounter any error, please open an issue.

Available Tools

1 tool
get_blockC

Get a block from the Starknet blockchain

ParametersJSON Schema
NameRequiredDescriptionDefault
blockNumberNoThe block number to get

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on traits like error handling (e.g., what happens if the block doesn't exist), performance (e.g., latency), or return format. This is a significant gap for a tool interacting with a blockchain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of blockchain interactions and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral aspects like error cases, return values, or any constraints, which are crucial for an agent to use this tool effectively in a real-world scenario.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'blockNumber' documented in the schema. The description doesn't add any meaning beyond this, such as explaining valid ranges or default behavior when the parameter is omitted. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('a block from the Starknet blockchain'), making the purpose immediately understandable. However, it doesn't differentiate from any siblings (none exist), and 'Get' could be slightly more specific (e.g., 'Retrieve' or 'Fetch'), but it's still clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, prerequisites, or context. It's a basic statement of function without any usage instructions, leaving the agent to infer based on the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 1 tool updatev1.0.0
    • First observedget_block

TDQS

B3/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility for ambiguity or overlap in purpose. The tool 'get_block' has a single, clearly defined function, so an agent cannot misselect between tools.

Naming Consistency5/5

The naming follows a consistent verb_noun pattern ('get_block'), and with only one tool, there is no inconsistency to evaluate. The pattern is clear and predictable.

Tool Count2/5

A single tool for a blockchain server is too few for the apparent scope of interacting with Starknet. This severely limits functionality, as typical blockchain operations would include querying transactions, accounts, contracts, or writing data, not just getting blocks.

Completeness1/5

The tool surface is severely incomplete for a Starknet blockchain server. It lacks basic operations like getting transactions, accounts, contract states, or writing data, which are essential for blockchain interactions, leaving significant gaps that will cause agent failures.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Bridges Ethereum JSON-RPC queries from Geth nodes to the Model Context Protocol ecosystem, exposing blockchain operations as MCP tools. Enables AI models and applications to securely interact with Ethereum data including blocks, transactions, balances, and advanced debug functions through schema-validated access.
    62
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that bridges AI models with Ethereum blockchains via all JSON-RPC calls, enabling natural language queries for block numbers, balances, transactions, and smart contract data.
    20
    21
    MIT