RailFi Payout Plans
Free, non-custodial tools to validate bounded USDC/USDT payout plans and reconcile payouts.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"payout-plans": {
"url": "https://railfi.xyz/api/mcp"
}
}
}リモートエンドポイント
https://railfi.xyz/api/mcpstreamable-httpできること
ツール一覧
ツール(4)
🟡create_payout_plan(name, token, network, budget, windowStart, ...)
Validate a bounded stablecoin payout run (recipients, budget, time window) and return an approve-once pack the OWNER approves in their own wallet. RailFi never holds funds or keys and does not execute payments.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"token": {
"type": "string",
"enum": [
"USDC",
"USDT"
]
},
"network": {
"type": "string",
"enum": [
"polygon",
"base",
"ethereum",
"arbitrum"
]
},
"budget": {
"type": "string",
"description": "Max total in token units, e.g. \"1000\""
},
"windowStart": {
"type": "string",
"description": "ISO 8601"
},
"windowEnd": {
"type": "string",
"description": "ISO 8601"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"invoiceRef",
"recipient",
"amount"
],
"properties": {
"invoiceRef": {
"type": "string"
},
"recipient": {
"type": "string"
},
"amount": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
},
"csv": {
"type": "string",
"description": "Optional CSV: invoice_ref,recipient,amount[,note]"
}
},
"required": [
"name",
"token",
"network",
"budget",
"windowStart",
"windowEnd"
]
}🟢validate_payout_plan(name, token, network, budget, windowStart, ...)
Check a payout plan for bad addresses, bad amounts, duplicates, inverted window and over-budget totals.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"token": {
"type": "string",
"enum": [
"USDC",
"USDT"
]
},
"network": {
"type": "string",
"enum": [
"polygon",
"base",
"ethereum",
"arbitrum"
]
},
"budget": {
"type": "string",
"description": "Max total in token units, e.g. \"1000\""
},
"windowStart": {
"type": "string",
"description": "ISO 8601"
},
"windowEnd": {
"type": "string",
"description": "ISO 8601"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"invoiceRef",
"recipient",
"amount"
],
"properties": {
"invoiceRef": {
"type": "string"
},
"recipient": {
"type": "string"
},
"amount": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
},
"csv": {
"type": "string",
"description": "Optional CSV: invoice_ref,recipient,amount[,note]"
}
},
"required": [
"name",
"token",
"network",
"budget",
"windowStart",
"windowEnd"
]
}⚪reconcile_payouts(lines, transfers)
Match on-chain transfer records (recipient, amount, txHash) to plan lines and report which invoices are paid, unpaid, or unexpected transfers.
入力スキーマ
{
"type": "object",
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"invoiceRef",
"recipient",
"amount"
],
"properties": {
"invoiceRef": {
"type": "string"
},
"recipient": {
"type": "string"
},
"amount": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
},
"transfers": {
"type": "array",
"items": {
"type": "object",
"required": [
"to",
"amount"
],
"properties": {
"to": {
"type": "string"
},
"amount": {
"type": "string"
},
"txHash": {
"type": "string"
}
}
}
}
},
"required": [
"lines",
"transfers"
]
}🟢fetch_transfers(network, token, recipients, from, fromBlock, ...)
Read-only: look up public USDC/USDT Transfer events to the given recipients (optionally from one payer) over up to 10000 recent blocks via a public RPC. Output plugs straight into reconcile_payouts. No keys, no signing.
入力スキーマ
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"polygon",
"base",
"ethereum",
"arbitrum"
]
},
"token": {
"type": "string",
"enum": [
"USDC",
"USDT"
]
},
"recipients": {
"type": "array",
"maxItems": 50,
"items": {
"type": "string"
}
},
"from": {
"type": "string",
"description": "Optional payer address"
},
"fromBlock": {
"type": "integer"
},
"toBlock": {
"type": "integer",
"description": "Default: latest block; default range 5000 blocks"
}
},
"required": [
"network",
"token",
"recipients"
]
}コミュニティ
エビデンス