概述
安装
内容详情
替代品
什么是Tempo MCP Server?
Tempo MCP Server是一个连接AI助手与Tempo区块链的桥梁,使AI代理能够安全、自主地执行稳定币支付。它通过Model Context Protocol (MCP)协议,为Claude等AI助手提供了处理真实世界金融交易的能力,包括单笔支付、批量支付、合规检查、流动性管理等多种功能。如何使用Tempo MCP Server?
使用Tempo MCP Server非常简单:首先在您的AI客户端(如Claude Desktop、Cursor等)中配置MCP服务器,然后AI助手就可以直接处理支付请求。您只需要提供Tempo测试网的私钥,AI就能帮您查询余额、发送支付、管理代币等。所有操作都在测试网上进行,无需担心真实资金风险。适用场景
Tempo MCP Server特别适合以下场景: 1. 自动化工资发放:从CSV文件批量处理员工薪资 2. 发票结算:通过备注字段匹配支付与发票 3. 资金管理:自动平衡多代币投资组合 4. 微支付:实现按使用付费的AI服务 5. 合规管理:自动化KYC/AML白名单维护 6. 流动性提供:通过Fee AMM赚取转换费用收益 7. 做市交易:在DEX上执行自动化交易策略主要功能
如何使用
使用案例
常见问题
相关资源
安装
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": { "TEMPO_PRIVATE_KEY": "0xYOUR_PRIVATE_KEY" }
}
}
}
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x...",
"TEMPO_RPC_URL": "https://rpc.testnet.tempo.xyz"
}
}
}
}
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x..."
}
}
}
}
{
"mcpServers": {
"tempo": {
"command": "npx",
"args": ["tempo-mcp"],
"env": {
"TEMPO_PRIVATE_KEY": "0x..."
},
"alwaysAllow": [],
"disabled": false
}
}
}🚀 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 开发。
如有疑问、反馈或想要合作,请随时联系!
为智能商业时代而构建
替代品








