Plumb Data Exchange

Verified table jobs and RPC-free payment verification (Base/Ethereum). Pay per call via x402.

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
90%
命名品質
93%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,480Token(工具定義)
~2.0 KB典型回應大小
中等的注意力影響(128k 上下文的 1.94%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "plumb-data-exchange": {
      "url": "https://numba2witcheese.tail7d8d44.ts.net:10000/pde-mcp"
    }
  }
}

遠端端點

https://numba2witcheese.tail7d8d44.ts.net:10000/pde-mcpstreamable-http

它能做什麼

工具清單

工具(11)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
⚪convert_to_csv(table)

Convert a table to CSV without changing any value; verified by round-trip. Costs $0.05 USDC (x402).

輸入結構描述

{
  "type": "object",
  "properties": {
    "table": {
      "type": "object",
      "properties": {
        "columns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "maxItems": 32,
          "description": "Column names, in order"
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "maxItems": 1000,
          "description": "Rows as objects of column -> string value"
        }
      },
      "required": [
        "columns",
        "records"
      ],
      "additionalProperties": false,
      "description": "A string table: at most 1000 rows x 32 columns, 65536 characters total"
    }
  },
  "required": [
    "table"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴deduplicate(table, keyColumns, keep)

Remove duplicate rows by exact key, keeping the first or last, and report conflicting columns per group. Costs $0.05 USDC (x402).

輸入結構描述

{
  "type": "object",
  "properties": {
    "table": {
      "type": "object",
      "properties": {
        "columns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "maxItems": 32,
          "description": "Column names, in order"
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "maxItems": 1000,
          "description": "Rows as objects of column -> string value"
        }
      },
      "required": [
        "columns",
        "records"
      ],
      "additionalProperties": false,
      "description": "A string table: at most 1000 rows x 32 columns, 65536 characters total"
    },
    "keyColumns": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Columns that together identify a row (exact string match)"
    },
    "keep": {
      "type": "string",
      "enum": [
        "first",
        "last"
      ],
      "description": "Which duplicate to keep"
    }
  },
  "required": [
    "table",
    "keyColumns",
    "keep"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪reconcile(before, after, keyColumns)

Compare two versions of a table by key: rows added, removed and changed (with the changed columns). Costs $0.05 USDC (x402).

輸入結構描述

{
  "type": "object",
  "properties": {
    "before": {
      "type": "object",
      "properties": {
        "columns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "maxItems": 32,
          "description": "Column names, in order"
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "maxItems": 1000,
          "description": "Rows as objects of column -> string value"
        }
      },
      "required": [
        "columns",
        "records"
      ],
      "additionalProperties": false,
      "description": "A string table: at most 1000 rows x 32 columns, 65536 characters total"
    },
    "after": {
      "$ref": "#/properties/before"
    },
    "keyColumns": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Columns that together identify a row (exact string match)"
    }
  },
  "required": [
    "before",
    "after",
    "keyColumns"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verify_payment(chain, txHash, payee, token, minAmountRaw, ...)

Verify an on-chain payment without trusting any RPC: did this tx transfer at least this amount of a token (default USDC) to this payee, optionally from this payer? Proven by Plumb (Base via proof-backed L1 checkpoints, Ethereum via a light client). Bound to the exact transfer (log index); returns the proof level, how long a Base checkpoint can still be challenged, the evidence to re-check, and an Ed25519-signed receipt. Never answers not_paid while a payment is still pending; abstains (unverifiable) whenever the proof is incomplete. Costs $0.02 USDC (x402); asking again about the same claim costs nothing. Optional requiredLevel (releasable or not) and callbackUrl (signed events when the level is reached, the answer changes, or checking gives up).

輸入結構描述

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "enum": [
        "base",
        "ethereum"
      ],
      "default": "base",
      "description": "Chain of the payment"
    },
    "txHash": {
      "type": "string",
      "description": "Transaction hash (0x + 64 hex)"
    },
    "payee": {
      "type": "string",
      "description": "Address that should have received the money"
    },
    "token": {
      "type": "string",
      "description": "ERC-20 contract (default: USDC on the chain)"
    },
    "minAmountRaw": {
      "type": "string",
      "description": "Minimum amount in base units, e.g. \"50000\" = 0.05 USDC (default: any)"
    },
    "payer": {
      "type": "string",
      "description": "Only count transfers from this address (the token holder who paid)"
    },
    "logIndex": {
      "type": "integer",
      "minimum": 0,
      "description": "Bind to one transfer: its position within the tx's logs"
    },
    "requiredLevel": {
      "type": "string",
      "enum": [
        "tee_attested",
        "zk_proven",
        "resolved",
        "finalized"
      ],
      "description": "Proof level you need before releasing money (Base: tee_attested < zk_proven < resolved; Ethereum: finalized). The answer then says whether it is releasable."
    },
    "callbackUrl": {
      "type": "string",
      "maxLength": 500,
      "description": "https URL to notify (signed, retried) when requiredLevel is reached, when the answer changes, or when checking gives up"
    }
  },
  "required": [
    "txHash",
    "payee"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪try_verify_payment(chain, txHash, payee, token, minAmountRaw, ...)

Free: the same verification as verify_payment, limited to 3 NEW claims per client per day (asking again about a claim already checked is always free).

輸入結構描述

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "enum": [
        "base",
        "ethereum"
      ],
      "default": "base",
      "description": "Chain of the payment"
    },
    "txHash": {
      "type": "string",
      "description": "Transaction hash (0x + 64 hex)"
    },
    "payee": {
      "type": "string",
      "description": "Address that should have received the money"
    },
    "token": {
      "type": "string",
      "description": "ERC-20 contract (default: USDC on the chain)"
    },
    "minAmountRaw": {
      "type": "string",
      "description": "Minimum amount in base units, e.g. \"50000\" = 0.05 USDC (default: any)"
    },
    "payer": {
      "type": "string",
      "description": "Only count transfers from this address (the token holder who paid)"
    },
    "logIndex": {
      "type": "integer",
      "minimum": 0,
      "description": "Bind to one transfer: its position within the tx's logs"
    },
    "requiredLevel": {
      "type": "string",
      "enum": [
        "tee_attested",
        "zk_proven",
        "resolved",
        "finalized"
      ],
      "description": "Proof level you need before releasing money (Base: tee_attested < zk_proven < resolved; Ethereum: finalized). The answer then says whether it is releasable."
    }
  },
  "required": [
    "txHash",
    "payee"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_verification(checkId, requiredLevel)

Free. Current state of a verification by checkId; re-checks it once its retry or challenge time has passed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "checkId": {
      "type": "string",
      "maxLength": 80
    },
    "requiredLevel": {
      "type": "string",
      "enum": [
        "tee_attested",
        "zk_proven",
        "resolved",
        "finalized"
      ],
      "description": "Proof level you need before releasing money (Base: tee_attested < zk_proven < resolved; Ethereum: finalized). The answer then says whether it is releasable."
    }
  },
  "required": [
    "checkId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡watch_verification(checkId, callbackUrl, requiredLevel)

Free for a PAID check: add a callback (https) that receives signed events when requiredLevel is reached, when the answer changes, when it becomes final, or when checking gives up. The service re-checks on its own.

輸入結構描述

{
  "type": "object",
  "properties": {
    "checkId": {
      "type": "string",
      "maxLength": 80
    },
    "callbackUrl": {
      "type": "string",
      "maxLength": 500
    },
    "requiredLevel": {
      "type": "string",
      "enum": [
        "tee_attested",
        "zk_proven",
        "resolved",
        "finalized"
      ],
      "description": "Proof level you need before releasing money (Base: tee_attested < zk_proven < resolved; Ethereum: finalized). The answer then says whether it is releasable."
    }
  },
  "required": [
    "checkId",
    "callbackUrl"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verify_payments_batch(claims, csv, requiredLevel, format)

Verify up to 25 payments in one call for $0.25 USDC (x402): give `claims` (same fields as verify_payment) or `csv` (header: chain,txHash,payee,token,minAmountRaw,payer,logIndex). Claims already checked cost nothing; if all of them were, nothing is charged. Returns one row per claim (format "csv" adds a reconciliation CSV).

輸入結構描述

{
  "type": "object",
  "properties": {
    "claims": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      },
      "maxItems": 25
    },
    "csv": {
      "type": "string",
      "maxLength": 20000
    },
    "requiredLevel": {
      "type": "string",
      "enum": [
        "tee_attested",
        "zk_proven",
        "resolved",
        "finalized"
      ],
      "description": "Proof level you need before releasing money (Base: tee_attested < zk_proven < resolved; Ethereum: finalized). The answer then says whether it is releasable."
    },
    "format": {
      "type": "string",
      "enum": [
        "json",
        "csv"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_verifications(checkIds, requiredLevel, format)

Free. Up to 50 checks at once (re-checked when due), as rows; format "csv" adds a reconciliation CSV.

輸入結構描述

{
  "type": "object",
  "properties": {
    "checkIds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 80
      },
      "minItems": 1,
      "maxItems": 50
    },
    "requiredLevel": {
      "type": "string",
      "enum": [
        "tee_attested",
        "zk_proven",
        "resolved",
        "finalized"
      ],
      "description": "Proof level you need before releasing money (Base: tee_attested < zk_proven < resolved; Ethereum: finalized). The answer then says whether it is releasable."
    },
    "format": {
      "type": "string",
      "enum": [
        "json",
        "csv"
      ]
    }
  },
  "required": [
    "checkIds"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_x402_receipt(receipt, offer, sellerAddress, sellerJwk, checkId)

Free. Cross-check a seller's signed x402 offer + receipt (offer-and-receipt extension): verifies the signatures (official x402 functions; pin the seller with sellerAddress for EIP-712 or sellerJwk for JWS), checks offer and receipt agree, and returns the exact `claim` to prove with verify_payment. Pass that verification's checkId to learn which side failed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "receipt": {
      "type": "object",
      "additionalProperties": {}
    },
    "offer": {
      "type": "object",
      "additionalProperties": {}
    },
    "sellerAddress": {
      "type": "string"
    },
    "sellerJwk": {
      "type": "object",
      "additionalProperties": {}
    },
    "checkId": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_job(jobId, accessToken)

Free. Status and (once verified) the result of a paid job, using the accessToken its paid call returned.

輸入結構描述

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "maxLength": 80
    },
    "accessToken": {
      "type": "string",
      "maxLength": 128
    }
  },
  "required": [
    "jobId",
    "accessToken"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本11 個工具