Token导航 LogoToken导航TokenDH.com
Starknet MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Starknet MCP Server

MCP Server

@smithery/cli

MCP server that provides LLM with tools for interacting with Starknet

工具数

25

提示词数

0

GitHub Stars

5

资源数

0
AI代理TypeScriptClaudeClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mcpdotdirect

提供方

mcpdotdirect

最后核验

2026/5/18 02:19

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y @smithery/cli install @mcpdotdirect/starknet-mcp-server --client claude

详细介绍

Starknet MCP服务器

](https://smithery.ai/server/@mcpdotdirect/starknet-mcp-server) License: MIT TypeScript MCP Starknet.js

Starknet区块链的综合模型上下文协议(MCP)服务器。该服务器为AI代理提供了与Starknet网络交互、查询区块链数据、管理钱包以及与智能合约交互的能力。

📋 目录

- 工具 - 资源 - 鼓励

🔭 概述

Starknet MCP服务器利用模型上下文协议为AI代理提供区块链服务。它为Starknet生态系统提供了一个全面的接口,使AI助手能够通过自然语言与Starknet区块链数据和操作进行交互。

关键能力包括:

  • 读取区块链状态(余额、交易、区块)
  • 与开罗智能合约互动
  • 转移代币(ETH、STRK和其他ERC20代币)
  • 使用NFT和令牌元数据
  • 解析StarknetID域名(类似于以太坊的ENS)
  • 通过适当的事务处理进行读写操作

所有服务都通过MCP工具和资源的一致接口公开,使AI代理能够轻松发现和使用Starknet区块链功能。 每个接受Starknet地址的工具也支持StarknetID,自动将人类可读身份解析为幕后地址。

✨ 特性

  • Starknet集成:使用Starknet.js完全集成Starknet区块链
  • 网络支持:支持主网和Sepolia测试网
  • StarknetID集成:将Starknet ID解析为地址,反之亦然
  • 原生令牌支持:支持ETH和STRK原生代币
  • 智能合约交互:呼叫并查询Starknet智能合约
  • 双重运输:作为stdio服务器或HTTP服务器运行,以满足不同的集成需求
  • AI就绪:设计用于Claude、GPT和其他AI助手

区块链信息

  • 查询链信息(链ID、最新区块)
  • 探索区块详细信息和交易
  • 查看交易收据和状态
  • 获取地址信息和合同数据

本地令牌操作

  • 获取任何地址的ETH和STRK余额
  • 在账户之间转移ETH和STRK
  • 查看合并的本地代币余额

令牌操作

  • 获取ERC20代币余额和信息
  • 转移ERC20代币
  • 查看令牌供应和元数据
  • 检查令牌所有权

NFT操作

  • 通过令牌ID检查NFT所有权
  • 获取NFT收集信息
  • 查看地址的NFT余额

智能合约交互

  • 调用只读合约函数
  • 执行带有交易确认的合同写入
  • 获取合同存储信息
  • 查看ABI和合同类信息

StarknetID

  • 将Starknet地址解析为Starknet ID
  • 将Starknet ID解析为地址
  • 获取完整的Starknet ID配置文件和验证数据
  • 验证Starknet域名

🔧 支持的网络

服务器支持以下Starknet网络:

  • 主网:Starknet的主要生产网络
  • Sepolia:Starknet在以太坊的Sepolia上的测试网

🛠️ 先决条件

  • 包子 1.0.0或更高版本(推荐)
  • Node.js 18.0.0或更高版本

📦 安装

通过Smithery安装

通过以下方式自动为Claude Desktop安装starknet mcp服务器 史密瑟里:

npx -y @smithery/cli install @mcpdotdirect/starknet-mcp-server --client claude

选项1:无需安装即可使用(npx)

最简单的入门方法是使用 npx 要直接运行包,请执行以下操作:

# Run the stdio server without installation
npx @mcpdotdirect/starknet-mcp-server

# Run the HTTP server without installation
npx @mcpdotdirect/starknet-mcp-server http

这将自动下载并运行最新版本,而无需先安装。

选项2:全局安装

如果你打算经常使用它,你可以全局安装:

# Install globally
npm install -g @mcpdotdirect/starknet-mcp-server

# Then run from anywhere
starknet-mcp-server
starknet-mcp-server http

选项3:本地项目安装

# Add to your project
npm install @mcpdotdirect/starknet-mcp-server

# Using yarn
yarn add @mcpdotdirect/starknet-mcp-server

# Using pnpm
pnpm add @mcpdotdirect/starknet-mcp-server

然后添加到你的package.json脚本中:

"scripts": {
  "starknet-mcp": "starknet-mcp-server",
  "starknet-mcp-http": "starknet-mcp-server http"
}

选项4:从源代码运行

如果你想从源代码运行或在本地开发:

# Clone the repository
git clone https://github.com/mcpdotdirect/starknet-mcp-server.git
cd starknet-mcp-server

# Install dependencies
npm install

# Start the stdio server
npm start

# Or start the HTTP server
npm run start:http

对于自动重新加载的开发:

# Development mode with stdio
npm run dev

# Development mode with HTTP
npm run dev:http

⚙️ 服务器配置

服务器使用以下默认配置:

  • 默认网络主网:
  • 服务器端口:3000(HTTP模式)
  • 服务器主机:0.0.0.0(可从任何网络接口访问)

这些值在应用程序中是硬编码的。如果需要修改它们,可以编辑以下文件:

  • 网络配置: src/core/chains.ts
  • 对于服务器配置: src/server/http-server.ts

🔍 用法

运行服务器

您可以在两种模式下运行Starknet MCP服务器:

# Run the server in stdio mode (for CLI tools and AI assistants)
npx @mcpdotdirect/starknet-mcp-server

# Run the server in HTTP mode (for web applications)
npx @mcpdotdirect/starknet-mcp-server http

默认情况下,HTTP服务器在端口3000上运行,并为实时通信提供REST API和server-Sent事件(SSE)。

从游标连接

要从Cursor连接到Starknet MCP服务器:

  1. 打开光标并转到设置(左下角的齿轮图标)
  1. 点击左侧边栏中的“功能”
  1. 向下滚动到“MCP服务器”部分
  1. 点击“添加新的MCP服务器”
  1. 输入以下详细信息:

- 服务器名称: starknet-mcp-server - 类型: command - 命令: npx @mcpdotdirect/starknet-mcp-server

  1. 点击“保存”

连接后,您可以直接在Cursor中使用MCP服务器的功能。服务器将出现在MCP服务器列表中,可以根据需要启用/禁用。

使用mcp.json和游标

对于可以与团队共享或跨项目使用的更便携的配置,您可以创建 .cursor/mcp.json 项目根目录中的文件:

{
  "mcpServers": {
    "starknet-mcp-server": {
      "command": "npx",
      "args": [
        "@mcpdotdirect/starknet-mcp-server"
      ]
    },
    "starknet-mcp-http": {
      "command": "npx",
      "args": [
        "@mcpdotdirect/starknet-mcp-server",
        "http"
      ]
    }
  }
}

将此文件放置在项目的 .cursor 目录(如果不存在,请创建它),Cursor在该项目中工作时将自动检测并使用这些MCP服务器配置。

带有SSE的HTTP模式

如果您正在开发web应用程序,并希望使用服务器发送事件(SSE)连接到HTTP服务器,则可以使用此配置:

{
  "mcpServers": {
    "starknet-mcp-sse": {
      "url": "http://localhost:3000/sse"
    }
  }
}

使用Claude CLI连接

如果您使用的是Claude CLI,则只需两个命令即可连接到MCP服务器:

# Add the MCP server using npx
claude mcp add starknet-mcp-server npx @mcpdotdirect/starknet-mcp-server

# Start Claude with the MCP server enabled
claude

示例:在游标中使用MCP服务器

配置MCP服务器后,您可以在Cursor中轻松使用它。例如:

  1. 在项目中创建一个新的JavaScript/TypeScript文件:
// starknet-example.js
async function main() {
  try {
    // When using with Cursor, you can simply ask Cursor to:
    // "Check the ETH balance of address 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 on Starknet mainnet"
    // Or "Lookup the Starknet ID for address 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"
    
    // Cursor will use the MCP server to execute these operations 
    // without requiring any additional code from you
  } catch (error) {
    console.error("Error:", error.message);
  }
}

main();
  1. 在Cursor中打开文件后,您可以要求Cursor执行以下操作:

- “检查vitalik.stark的ETH余额” - “获取Starknet上最新区块的信息” - “在集合0x中查找NFT#123的所有者…”

示例:使用Starknet ID获取ETH余额

// Example of using the MCP client to check an ETH balance using Starknet ID
const mcp = new McpClient("http://localhost:3000");

const result = await mcp.invokeTool("get_starknet_eth_balance", {
  address: "vitalik.stark", // Starknet ID instead of address
  network: "mainnet"
});

console.log(result);
// {
//   wei: "1000000000000000000",
//   ether: "1.0"
// }

示例:解析Starknet ID

// Example of using the MCP client to resolve a Starknet ID to an address
const mcp = new McpClient("http://localhost:3000");

const result = await mcp.invokeTool("resolve_starknet_address", {
  name: "vitalik.stark",
  network: "mainnet"
});

console.log(result);
// {
//   starknetId: "vitalik.stark",
//   address: "0x04d07e40e93398ed3c76981e449d3446f7c4e52aac5b3e8a37d7b0ca30845a5d",
//   resolved: true
// }

示例:调用智能合约

// Example of using the MCP client to call a smart contract function
const mcp = new McpClient("http://localhost:3000");

const result = await mcp.invokeTool("call_starknet_contract", {
  contractAddress: "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", // ETH contract
  entrypoint: "totalSupply",
  calldata: [],
  network: "mainnet"
});

console.log(result);
// {
//   result: ["0x84b6c7d5970d5a73abe"]
// }

在Node.js项目中使用

如果你想在Node.js项目中以编程方式使用MCP服务器:

// Start the MCP server as a child process
const { spawn } = require('child_process');
const mcpServer = spawn('npx', ['@mcpdotdirect/starknet-mcp-server']);

// Connect to it with the MCP client
const mcp = new McpClient({ process: mcpServer });

// Now you can use the client
const networks = await mcp.invokeTool("get_supported_starknet_networks", {
  random_string: "any"
});
console.log("Supported networks:", networks);

对于更高级的使用,您可以围绕HTTP API创建包装类,或者使用Axios等库进行更干净的API调用。

📚 api参考

可用的MCP工具

此服务器实现了以下MCP工具:

网络工具

  • get_starknet_chain_info:获取有关Starknet网络的信息
  • get_supported_starknet_networks:获取支持的Starknet网络列表

平衡工具

  • get_starknet_eth_balance:获取Starknet地址或Starknet ID的ETH余额
  • get_starknet_token_balance:获取地址的任何令牌的余额
  • get_starknet_strk_balance:获取地址的STRK令牌余额
  • get_starknet_native_balances:获取地址的所有本地代币余额(ETH和STRK)

StarknetID工具

  • resolve_starknet_name:获取地址的Starknet ID
  • resolve_starknet_address:获取Starknet ID的地址
  • get_starknet_profile:获取地址的完整Starknet ID配置文件
  • validate_starknet_domain:检查字符串是否为有效的Starknet ID

块工具

  • get_starknet_block:获取特定块的信息
  • get_starknet_block_transactions:获取特定区块中的交易

交易工具

  • get_starknet_transaction:获取交易的详细信息
  • get_starknet_transaction_receipt:获取交易收据
  • check_starknet_transaction_status:检查交易是否已确认

合同工具

  • call_starknet_contract:调用合约上的只读函数
  • get_starknet_contract_class:获取合约的类(ABI和其他信息)
  • execute_starknet_contract:执行合约调用(写入操作)

令牌工具

  • get_starknet_token_info:获取有关令牌的信息
  • get_starknet_token_supply:获取令牌的总供应量
  • check_starknet_nft_ownership:检查地址是否拥有特定NFT
  • get_starknet_nft_balance:获取地址拥有的NFT数量

传输工具

  • transfer_starknet_eth:将ETH从一个账户转移到另一个账户(金额以人类可读格式)
  • transfer_starknet_strk:将STRK从一个账户转移到另一个账户(金额以人类可读格式)
  • transfer_starknet_token:将ERC20代币从一个账户转移到另一个账户(金额以人类可读格式)

可用MCP资源

服务器提供以下MCP资源:

网络资源

  • starknet://{network}/chain:获取特定网络的链信息
  • starknet://networks:获取所有支持的网络列表

区块资源

  • starknet://{network}/block/{blockIdentifier}:获取特定块的信息
  • starknet://{network}/block/latest:获取最新区块

地址资源

  • starknet://{network}/address/{address}:获取有关地址的信息

交易资源

  • starknet://{network}/tx/{txHash}:获取交易信息

StarknetID资源

  • starknet://{network}/id/address/{address}:将地址解析为Starknet ID
  • starknet://{network}/id/name/{name}:将Starknet ID解析为地址
  • starknet://{network}/id/profile/{address}:获取地址的Starknet ID配置文件

可用MCP提示

对于LLM交互,服务器提供以下提示:

  • explore_starknet_block:探索有关特定Starknet区块的信息
  • explore_starknet_address:获取有关Starknet地址的信息
  • explore_starknet_transaction:获取有关Starknet交易的信息
  • lookup_starknet_id:查找Starknet ID或将地址解析为Starknet标识
  • explore_starknet_id_profile:浏览完整的Starknet ID档案

🔍 使用AI助手

当将此服务器与Claude或GPT等AI助手一起使用时:

  1. 配置您的AI助手以使用此MCP服务器
  2. 然后,助手可以使用工具与Starknet进行交互
  3. 示例查询:

- “地址0x04d07e93398ed3c76981e449d3446f7c4e52aac5b3e8a37d7b0ca30845a5d的ETH余额是多少?” - “查找Starknet ID中的地址0x04d07e93398ed3c76981e449d3446f7c4e52aac5b3e8a37d7b0ca30845a5d” - “Starknet主网的最新区块是什么?” - “获取有关交易0x7e3a3ab42f2e2418476363b3b8482b53e3b89831ebc3eacf29d4d11f5198的信息” - “将Starknet ID vitalik.stark解析到一个地址”

🔒 安全考虑

  • 私钥 仅用于交易签名,服务器从不存储
  • 所有代币金额 以人类可读的格式(例如ETH、STRK、令牌单位)指定,而不是以wei或最小单位指定
  • 在执行操作之前,始终验证和清理输入参数
  • 考虑为生产使用实施额外的身份验证机制
  • Use HTTPS for the HTTP server in production environments
  • 实施限速以防止滥用
  • 对于高价值服务,考虑添加确认步骤

📁 项目结构

starknet-mcp-server/
├── src/
│   ├── index.ts                # Main stdio server entry point
│   ├── server/                 # Server-related files
│   │   ├── http-server.ts      # HTTP server with SSE
│   │   └── server.ts           # General server setup
│   ├── core/
│   │   ├── chains.ts           # Chain definitions and utilities
│   │   ├── resources.ts        # MCP resources implementation
│   │   ├── tools.ts            # MCP tools implementation
│   │   ├── prompts.ts          # MCP prompts implementation
│   │   └── services/           # Core blockchain services
│   │       ├── index.ts        # Service exports
│   │       ├── balance.ts      # Balance services
│   │       ├── blocks.ts       # Block services
│   │       ├── clients.ts      # Client utilities
│   │       ├── contracts.ts    # Contract interactions
│   │       ├── starknetid.ts   # Starknet ID services
│   │       ├── tokens.ts       # Token services
│   │       ├── transactions.ts # Transaction services
│   │       ├── transfer.ts     # Transfer services
│   │       └── utils.ts        # Utility functions
├── package.json
├── tsconfig.json
└── README.md

🛠️ 开发惯例

添加自定义工具、资源或提示时:

  1. 使用下划线(_)而不是连字符(-)在所有资源、工具和提示名称中
   // Good: Uses underscores
   server.tool(
     "starknet_contract_call",
     "Description of the tool",
     {
       contract_address: z.string().describe("The contract address")
     },
     async (params) => {
       // Tool implementation
     }
   );
  1. 这种命名约定确保了与Cursor和其他AI工具的兼容性

📚 文档

有关以下内容的更多信息:

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

目录标签

目录标签

AI代理TypeScriptClauderesearch-and-dataagentmcpblockchainstarknetmcp-server区块链服务本地部署智能合约钱包管理

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

remote-capable

来源包(packageName,安装包名)

@smithery/cli

工具数量(toolCount,工具数)

25

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP