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,480토큰 (도구 정의)
~2.0 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.94%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개