Back to MCP directory
publicPublicdnsLocal runtime

tempo-mcp

Tempo区块链稳定币支付的MCP服务器,使AI助手能够自主执行真实世界支付操作,支持单笔支付、批量支付、合规策略管理、访问密钥、奖励管理和去中心化交易所交易等功能。

article

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

配置

  1. 创建一个 .env 文件:
cp .env.example .env
  1. 添加你的钱包私钥:
# 必需
TEMPO_PRIVATE_KEY=0x...  # 你的钱包私钥

# 网络(默认为测试网)
TEMPO_RPC_URL=https://rpc.testnet.tempo.xyz
TEMPO_CHAIN_ID=42429
  1. 运行服务器:
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,请先下载并安装。

手动设置:

  1. 打开Claude Desktop。
  2. 转到 设置(齿轮图标)→ 开发者
  3. 点击 编辑配置 以打开配置文件:
    • macOS/Linux:~/.config/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  4. 添加以下配置:
{
  "mcpServers": {
    "tempo": {
      "command": "npx",
      "args": ["tempo-mcp"],
      "env": {
        "TEMPO_PRIVATE_KEY": "0x...",
        "TEMPO_RPC_URL": "https://rpc.testnet.tempo.xyz"
      }
    }
  }
}
  1. 保存文件并重启Claude Desktop。

Claude Code (CLI)

若尚未安装 Claude Code,请先进行安装。

一键设置:

claude mcp add tempo-mcp -e TEMPO_PRIVATE_KEY=0x... -- npx tempo-mcp

手动设置:

  1. 打开终端。
  2. 运行 claude mcp add tempo-mcp 以添加服务器。
  3. 或者直接编辑配置文件:
    • macOS:~/.claude/settings.json
    • Linux:~/.claude/settings.json
    • Windows:%USERPROFILE%\.claude\settings.json
  4. 添加配置:
{
  "mcpServers": {
    "tempo": {
      "command": "npx",
      "args": ["tempo-mcp"],
      "env": {
        "TEMPO_PRIVATE_KEY": "0x..."
      }
    }
  }
}
  1. 在Claude Code中使用 /mcp 命令进行验证。

Cursor

若尚未安装 Cursor,请先下载并安装。

手动设置:

  1. 在Cursor中打开一个项目,然后导航到 Cursor设置(在macOS上按⌘ + Shift + J)。
  2. 在设置菜单中,转到 MCP 部分。
  3. 点击 新建MCP服务器,这将打开 mcp.json 配置文件:
    • 全局:~/.cursor/mcp.json
    • 项目级:.cursor/mcp.json(在项目根目录下)
  4. 添加以下配置:
{
  "mcpServers": {
    "tempo": {
      "command": "npx",
      "args": ["tempo-mcp"],
      "env": {
        "TEMPO_PRIVATE_KEY": "0x..."
      }
    }
  }
}
  1. 保存并重启Cursor。

提示: 项目级配置(.cursor/mcp.json)会覆盖全局配置。

Windsurf

若尚未安装 Windsurf,请先下载并安装。

手动设置:

  1. 打开Windsurf,然后转到 设置(在macOS上按⌘ + ,)。
  2. 导航到 Cascade插件
  3. 点击 查看原始配置 以打开MCP配置文件:
    • macOS:~/.codeium/windsurf/mcp_config.json
    • Linux:~/.config/.codeium/windsurf/mcp_config.json
    • Windows:%USERPROFILE%\.codeium\windsurf\mcp_config.json
  4. 添加以下配置:
{
  "mcpServers": {
    "tempo": {
      "command": "npx",
      "args": ["tempo-mcp"],
      "env": {
        "TEMPO_PRIVATE_KEY": "0x..."
      }
    }
  }
}
  1. 保存并重启Windsurf。

VS Code + Continue

在VS Code中安装 Continue扩展

手动设置:

  1. 打开VS Code,然后点击侧边栏中的Continue图标。
  2. 点击齿轮图标 → 打开config.yaml
    • macOS:~/.continue/config.yaml
    • Linux:~/.continue/config.yaml
    • Windows:%USERPROFILE%\.continue\config.yaml
  3. 添加以下配置(YAML格式):
mcpServers:
  - name: tempo
    command: npx
    args:
      - tempo-mcp
    env:
      TEMPO_PRIVATE_KEY: "0x..."
  1. 保存并重新加载VS Code。

注意: MCP工具仅在Continue的 智能体模式 下可用。

Cline

在VS Code中安装 Cline扩展

手动设置:

  1. 打开VS Code,然后点击侧边栏中的Cline图标。
  2. 点击顶部导航栏中的 MCP服务器 图标。
  3. 选择 配置 选项卡,然后点击 高级MCP设置
  4. 这将打开配置文件,路径如下:
    • 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
  5. 添加以下配置:
{
  "mcpServers": {
    "tempo": {
      "command": "npx",
      "args": ["tempo-mcp"],
      "env": {
        "TEMPO_PRIVATE_KEY": "0x..."
      },
      "alwaysAllow": [],
      "disabled": false
    }
  }
}
  1. 保存后,服务器将立即可用。

通用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 | 赞助模式(localrelay) | 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" # 每日赞助限额

配置优先级

  1. 环境变量(最高优先级)
  2. 配置文件(tempo - mcp.config.yaml/yml/json)
  3. 默认值(最低优先级)

🔧 技术细节

安全机制

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

致谢

  • Tempo — 稳定币支付区块链
  • Anthropic — 模型上下文协议
  • viem — TypeScript以太坊库

联系我们

本项目由 Abraham Onoja 开发。

LinkedIn X (Twitter)

如有疑问、反馈或想要合作,请随时联系!

为智能商业时代而构建

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client