概述
安裝
內容詳情
替代品
什麼是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 開發。
如有疑問、反饋或想要合作,請隨時聯繫!
為智能商業時代而構建
替代品








