Starknet MCP

Un servidor MCP que proporciona acceso a varios métodos RPC de Starknet.

Documentación

starknet-mcp

Servidor MCP para Starknet. Hace que el siguiente método RPC de Starknet esté disponible a través de 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

Los métodos de escritura aún no están soportados.

Starknet Server MCP

Instalación

Instala Bun. Clona este repositorio. Instala las dependencias con bun install. Actualiza la configuración de MCP de Claude: consulta las instrucciones para tu sistema operativo en particular. Querrás algo como esto en el archivo claude_desktop_config.json:

{
  "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"
      }
    }
  }
}

Uso

Después de configurar correctamente Claude Desktop, tendrá acceso a todos los métodos disponibles. Puedes empezar a hacerle preguntas a Claude sobre el estado de la cadena, p. ej., "¿Cuál es el hash y el número del último bloque en Starknet?". Si Claude determina que tiene que usar un método MCP para responder tu pregunta, te pedirá permisos:

Claude asking for MCP permissions

Verás el método utilizado, su entrada y salida en línea en el chat.

Claude showing output after using starknet-mcp

Peculiaridades

Los métodos starknet_estimateFee y starknet_estimateMessageFee aún no están soportados.

Claude no sigue al 100% el inputSchema de la herramienta. Prefiere enviar cadenas de texto sobre cualquier otra cosa. Parte de esto se previene en el código, pero si encuentras algún error, por favor abre un issue.