README
🚀 tempo-mcp
tempo-mcp 是一个用于Tempo区块链稳定币支付的MCP服务器,它能让AI智能体自主执行现实世界的支付操作。目前,该MCP仅在Tempo测试网上运行,不涉及真实资金交易,非常适合进行实验和开发!
🚀 快速开始
前提条件
- Node.js 20.0.0 或更高版本
- npm、pnpm 或 yarn
- 拥有AlphaUSD代币的Tempo测试网钱包
首次使用? 可在 docs.tempo.xyz/faucet 获取钱包和免费的测试网代币。
安装
通过npm全局安装:
npm install -g tempo-mcp
通过npx(无需安装):
npx tempo-mcp
从源码安装:
git clone https://github.com/arome3/tempo-mcp
cd tempo-mcp
npm install
npm run build
配置
- 创建一个
.env文件:
cp .env.example .env
- 添加你的钱包私钥:
# 必需
TEMPO_PRIVATE_KEY=0x... # 你的钱包私钥
# 网络(默认为测试网)
TEMPO_RPC_URL=https://rpc.testnet.tempo.xyz
TEMPO_CHAIN_ID=42429
- 运行服务器:
npm start
# 或者
npx tempo-mcp
✨ 主要特性
支付操作
- 单笔支付 — 可发送带有可选备注的TIP - 20稳定币转账。
- 批量支付 — 支持原子性的多接收方转账(最多100个接收方)。
- 并发支付 — 使用nonceKeys进行并行执行,对于大批量交易,速度比顺序执行快10 - 100倍。
- 定时支付 — 支持协议级别的未来支付,并带有执行窗口。
- 赞助支付 — 实现无Gas交易,由赞助方支付费用(可使用本地密钥或中继服务)。
查询操作
- 余额查询 — 可检查单个或多个代币的余额。
- 交易查询 — 获取交易详情和历史记录。
- Gas估算 — 估算交易成本。
代币操作
- 代币创建 — 通过工厂合约部署新的TIP - 20代币。
- 铸造/销毁 — 管理代币供应(需要ISSUER_ROLE)。
- 兑换 — 在Tempo的原生DEX上兑换稳定币。
- 角色管理 — 授予、撤销和查询TIP - 20角色(管理员、发行者、暂停、恢复)。
- 暂停控制 — 紧急暂停/恢复代币转账(需要PAUSE_ROLE/UNPAUSE_ROLE)。
- 策略合规性 — 管理TIP - 403白名单/黑名单,并进行转账前验证。
- 奖励管理 — TIP - 20选择加入奖励:选择加入/退出、领取奖励、设置接收方、查看状态。
- 费用AMM流动性 — 为Gas费用转换池提供流动性,并从稳定币兑换中获利。
- DEX高级订单 — 限价订单、翻转订单(自动反转)、订单簿查询和订单管理。
安全特性
- 消费限制 — 支持每个代币和每日美元限额。
- 地址白名单 — 可对接收方地址进行白名单或黑名单设置。
- 速率限制 — 可对每种操作类型进行可配置的限制。
- 审计日志 — 带有请求跟踪的结构化JSON日志。
- 访问密钥(会话密钥) — 支持委托签名,并带有每个代币的消费限制和过期时间。
钱包支持
- 私钥 — 适用于开发/测试的直接密钥。
- 密钥库 — 适用于生产环境的加密JSON密钥库。
- 外部签名者 — 支持与Turnkey/Fireblocks集成,适用于企业级应用。
📦 安装指南
安装到IDE
可选择以下MCP客户端,获取详细的设置说明。
注意: 若使用的客户端未在此列出,仍可通过手动将服务器配置添加到客户端的MCP设置中,来使用tempo - mcp。
Claude Desktop
若尚未安装 Claude Desktop,请先下载并安装。
手动设置:
- 打开Claude Desktop。
- 转到 设置(齿轮图标)→ 开发者。
- 点击 编辑配置 以打开配置文件:
- macOS/Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS/Linux:
- 添加以下配置:
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x...",
"TEMPO_RPC_URL": "https://rpc.testnet.tempo.xyz"
}
}
}
}
- 保存文件并重启Claude Desktop。
Claude Code (CLI)
若尚未安装 Claude Code,请先进行安装。
一键设置:
claude mcp add tempo-mcp -e TEMPO_PRIVATE_KEY=0x... -- npx tempo-mcp
手动设置:
- 打开终端。
- 运行
claude mcp add tempo-mcp以添加服务器。 - 或者直接编辑配置文件:
- macOS:
~/.claude/settings.json - Linux:
~/.claude/settings.json - Windows:
%USERPROFILE%\.claude\settings.json
- macOS:
- 添加配置:
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x..."
}
}
}
}
- 在Claude Code中使用
/mcp命令进行验证。
Cursor
若尚未安装 Cursor,请先下载并安装。
手动设置:
- 在Cursor中打开一个项目,然后导航到 Cursor设置(在macOS上按⌘ + Shift + J)。
- 在设置菜单中,转到 MCP 部分。
- 点击 新建MCP服务器,这将打开
mcp.json配置文件:- 全局:
~/.cursor/mcp.json - 项目级:
.cursor/mcp.json(在项目根目录下)
- 全局:
- 添加以下配置:
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x..."
}
}
}
}
- 保存并重启Cursor。
提示: 项目级配置(
.cursor/mcp.json)会覆盖全局配置。
Windsurf
若尚未安装 Windsurf,请先下载并安装。
手动设置:
- 打开Windsurf,然后转到 设置(在macOS上按⌘ + ,)。
- 导航到 Cascade → 插件。
- 点击 查看原始配置 以打开MCP配置文件:
- macOS:
~/.codeium/windsurf/mcp_config.json - Linux:
~/.config/.codeium/windsurf/mcp_config.json - Windows:
%USERPROFILE%\.codeium\windsurf\mcp_config.json
- macOS:
- 添加以下配置:
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x..."
}
}
}
}
- 保存并重启Windsurf。
VS Code + Continue
在VS Code中安装 Continue扩展。
手动设置:
- 打开VS Code,然后点击侧边栏中的Continue图标。
- 点击齿轮图标 → 打开config.yaml:
- macOS:
~/.continue/config.yaml - Linux:
~/.continue/config.yaml - Windows:
%USERPROFILE%\.continue\config.yaml
- macOS:
- 添加以下配置(YAML格式):
mcpServers:
- name: tempo
command: npx
args:
- tempo-mcp
env:
TEMPO_PRIVATE_KEY: "0x..."
- 保存并重新加载VS Code。
注意: MCP工具仅在Continue的 智能体模式 下可用。
Cline
在VS Code中安装 Cline扩展。
手动设置:
- 打开VS Code,然后点击侧边栏中的Cline图标。
- 点击顶部导航栏中的 MCP服务器 图标。
- 选择 配置 选项卡,然后点击 高级MCP设置。
- 这将打开配置文件,路径如下:
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- macOS:
- 添加以下配置:
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x..."
},
"alwaysAllow": [],
"disabled": false
}
}
}
- 保存后,服务器将立即可用。
通用MCP客户端
对于自定义MCP客户端或编程式使用:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "npx",
args: ["tempo-mcp"],
env: {
TEMPO_PRIVATE_KEY: process.env.TEMPO_PRIVATE_KEY,
},
});
const client = new Client({ name: "my-agent", version: "1.0.0" }, {});
await client.connect(transport);
// 现在可以调用工具
const result = await client.callTool({
name: "get_balance",
arguments: { token: "AlphaUSD" },
});
💻 使用示例
基本支付
用户:“向0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb发送50个AlphaUSD”
→ Claude调用send_payment({
token: "AlphaUSD",
to: "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb",
amount: "50"
})
→ 返回:{
success: true,
transactionHash: "0xabc123...",
explorerUrl: "https://explore.tempo.xyz/tx/0xabc123..."
}
带备注的支付(发票对账)
用户:“向0x...支付1500个AlphaUSD,用于支付发票#INV - 2024 - 001”
→ Claude调用send_payment({
token: "AlphaUSD",
to: "0x...",
amount: "1500",
memo: "INV-2024-001"
})
批量工资支付
用户:“从employees.csv文件处理本月工资”
→ Claude调用batch_payments({
token: "AlphaUSD",
payments: [
{ to: "0x...", amount: "5000", label: "Alice" },
{ to: "0x...", amount: "4500", label: "Bob" },
{ to: "0x...", amount: "6000", label: "Carol" }
]
})
赞助(无Gas)支付
用户:“使用赞助Gas向0x...发送100个AlphaUSD”
→ Claude调用send_sponsored_payment({
token: "AlphaUSD",
to: "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb",
amount: "100",
useRelay: false // 使用本地费用支付者
})
→ 返回:{
success: true,
transactionHash: "0xdef456...",
feePayer: "0xabc...",
feeAmount: "0.000073"
}
示例智能体
可在 /examples 目录中探索完整的智能体实现:
| 示例 | 描述 |
|---------|-------------|
| 基本用法 | 简单的余额检查和支付 |
| 工资智能体 | 基于CSV的批量工资处理 |
| 发票智能体 | 带有备注对账的应付账款自动化 |
| 资金库智能体 | 多代币投资组合管理 |
| 合规智能体 | TIP - 403白名单/黑名单管理 |
| 做市商智能体 | 使用翻转订单进行DEX订单簿交易 |
📚 详细文档
MCP工具参考
支付工具(高风险)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| send_payment | 发送单笔TIP - 20代币转账 | token, to, amount, memo? |
| batch_payments | 原子性多接收方转账 | token, payments[] (最多100个) |
| schedule_payment | 创建定时未来支付 | token, to, amount, executeAt |
| cancel_scheduled_payment | 取消待处理的定时支付 | transactionHash |
| send_sponsored_payment | 无Gas支付(赞助方支付费用) | token, to, amount, useRelay? |
| estimate_sponsored_gas | 估算赞助交易的Gas | token, to, amount, feeToken? |
| get_sponsor_balance | 检查赞助方的代币余额 | sponsor?, token? |
| send_concurrent_payments | 使用nonceKeys进行并行支付(快10 - 100倍) | payments[], startNonceKey? |
| get_nonce_for_key | 获取特定nonceKey的随机数 | nonceKey, address? |
| list_active_nonce_keys | 列出所有随机数大于0的nonceKeys | address? |
查询工具(低风险)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| get_balance | 获取地址的代币余额 | token, address? |
| get_balances | 获取多个代币的余额 | tokens[], address? |
| get_account_info | 获取账户详细信息(类型、交易计数) | address |
| get_transaction | 通过哈希获取交易信息 | hash |
| get_gas_estimate | 估算交易的Gas | to, amount, token |
代币工具(高风险)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| create_token | 部署新的TIP - 20代币 | name, symbol, decimals, initialSupply |
| get_token_info | 获取代币元数据 | token |
| mint_tokens | 铸造代币(需要相应角色) | token, to, amount |
| burn_tokens | 销毁代币(需要相应角色) | token, amount |
| grant_role | 授予地址角色 | token, role, account |
| revoke_role | 撤销地址的角色 | token, role, account |
| renounce_role | 放弃自己的角色 | token, role |
| has_role | 检查地址是否具有角色 | token, role, account |
| get_role_members | 列出角色的所有成员 | token, role |
| pause_token | 暂停所有代币转账 | token, reason? |
| unpause_token | 恢复代币转账 | token, reason? |
策略工具(TIP - 403合规性)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| create_policy | 创建新的合规策略 | policyType, admin?, initialAccounts? |
| check_transfer_compliance | 预验证转账是否允许 | token, from, to |
| get_policy_info | 获取策略详细信息 | policyId |
| is_whitelisted | 检查地址是否在白名单中 | policyId, account |
| is_blacklisted | 检查地址是否在黑名单中 | policyId, account |
| add_to_whitelist | 将地址添加到白名单 | policyId, account |
| remove_from_whitelist | 从白名单中移除地址 | policyId, account |
| add_to_blacklist | 阻止地址 | policyId, account |
| remove_from_blacklist | 解除地址的阻止 | policyId, account |
| burn_blocked_tokens | 销毁被阻止地址的代币 | token, blockedAddress, amount |
策略类型:
whitelist(仅允许批准的地址进行交易)或blacklist(阻止特定地址)。内置策略:0(始终拒绝),1(始终允许)。自定义策略从ID 2开始。
访问密钥工具(会话密钥)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| get_access_key_info | 获取访问密钥详细信息(类型、过期时间、限制) | accountAddress, keyId |
| get_remaining_limit | 检查剩余消费限额 | accountAddress, keyId, token |
| revoke_access_key | 永久禁用访问密钥 | keyId |
| update_spending_limit | 修改密钥的代币消费限制 | keyId, token, newLimit |
奖励工具(TIP - 20奖励)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| opt_in_rewards | 选择加入代币奖励计划 | token |
| opt_out_rewards | 选择退出奖励(可选领取待处理奖励) | token, claimPending? |
| claim_rewards | 领取待处理奖励 | token |
| distribute_rewards | 向选择加入的持有者分配奖励(发行者) | token, amount, duration? |
| get_pending_rewards | 检查待处理奖励金额 | token, address? |
| set_reward_recipient | 设置奖励的自动转发地址 | token, recipient |
| get_reward_status | 获取完整的奖励状态和代币统计信息 | token, address? |
持续时间:设置
duration = 0可进行即时分配。基于时间的流式奖励(duration > 0)计划在未来的协议更新中实现。
交换工具
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| get_swap_quote | 获取DEX兑换报价 | fromToken, toToken, amount |
| swap_stablecoins | 执行稳定币兑换 | fromToken, toToken, amount, slippage? |
费用AMM工具(流动性管理)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| get_fee_pool_info | 获取池储备、LP供应和兑换率 | userToken, validatorToken? |
| get_lp_position | 检查LP余额和基础代币价值 | userToken, validatorToken?, address? |
| estimate_fee_swap | 获取费用代币兑换的输出报价 | fromToken, toToken, amount |
| add_fee_liquidity | 添加流动性以赚取兑换费用 | userToken, amountUser, amountValidator |
| remove_fee_liquidity | 提取流动性和LP代币 | userToken, lpAmount |
DEX高级工具(订单簿交易)
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| place_limit_order | 在订单簿上放置限价委托单 | token, amount, side, tick |
| place_flip_order | 放置自动反转订单以进行做市 | token, amount, side, tick, flipTick |
| cancel_order | 取消未成交订单并退还代币 | orderId |
| get_orderbook | 查看买卖盘水平和价差 | baseToken, quoteToken?, depth? |
| get_my_orders | 列出你的未成交/已成交/已取消订单 | token?, status? |
| get_order_status | 获取订单详细信息和成交百分比 | orderId |
Tick定价:价格 = 1 + tick / 100,000。Tick 0 = $1.0000,tick - 10 = $0.9999,tick 10 = $1.0001
MCP资源参考
资源通过URI模式提供对区块链数据的只读访问:
| URI模式 | 描述 |
|-------------|-------------|
| tempo://network | 网络配置和当前区块 |
| tempo://account/{address} | 账户信息和代币余额 |
| tempo://token/{address} | TIP - 20代币元数据 |
| tempo://token/{address}/roles | 代币角色分配和暂停状态 |
| tempo://token/{address}/rewards | 代币奖励状态(选择加入、待处理、统计信息) |
| tempo://tx/{hash} | 交易详细信息 |
| tempo://block/{number\|"latest"} | 区块信息 |
| tempo://policy/{id} | TIP - 403策略详细信息(类型、所有者、代币数量) |
| tempo://policy/{id}/whitelist/{address} | 检查地址是否在白名单中 |
| tempo://policy/{id}/blacklist/{address} | 检查地址是否在黑名单中 |
| tempo://access-key/{account}/{keyId} | 访问密钥信息(类型、过期时间、撤销状态) |
| tempo://access-key/{account}/{keyId}/limit/{token} | 代币的剩余消费限额 |
| tempo://fee-amm/{userToken}/{validatorToken} | 费用AMM池信息(储备、LP供应、兑换率) |
| tempo://dex/orderbook/{baseToken} | DEX订单簿,包含买卖盘水平 |
| tempo://dex/order/{orderId} | 订单详细信息和成交状态 |
示例用法:
读取tempo://account/0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb
MCP提示参考
提示提供了可重复使用的对话模板:
| 提示 | 描述 | 参数 |
|--------|-------------|------------|
| payment-receipt | 生成格式化的支付收据 | transactionHash |
| reconciliation-report | 将交易与发票匹配 | startDate, endDate, memoPrefix? |
| payroll-summary | 总结批量支付结果 | batchTransactionHash |
| spending-report | 按接收方分析支出情况 | period, groupBy? |
| role-audit | 审计代币角色分配情况 | token |
| compliance-report | 生成TIP - 403合规状态报告 | addresses, policyId?, token? |
| rewards-summary | 总结奖励状态和待处理的申领情况 | token, address? |
| fee-amm-summary | 总结费用AMM池状态和LP头寸 | userToken, address? |
配置
环境变量
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| 网络 | | |
| TEMPO_RPC_URL | RPC端点URL | https://rpc.testnet.tempo.xyz |
| TEMPO_CHAIN_ID | 链ID | 42429 |
| TEMPO_EXPLORER_URL | 区块浏览器URL | https://explore.tempo.xyz |
| 钱包 | | |
| TEMPO_PRIVATE_KEY | 钱包私钥(以0x开头) | — |
| TEMPO_KEYSTORE_PATH | 加密密钥库的路径 | — |
| TEMPO_KEYSTORE_PASSWORD | 密钥库解密密码 | — |
| 安全 | | |
| TEMPO_MAX_SINGLE_PAYMENT | 最大单笔支付金额 | 1000 |
| TEMPO_DAILY_LIMIT | 每日消费限额 | 10000 |
| TEMPO_ALLOWLIST_ENABLED | 启用地址限制 | false |
| TEMPO_RATE_LIMIT | 每分钟最大工具调用次数 | 60 |
| 日志记录 | | |
| TEMPO_LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
| TEMPO_AUDIT_LOG_ENABLED | 启用审计日志记录 | true |
| TEMPO_AUDIT_LOG_PATH | 审计日志文件路径 | ./logs/audit.jsonl |
| 费用赞助 | | |
| TEMPO_FEE_SPONSORSHIP_ENABLED | 启用无Gas交易 | false |
| TEMPO_FEE_PAYER_TYPE | 赞助模式(local 或 relay) | local |
| TEMPO_FEE_PAYER_ADDRESS | 费用支付者钱包地址 | — |
| TEMPO_FEE_PAYER_KEY | 费用支付者私钥(本地模式) | — |
| TEMPO_FEE_RELAY_URL | 中继服务URL | https://sponsor.testnet.tempo.xyz |
| 代币 | | |
| TEMPO_DEFAULT_TOKEN | 默认支付代币 | AlphaUSD |
配置文件
可创建 tempo-mcp.config.yaml 进行高级配置:
network:
rpcUrl: https://rpc.testnet.tempo.xyz
chainId: 42429
explorerUrl: https://explore.tempo.xyz
wallet:
type: privateKey # 或 'keystore', 'external'
security:
spendingLimits:
maxSinglePayment:
"*": "1000" # 所有代币的默认值
AlphaUSD: "5000" # 特定代币的覆盖值
dailyLimit:
"*": "10000"
dailyTotalUSD: "50000"
maxBatchSize: 50
maxBatchTotalUSD: "25000"
addressAllowlist:
enabled: true
mode: allowlist # 或 'blocklist'
addresses:
- "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb"
labels:
"0x742d35Cc...": "工资账户"
rateLimits:
toolCalls:
windowMs: 60000
maxCalls: 60
highRiskOps:
windowMs: 3600000
maxCalls: 100
logging:
level: info
auditLog:
enabled: true
path: ./logs/audit.jsonl
rotationDays: 30
feeSponsorship:
enabled: true
feePayer:
type: local # 或 'relay' 用于测试网中继服务
address: "0x..." # 费用支付者钱包地址
privateKey: "0x..." # 费用支付者私钥(仅本地模式)
relayUrl: "https://sponsor.testnet.tempo.xyz" # 中继端点
maxSponsoredPerDay: "1000" # 每日赞助限额
配置优先级
- 环境变量(最高优先级)
- 配置文件(tempo - mcp.config.yaml/yml/json)
- 默认值(最低优先级)
🔧 技术细节
安全机制
tempo - mcp包含多个安全层,以防止未经授权的交易:
消费限制
可防止大额或过度支付:
security:
spendingLimits:
maxSinglePayment:
"*": "1000" # 每笔交易最大1000美元
dailyLimit:
"*": "10000" # 每个代币每天最大10000美元
dailyTotalUSD: "50000" # 每天总计最大50000美元
地址白名单
可限制哪些地址可以接收支付:
security:
addressAllowlist:
enabled: true
mode: allowlist # 仅允许列入名单的地址
addresses:
- "0x..." # 批准的接收方
labels:
"0x...": "供应商A" # 人类可读的标签
速率限制
可防止滥用和失控的智能体:
security:
rateLimits:
toolCalls:
windowMs: 60000 # 1分钟窗口
maxCalls: 60 # 每分钟最多60次调用
highRiskOps:
windowMs: 3600000 # 1小时窗口
maxCalls: 100 # 每小时最多100次高风险操作
审计日志
所有操作都会被记录,以确保合规性:
{"timestamp":"2024-12-17T10:30:00Z","requestId":"abc123","tool":"send_payment","status":"success","tx":"0x...","amount":"100","to":"0x..."}
开发
环境搭建
git clone https://github.com/arome3/tempo-mcp
cd tempo-mcp
npm install
可用脚本
| 脚本 | 描述 |
|--------|-------------|
| npm run dev | 以热重载模式启动(tsx watch) |
| npm run build | 将TypeScript编译到dist/目录 |
| npm start | 运行编译后的服务器 |
| npm test | 以监听模式运行测试 |
| npm run test:run | 运行一次测试(CI模式) |
| npm run lint | 运行ESLint |
| npm run format | 使用Prettier进行代码格式化 |
| npm run typecheck | 进行TypeScript类型检查 |
测试
# 运行所有测试
npm test
# 运行并生成覆盖率报告
npm run test:run -- --coverage
# 运行特定测试文件
npm test -- src/security/spending-limits.test.ts
网络信息
Tempo测试网(Andantino)
| 属性 | 值 |
|----------|-------|
| 链ID | 42429 |
| RPC URL | https://rpc.testnet.tempo.xyz |
| 浏览器 | https://explore.tempo.xyz |
| 块时间 | ~0.6秒 |
| 水龙头 | docs.tempo.xyz/quickstart/faucet |
默认代币
| 代币 | 地址 |
|-------|---------|
| AlphaUSD | 0x20c0000000000000000000000000000000000001 |
技术栈
| 类别 | 技术 | |----------|------------| | 编程语言 | TypeScript 5.7 | | 运行时 | Node.js 20+ | | 协议 | MCP SDK 1.0 | | 区块链 | viem 2.21, tempo.ts 0.10 | | 验证 | Zod 3.25 | | 日志记录 | Pino 8.21 | | 构建工具 | tsup, tsx | | 测试框架 | Vitest | | 代码检查 | ESLint, Prettier |
故障排除
“连接被拒绝”错误
- 确保已安装Node.js 20+:
node --version - 检查配置中是否设置了
TEMPO_PRIVATE_KEY
“余额不足”错误
- 从 水龙头 获取测试网代币
- 验证余额:向Claude询问 “我的余额是多少?”
“消费限额已超出”
- 在环境变量或配置文件中增加
TEMPO_MAX_SINGLE_PAYMENT - 若当天进行了多次交易,请检查
TEMPO_DAILY_LIMIT
“未找到代币”错误
- 使用代币符号(
AlphaUSD)或完整地址(0x20c0...0001) - 检查 网络信息 部分中支持的代币
服务器无响应
- 更改配置后重启Claude Desktop
- 检查日志:
tail -f ~/.config/Claude/logs/mcp*.log
📄 许可证
本项目采用MIT许可证,详情请参阅 LICENSE。
致谢
联系我们
本项目由 Abraham Onoja 开发。
如有疑问、反馈或想要合作,请随时联系!
为智能商业时代而构建
微信扫一扫