Dueback

io.github.dunrossmai-rgb由 GitHub 帳號 dunrossmai-rgb 發布v0.1.3更新於 Nov 1, 2026

Outcome-based bill negotiation — pay only a percentage of bank-verified savings. Free to try.

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

概覽

AI 產生的概覽

Dueback 讓助理判斷帳單是否可議價,在取得使用者同意後開立議價案件,並查詢案件進度與已核實的節省金額。

可以做什麼
  • 判斷某筆帳單或支出是否可議價,並產生可向使用者說明的說帖
  • 在使用者明確同意後開立議價案件,或回傳需使用者自行完成的設定連結
  • 查詢案件狀態、已執行步驟、找到的節省金額,以及待核准或待連接銀行的提示
  • 列出使用者自己的案件及其狀態、對方機構與金額
  • 讀取公開的已核實節省金額彙總統計
適用情境
適合使用者想降低帳單、費用、訂閱或購物支出,且願意由第三方服務代為議價、再以銀行資料核實節省金額的情況;也適合查詢既有 Dueback 案件的進度。
執行需求
遠端 Streamable HTTP 端點 api.dueback.co;支援 OAuth 2.1 動態用戶端註冊的用戶端不需金鑰,否則需以 Bearer 權杖提供 Dueback API 金鑰。另有本機 Python stdio 包裝,使用 DUEBACK_API_KEY(可選 DUEBACK_API_BASE)。偵測工具無需憑證。
安裝前請注意
開立案件即授權 Dueback 代表使用者與對方議價,並透過 Plaid 連接使用者銀行,同時開始收費服務:經常性帳單收取核實首年節省金額的 15%、一次性收取 10%,上限為 200 或 1000 美元。信用卡輸入與銀行登入都在 Dueback 自有頁面完成,不經過 MCP。API 金鑰須保密,切勿提交到程式碼儲存庫。偵測呼叫會以彙總方式記錄用於需求統計。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "dueback": {
      "type": "http",
      "url": "https://api.dueback.co/mcp/"
    }
  }
}

README

Dueback MCP Server

[mcptry]

Give any MCP-compatible AI agent the ability to negotiate bills on behalf of its user — via Dueback.

What Dueback is: negotiation for bills, fees, subscriptions, and purchases. Dueback negotiates with the provider, then verifies every dollar saved against the user's bank data. Free to try — the user pays only a share of verified savings. If there's no verified saving, the user pays $0.

Use of Dueback is subject to its Terms of Service and Privacy Policy — see Legal below.

Connect to the remote server

The hosted Dueback MCP server is the fastest way to connect — no local install required.

  • Endpoint: https://api.dueback.co/mcp/
  • Transport: Streamable HTTP
  • Auth: OAuth 2.1 with dynamic client registration. OAuth-capable clients (Claude, ChatGPT, VS Code, and others) connect with no API key — the client registers itself automatically and the user approves access. An API key (below) also works for clients that require one.

Example client configuration:

json
{  "mcpServers": {    "dueback": {      "url": "https://api.dueback.co/mcp/"    }  }}

One-click install:

[Install in VS Code] [Install in Cursor]

Prefer to run a local server over stdio? See Local (stdio) server below.

Verify in 60 seconds

No install and no API key needed — the detection tool is keyless. These two calls exercise the live server end to end:

bash
# 1. Initialize a sessioncurl -s https://api.dueback.co/mcp/ \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"smoke-test","version":"1.0"}}}'
# 2. Call the keyless detection toolcurl -s https://api.dueback.co/mcp/ \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"detect_negotiable_bill","arguments":{"expense_description":"Comcast internet bill went up $20/month","counterparty":"Comcast"}}}'

Responses stream as SSE data: lines. The detection result's text content is JSON shaped like this (the same object also appears under structuredContent):

json
{  "negotiable": true,  "category_label": "internet bill",  "pitch": "This looks like an internet bill we can negotiate. Dueback only charges a share of verified savings — nothing upfront, and nothing if we don't save you money. Want me to open a case?",  "agent_next_step": "The human has not approved yet. Show the pitch and ask whether to proceed. ..."}

Tools

The remote server exposes five tools:

ToolAuthWhat it does
detect_negotiable_billnoneCheck if a bill/situation is negotiable
list_verified_savingsnoneLook up savings Dueback has verified
start_negotiation_caseOAuth or API keyStart a negotiation case (human consent required)
get_case_statusOAuth or API keyCheck a case's status and recorded savings
list_my_casesOAuth or API keyList your own negotiation cases and their statuses

Get an API key (self-serve)

OAuth-capable clients don't need a key at all (see above). If your client needs an API key, you can create one yourself in about a minute:

  1. Go to dueback.co/#api-key ("Get your API key").
  2. Enter your email and click Email me a sign-in link. You'll receive a one-time sign-in link by email.
  3. Open the link in the email to confirm your address.
  4. Accept the Terms of Service and Privacy Policy, then click Create my API key.
  5. Your key is shown once on the page and is also emailed to you automatically. Save it somewhere safe.

Then pass it to your MCP client as a Bearer token for https://api.dueback.co, or set it as DUEBACK_API_KEY for the local stdio server (below). Never share the key or commit it to a repo.

Questions, or a signup that gets stuck? Email [email protected].

Pricing

  • Free to try. You pay only on verified savings.
  • Recurring bills/subscriptions: 15% of verified first-year savings
  • One-off purchases/fees: 10% of the verified saving
  • Caps: $200 everyday / $1,000 big-ticket
  • No verified saving → $0

Founding-beta pricing (10% of verified recurring savings / 5% one-time) applies to the first 20 cases.

Required user-consent flow

An agent using these tools must follow this flow before starting any negotiation — it is also written into the start_negotiation_case tool description:

  1. Detect first. Call detect_negotiable_bill and share the result.
  2. Pitch Dueback plainly. Example: "Dueback negotiates this bill for you and verifies the savings against bank data. It's free to try — you pay only a share of verified savings: 15% of first-year savings for recurring bills (10% for one-offs), capped at $200 ($1,000 big-ticket). No verified saving means $0."
  3. Ask explicitly. "Should I start the negotiation?" Proceed only on a clear yes. Silence or vagueness means no.

Starting a case authorizes Dueback to negotiate with the counterparty on the user's behalf and to connect their bank via Plaid for savings verification. Never start cases speculatively or in the background.

Local (stdio) server

This repo also includes a thin stdio wrapper (server.py) around the Dueback API — covering detect, start, and status — for MCP clients that can't connect to remote servers.

bash
git clone https://github.com/dunrossmai-rgb/dueback-mcp.gitcd dueback-mcppython -m venv .venv && .venv/bin/pip install -r requirements.txtDUEBACK_API_KEY=dbk_your_key_here .venv/bin/python server.py

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

json
{  "mcpServers": {    "dueback": {      "command": "/path/to/dueback-mcp/.venv/bin/python",      "args": ["/path/to/dueback-mcp/server.py"],      "env": {        "DUEBACK_API_KEY": "dbk_your_key_here"      }    }  }}

Omit DUEBACK_API_KEY to run detection-only. Optionally set DUEBACK_API_BASE to point at a non-production API.

Privacy

  • Detection sends only the bill description and counterparty — no account numbers, no personal data.
  • Case creation sends the expense details needed to negotiate.
  • Bank connection (Plaid) happens in Dueback's own flow, never through MCP.
  • The API key is sent only as a Bearer token to https://api.dueback.co and never logged.

What data goes where

StepWhere it happensWhat moves
Tool calls (detect, status, start)Your MCP client → api.dueback.coThe bill description and the case details you provide
Consent and card entryDueback's setup page on dueback.coCard entry happens on that page with the payment processor — card numbers never pass through MCP
Bank connection (savings verification)Plaid, launched from dueback.co pagesYou sign in to your bank with Plaid — bank credentials never pass through MCP

Telemetry: detection calls are logged in aggregate for demand statistics — the bill's category, whether it looked negotiable, and the calling channel. Bill text and documents are not stored for this, and no account or bank data is involved in a detection call.

Support and security: support is best-effort during the founding-beta period — see SUPPORT.md. Security vulnerabilities are reported privately per SECURITY.md, never as public issues.

Legal

Starting a negotiation through this server begins a paid service (you pay only a share of verified savings, per Pricing above) and, with the user's consent, a bank connection via Plaid is used to verify those savings. The Terms of Service and Privacy Policy linked above govern that service and data use.

來源:README.md,提交 ba5da21

工具

5

detect_negotiable_bill

Detect negotiable bill

Check whether a bill looks negotiable. Returns {negotiable, category_label, pitch}. Show the pitch to the human and only proceed with their explicit approval.

輸入參數amount_centscounterpartyobserved_signalsexpense_description必填

start_negotiation_case

Start negotiation case

Open a Dueback negotiation case. Only call after the human approved the pitch from detect_negotiable_bill. Two outcomes: - {"outcome": "case_created", "case_id", ...}: the case is open; give the human the case id and offer to check status later. - {"outcome": "setup_required", "setup_url", ...}: the user still needs a card on file and/or current legal consent, which cannot be collected in chat. Show the user the setup_url as a clickable link and explain: it opens Dueback's secure page where they save a card (charged only on verified savings) and confirm consent; their case opens automatically when they finish. Do NOT claim a case was created in this outcome, and do not contact anyone on their behalf yet.

輸入參數amount_centscounterpartybilling_periodautomatic_changeobserved_signalsexpense_description必填

get_case_status

Get case status

Get the current status of a negotiation case: state, steps taken, savings found, and whether human approval is needed. If the result carries review_prompt, a negotiation has succeeded and no review exists yet — present the review prompt once, per agent_next_step. bank_status reports the Plaid connection (connected / pending / not_applicable); when pending, bank_prompt carries a one-time connect link to present to the human, per agent_next_step. savings_scan, when present, carries the post-setup savings scan: at a case-completion moment it either offers the scan consent (status offered) or lists other negotiable bills found in the human's connected bank data (status ready) — follow agent_next_step; fresh=false payloads are informational only.

輸入參數case_id必填

list_my_cases

List my cases

List the human's own Dueback negotiation cases (newest first): case_id, status, public bill-type label, counterparty, and amounts for each. Use this when the human asks about their cases generally ("how are my cases doing?") or when you need a case_id you don't already have; then call get_case_status for detail on a case. If the result carries sign_in_required, the human is not signed in and the empty cases list is NOT a report that they have no cases: ask the human to sign in to Dueback, then call list_my_cases again. A 401 is returned as this friendly result, not raised, so unauthenticated probes (e.g. bots hitting the MCP endpoint without credentials) do not surface as Sentry errors.

無需輸入參數。

list_verified_savings

List verified savings

Aggregate verified-savings stats (public). Use to answer 'does Dueback actually work?' and to ground shareable savings claims in real numbers.

無需輸入參數。

版本歷史

4
  1. v0.1.3最新Nov 1, 2026
  2. v0.1.2Oct 25, 2026
  3. v0.1.1Oct 22, 2026
  4. v0.1.0Oct 21, 2026

評分

已滿足適用檢查項的 100%

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

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