Dueback
io.github.dunrossmai-rgb/dueback-mcpVersion 0.1.3Outcome-based bill negotiation — pay only a percentage of bank-verified savings. Free to try.
Status
Responds69 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:50 UTC
- Latency
- 69 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- EU hosting detected (detected, not a legal statement)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://api.dueback.co/mcp/Responds69 msNo sign-in
Claude Code
claude mcp add --transport http dueback-mcp https://api.dueback.co/mcp/Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: dueback-mcp
Remote MCP server URL: https://api.dueback.co/mcp/Cursor
{
"mcpServers": {
"dueback-mcp": {
"url": "https://api.dueback.co/mcp/"
}
}
}VS Code
code --add-mcp '{"name":"dueback-mcp","type":"http","url":"https://api.dueback.co/mcp/"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
5 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
detect_negotiable_billCheck whether a bill looks negotiable. Returns {negotiable,
category_label, pitch}. Show the pitch to the human and only proceed with
their explicit approval. | No | Yes | Yes | No |
get_case_statusGet 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.
A 401 is returned as a friendly sign-in-required result, not raised,
so unauthenticated probes (e.g. bots hitting the MCP endpoint without
credentials) do not surface as Sentry errors — same handling as
list_my_cases (Oct 27, 2026 Sentry alert). A 403 is likewise a
friendly insufficient_scope result. | No | Yes | Yes | No |
list_my_casesList 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. A 403 is likewise a friendly
insufficient_scope result. | No | Yes | Yes | No |
list_verified_savingsAggregate verified-savings stats (public). Use to answer 'does Dueback
actually work?' and to ground shareable savings claims in real numbers. | No | Yes | Yes | No |
start_negotiation_caseOpen a Dueback negotiation case. Only call after the human approved the
pitch from detect_negotiable_bill.
Operations v3 (Personal Agent Protocol): the FIRST call never opens a
case. It returns an approval operation as an error result
(isError=true) whose structuredContent.operation carries the exact
terms: no charge at case creation; Dueback charges only a share of
verified savings — 15% of verified first-year savings for recurring
bills, 10% for one-off bills (founding-beta rates 10% and 5%),
capped, with a $10 minimum — collected via Stripe on dueback.co only
after the savings are verified. If nothing is saved, nothing is
charged, and if a saving disappears within 30 days the fee is
refunded in full. Show the user those exact terms, then repeat the
SAME call with the approval in _meta under
personalagentprotocol.org/approval (or the Poppy-Approval header).
The approved repeat opens the case at most once; an unknown, stale,
or expired approval returns a FRESH operation to approve instead —
never the named revision.
Two outcomes of the approved repeat:
- {"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. The approval stays valid until it expires, so the agent may
repeat the approved call after setup.
A 401/403 is a friendly result, not an error (same handling as the
read tools): sign_in_required when the human is not signed in,
insufficient_scope when the connection lacks cases:write. A
duplicate active case is lik | No | No | No | Yes |
Details
- Registry status
- Active
- Published
- Oct 31, 2026
- Updated
- Oct 31, 2026
- Categories (suggested)
- Finance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared