使用说明
MCP GetBlock服务器
用于与GetBlock.io API交互的模型上下文协议(MCP)服务器。
特性
- 来自各种网络(ETH、Solana)的区块链数据请求
- 实时区块链统计
- 钱包余额检查
- 交易状态监控
- 获取Solana帐户信息
- 获取以太坊当前的天然气价格
- 区块链节点的JSON-RPC接口
- API令牌的基于环境的配置
安装
选项1:标准Node.js安装
- 安装依赖项:
npm install
- 编译TypeScript:
npm run build
- 创建一个
.env带有不同区块链访问令牌的文件(可选):
# Access tokens for different blockchains
ETH_ACCESS_TOKEN=your_eth_access_token_here
SOLANA_ACCESS_TOKEN=your_solana_access_token_here
- 启动服务器:
npm start
选项2:使用Docker
- 构建Docker镜像:
docker build -t mcp/getblock:latest .
- 使用环境变量运行容器:
docker run -i --rm \
-e ETH_ACCESS_TOKEN=your_eth_access_token_here \
-e SOLANA_ACCESS_TOKEN=your_solana_access_token_here \
mcp/getblock:latest
发展
对于开发,您可以使用以下命令:
npm run dev
此命令将编译TypeScript并启动服务器。
与Claude Desktop、Cursor或其他IDE一起使用
选项1:通过Node.js直接启动
- 通过编辑配置Claude Desktop以使用此服务器
claude_desktop_config.json:
{
"mcpServers": {
"getblock": {
"command": "npm",
"args": [
"start",
"--prefix",
"/ABSOLUTE/PATH/TO/mcp-getblock"
],
"env": {
"ETH_ACCESS_TOKEN": "your_eth_access_token_here",
"SOLANA_ACCESS_TOKEN": "your_solana_access_token_here"
}
}
}
}
选项2:通过Docker启动
- 配置Claude Desktop以使用Docker容器:
{
"mcpServers": {
"getblock": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ETH_ACCESS_TOKEN",
"-e",
"SOLANA_ACCESS_TOKEN",
"mcp/getblock:latest"
],
"env": {
"ETH_ACCESS_TOKEN": "your_eth_access_token_here",
"SOLANA_ACCESS_TOKEN": "your_solana_access_token_here"
}
}
}
}
- 重新启动克劳德桌面
- 您应该在工具栏中看到可用的工具
可用工具
get-chain-info-获取区块链网络(ETH、Solana)的一般信息get-wallet-balance-检查区块链上的钱包余额get-transaction-获取特定交易的详细信息get-latest-blocks-获取有关最新区块的信息get-solana-account-获取Solana帐户的信息get-eth-gas-price-获取以太坊网络中的当前天然气价格
详细工具说明
获取链信息
{
"name": "get-chain-info",
"description": "Get general information about a blockchain network",
"inputSchema": {
"properties": {
"chain": {
"type": "string",
"description": "Blockchain network (e.g., eth, solana)",
"default": "eth"
}
}
}
}
获取钱包余额
{
"name": "get-wallet-balance",
"description": "Get the balance of a wallet address on a blockchain",
"inputSchema": {
"properties": {
"address": {
"type": "string",
"description": "The wallet address to check"
},
"chain": {
"type": "string",
"description": "Blockchain network (e.g., eth, solana)",
"default": "eth"
}
},
"required": ["address"]
}
}
获取交易
{
"name": "get-transaction",
"description": "Get details of a specific transaction",
"inputSchema": {
"properties": {
"txid": {
"type": "string",
"description": "Transaction ID/hash"
},
"chain": {
"type": "string",
"description": "Blockchain network (e.g., eth, solana)",
"default": "eth"
}
},
"required": ["txid"]
}
}
访问令牌优先级顺序
访问令牌按以下优先级顺序使用:
- 通过环境变量传递的令牌(
env在claude_desktop_config.json中) - .env文件中的令牌
- 默认值(如果第1项和第2项中未指定)
架构与技术栈
- 语言:TypeScript(编译为JavaScript)
- 运行时:Node.js
- 通信协议:模型上下文协议(MCP)
- API集成:GetBlock.io JSON-RPC API
- 认证:基于令牌的API身份验证
- 传输层:用于与Claude Desktop通信的标准I/O(stdio)
- 依赖项:
@modelcontextprotocol/sdk:用于MCP实施axios:API请求的HTTP客户端dotenv:环境变量管理
支持的网络
截至2025年6月,该MCP服务器支持以下区块链网络:
主要网络
- 以太坊(ETH) -完全支持余额、交易、区块和天然气价格查询
- 索拉纳(SOL) -支持余额、账户信息、交易和区块查询
未来扩张
GetBlock.io的基础设施(包括超过75个区块链网络)支持其他网络 [1])可以通过扩展当前代码库来实现。
使用示例
检查ETH余额
您可以让Claude通过使用 get-wallet-balance 工具:
What is the balance of this Ethereum wallet: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045?
查看交易详情
要获取特定交易的信息,请执行以下操作:
Can you show me the details of this Ethereum transaction: 0x0ac94a788a79e3eaa72a33f1da97b79728b570054fe156a7f60e06f5791aaf36?
获取当前天然气价格
要查看以太坊上的当前天然气价格:
What are the current gas prices on Ethereum?
实现细节
服务器架构
服务器遵循一个简单的架构:
- 初始化:服务器使用MCP SDK进行初始化,并配置支持的工具
- 工具注册:每个区块链操作都注册为一个单独的工具,具有自己的输入模式
- 请求处理:传入的请求由主处理程序处理,主处理程序:
- 提取工具名称和参数
- 验证输入参数
- 构造对GetBlock API的适当JSON-RPC调用
- 处理响应并返回格式化结果
- 认证:API令牌通过使用环境变量的优先级系统进行管理
编码结构
- 工具定义:每个区块链操作都被定义为具有元数据的单独工具
- 请求处理器:处理工具调用的主要逻辑
- API集成:用于构造和向GetBlock发送请求的辅助函数
- 响应处理:区块链数据的格式化和转换(例如wei到ether)
故障排除
API连接问题
如果遇到GetBlock API的连接问题:
- 验证您的访问令牌是否在环境变量或.env文件中正确设置
- 检查GetBlock服务是否正常运行
- 确保您的网络可以访问GetBlock API服务器
响应格式无效
如果您收到有关无效响应格式的错误消息:
- 验证GetBlock是否支持您正在使用的区块链和方法
- 检查您的访问令牌是否具有足够的权限
- 确保特定区块链的参数格式正确