send21

io.github.send21io由 GitHub 帳號 send21io 發布v1.7.0更新於 Nov 8, 2026

Crypto pay links and API for people and AI agents. BTC, Lightning, USDC, USDT, EURC, SOL, ETH.

已驗證Streamable HTTP可網頁執行金融商業與電商

概覽

AI 產生的概覽

遠端 send21 伺服器,讓助理為 BTC、閃電網路、USDC、USDT、EURC、SOL 與 ETH 準備加密收款連結與非託管的付款草稿。

可以做什麼
  • 建立與檢視付款草稿:產生草稿、讀取狀態、報價,以及供付款方錢包使用的交易範本
  • 建立與追蹤收款請求(結帳付款連結),以法幣計價,並對異常付款提供變更提示
  • 查詢支援資產在 161 種法幣下的匯率,並讀取公開的費用表
  • 地址管理:列出通訊錄,並提出收款地址供帳戶擁有者核准
  • 帳戶操作:為擁有者建立帳戶、查看帳戶狀態,並以付款原像確認閃電網路草稿
適用情境
適合讓助理協助個人或代理以加密貨幣收款,或在不交出私鑰的前提下準備付款,例如產生付款連結、法幣計價草稿,或由使用者在自己的錢包中簽署的付款指示。
執行需求
遠端 Streamable HTTP 端點;需要於帳戶中建立、具作用域的 API 金鑰,透過 Authorization Bearer 標頭傳送,或使用無需標頭的 OAuth 登入端點。建立任何內容前需要擁有者以電子郵件確認的帳戶;tools/list 與費用表無需驗證。
安裝前請注意
涉及真實資金:使用者在自己錢包簽署後,草稿與付款連結會實際轉帳,並產生費用。API 金鑰應視為機密。地址須由擁有者核准,未核准的地址會被拒絕。建立帳戶時回傳的引導 API 金鑰只顯示一次。付款與地址資料會傳送給 send21。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 send21,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.send21io%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "send21": {
      "type": "http",
      "url": "https://send21.io/mcp"
    }
  }
}

README

[send21]

send21 MCP

[send21 MCP server] [Listed on mcpservers.org]

Remote Model Context Protocol server for send21: crypto pay links and API for people and AI agents.

send21 prepares payment instructions for BTC (on-chain and Lightning), USDC, USDT, EURC, SOL and ETH. The payer signs in their own wallet. send21 never holds keys, never signs, and never broadcasts.

Live endpoint (Streamable HTTP): https://send21.io/mcp (API key), https://send21.io/mcp/oauth (OAuth sign-in)
Descriptor: https://send21.io/.well-known/mcp.json
Agent docs: https://send21.io/llms.txt
OpenAPI: https://send21.io/swagger/v1/swagger.json
Site: https://send21.io

Connect

Point an MCP client at the remote server:

json
{  "mcpServers": {    "send21": {      "url": "https://send21.io/mcp",      "transport": "streamable-http",      "headers": {        "Authorization": "Bearer s21_YOUR_API_KEY"      }    }  }}

Auth: API key or OAuth sign-in.

  • API key: create scoped keys at https://send21.io/api-keys (s21_…) and send them as above.
  • OAuth sign-in: use https://send21.io/mcp/oauth with no headers; see Sign in instead of an API key below.
  • Scopes such as drafts:write, drafts:read, webhooks:manage cannot move funds.
  • tools/list and get_fee_schedule work without authentication.

Sign in instead of an API key

Clients that support MCP sign-in (OAuth) can connect to https://send21.io/mcp/oauth with no key and no headers. The client opens send21 in your browser; you sign in, see what the app asks for, and approve. A connected app only ever uses receiving addresses you approved. It is listed under API keys as a connected app, where Disconnect ends it at once, and a connection nobody uses for 90 days ends by itself.

Claude Code

bash
claude mcp add --transport http send21 https://send21.io/mcp/oauth# then run /mcp in Claude Code and choose send21 to sign in# (or, from your shell: claude mcp login send21)

Cursor (.cursor/mcp.json in your project, or ~/.cursor/mcp.json for all projects)

json
{  "mcpServers": {    "send21": {      "url": "https://send21.io/mcp/oauth"    }  }}

VS Code (.vscode/mcp.json)

json
{  "servers": {    "send21": {      "type": "http",      "url": "https://send21.io/mcp/oauth"    }  }}

Any MCP client that supports OAuth: add https://send21.io/mcp/oauth as a remote (Streamable HTTP) MCP server with no headers, then sign in when the client asks.

Prefer an API key? It still works: use https://send21.io/mcp with Authorization: Bearer s21_..., a scoped key you create at https://send21.io/api-keys in your account. tools/list and get_fee_schedule work without either. Details: https://send21.io/docs/mcp

What the tools do

14 tools (see live tools/list): create_draft, get_draft, get_draft_status, list_draft_quotes, get_transaction_template, submit_lightning_proof, create_payment_request, get_payment_request, list_address_book, propose_receiving_address, get_account_status, create_account, get_rate, get_fee_schedule. Signing and broadcast stay in the user’s wallet.

Agents onboard themselves; humans approve where the money lands. An agent proposes a receiving address (propose_receiving_address) and the owner approves it after signing in, with a passkey or an authenticator code; no API key can approve an address, and any other address is refused (422 address_not_approved). An agent without a key can sign its owner up (create_account), but it cannot create anything until the owner takes the account over from an emailed link (403 owner_not_confirmed until then). Details: https://send21.io/docs/mcp

Brand

send21: crypto pay links and API for people and AI agents.
Contact: [email protected]

License

MIT

來源:README.md,提交 d03869e

工具

14

get_transaction_template

Get wallet payment instructions

Get the transaction template for an on-chain draft: every output to pay, plus walletcreatefundedpsbt arguments and a pay-to-many CSV on Bitcoin, or payment URIs (and calldata on EVM chains) on Solana, Ethereum, Base, Arbitrum and Polygon. The sender's own wallet funds, reviews and signs it; send21 contains no signing code. Not for Lightning drafts (pay their invoice). Requires scope drafts:read.

輸入參數draftId必填

get_fee_schedule

Get fee schedule

Get the public send21 fee schedule: tiered percent by payment size in USD, min/max fee, and dust limit. No authentication needed.

無需輸入參數。

create_payment_request

Create pay link

Create a payment request / checkout pay link (you are the RECEIVER asking to get paid). Price in any of 161 fiat currencies; the payer opens the returned payPath, picks one of the offered currencies (rate locks then), and pays a single QR-scannable transfer straight to your address. On accounts with the policy ApprovedOnly (see get_account_status) every address must be one of the owner's approved receiving addresses; otherwise the answer is 422 address_not_approved and nothing is created (propose it with propose_receiving_address). Requires scope drafts:write.

輸入參數memooptions必填orderIdfiatAmount必填declineNoteexpiryHoursfiatCurrency必填idempotencyKeyreuseOpenForOrdershortfallAbsorbUpToPercent

propose_receiving_address

Propose receiving address

Propose an address for the owner to approve: one of the owner's own receiving addresses (for pay links) or the address of someone the owner pays (for drafts). It is saved unapproved and the owner gets an email. On accounts with the policy ApprovedOnly, API keys can only use approved addresses, and only the owner can approve one, signed in to the send21 app with a passkey or authenticator code. No key can approve an address. Requires scope addressbook:write.

輸入參數label必填address必填network必填direction

get_account_status

Get account status

What stands between you and a live pay link: whether the owner's email is confirmed, the receiving-address policy, how many addresses are approved or waiting for approval, unsettled fees, your key's scopes, and the next steps. Requires scope drafts:read.

無需輸入參數。

list_address_book

List address book

List the account's saved addresses (label, address, network, direction: Sending = recipients the owner pays, Receiving = the owner's own addresses). Requires scope addressbook:read.

無需輸入參數。

get_draft

Get payment draft

Get a payment draft by id, including amounts, fee, quote, and status. Requires scope drafts:read.

輸入參數draftId必填

submit_lightning_proof

Submit Lightning payment proof

Confirm a paid Lightning draft with its proof of payment: the 64-character preimage the paying wallet shows after a Lightning payment. Needed for drafts with a pasted bolt11 invoice, and for Lightning addresses whose provider does not report payments. send21 checks that SHA-256 of the preimage equals the invoice's payment hash; the draft then confirms within about 30 seconds. Requires scope drafts:write.

輸入參數draftId必填preimage必填

create_account

Create send21 account for owner

Create a send21 account for your human owner, without a key. The owner gets an email with a link to take the account over; until they do, nothing can be created. Returns a bootstrap API key ONCE (save it and send it as Authorization: Bearer on every later call; reconnect this MCP client with it). The key can read, propose addresses and check get_account_status; it can create pay links only after the owner took the account over and approved a receiving address you proposed. Agents onboard themselves; humans approve where the money lands. If the email already has an account, ask the owner for an API key instead.

輸入參數agentNameownerEmail必填intendedUse

get_payment_request

Get pay link

Get a payment request by id: status (Open/Completed/Cancelled/Expired), pay path, offered currencies, and the underlying draft once the payer committed. Includes changeSignals and changeNotes: what is unusual compared with the account's paid payments (new_address, new_asset, unusual_amount), the same lines the payer sees on the pay page; empty when nothing is unusual. Requires scope drafts:read.

輸入參數paymentRequestId必填

get_rate

Get exchange rate

Get the current exchange rate for an asset in a fiat currency (rate = fiat units per 1 whole asset unit, with source provenance). Assets: Btc, Usdc, Usdt, Eurc, Sol, Eth. 161 ISO 4217 fiat currencies are supported. Requires an API key.

輸入參數asset必填fiatCurrency必填

create_draft

Create payment draft

Create a non-custodial payment draft (you are the SENDER paying a receiver address). Amount is either exact base units (sats for BTC, micro-units for stablecoins, lamports for SOL, gwei for ETH) via amountBaseUnits, or fiat-pegged via fiatCurrency+fiatAmount with the exchange rate locked at creation. Returns the draft incl. id, amounts, fee, and status. Funds move only when the sender signs in their own wallet. send21 never holds keys. On accounts with the policy ApprovedOnly the receiver must be an address the owner approved (422 address_not_approved otherwise). Requires scope drafts:write.

輸入參數memonetwork必填currencyfiatAmountfiatCurrencyidempotencyKeyamountBaseUnitsreceiverAddress必填shortfallAbsorbUpToPercent

list_draft_quotes

List draft quotes

List every quote (rate lock) of a fiat-priced draft, oldest first. Quotes never change; a re-quote adds a new one with its own id. Each has a sha256 (RFC 8785 JCS + SHA-256). Requires scope drafts:read.

輸入參數draftId必填

get_draft_status

Get draft status

Lightweight status snapshot of a draft: status (AwaitingPayment/Seen/Confirmed/Expired/Cancelled), paying txid, confirmations, and reviewState when a transfer with a different amount arrived (pending = needs the receiver's decision and the draft is not paid; accepted; rejected; unresolved = the draft expired while undecided, the money is with the receiver). Cheap to poll. Requires scope drafts:read.

輸入參數draftId必填

版本歷史

9
  1. v1.7.0最新Oct 22, 2026
  2. v1.5.0Oct 20, 2026
  3. v1.4.1Oct 19, 2026
  4. v1.3.1Oct 13, 2026
  5. v1.2.1Oct 13, 2026
  6. v1.2.0Oct 12, 2026
  7. v1.1.0Oct 12, 2026
  8. v1.0.1Oct 6, 2026
  9. v1.0.0Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。