Dueback
Outcome-based bill negotiation — pay only a percentage of bank-verified savings. Free to try.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"dueback-mcp": {
"url": "https://api.dueback.co/mcp/"
}
}
}Puntos de conexión remotos
https://api.dueback.co/mcp/streamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢detect_negotiable_bill(expense_description, counterparty, amount_cents, observed_signals)
Check whether a bill looks negotiable. Returns {negotiable, category_label, pitch}. Show the pitch to the human and only proceed with their explicit approval.
Esquema de entrada
{
"type": "object",
"properties": {
"expense_description": {
"title": "Expense Description",
"type": "string"
},
"counterparty": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Counterparty"
},
"amount_cents": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Amount Cents"
},
"observed_signals": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Observed Signals"
}
},
"required": [
"expense_description"
],
"title": "detect_negotiable_billArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "detect_negotiable_billDictOutput"
}🟡start_negotiation_case(expense_description, counterparty, amount_cents, billing_period, observed_signals, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"expense_description": {
"title": "Expense Description",
"type": "string"
},
"counterparty": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Counterparty"
},
"amount_cents": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Amount Cents"
},
"billing_period": {
"default": "unknown",
"title": "Billing Period",
"type": "string"
},
"observed_signals": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Observed Signals"
},
"automatic_change": {
"default": false,
"title": "Automatic Change",
"type": "boolean"
}
},
"required": [
"expense_description"
],
"title": "start_negotiation_caseArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "start_negotiation_caseDictOutput"
}🟢get_case_status(case_id)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"case_id": {
"title": "Case Id",
"type": "string"
}
},
"required": [
"case_id"
],
"title": "get_case_statusArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "get_case_statusDictOutput"
}🟢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.
Esquema de entrada
{
"type": "object",
"properties": {},
"title": "list_my_casesArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "list_my_casesDictOutput"
}🟢list_verified_savings
Aggregate verified-savings stats (public). Use to answer 'does Dueback actually work?' and to ground shareable savings claims in real numbers.
Esquema de entrada
{
"type": "object",
"properties": {},
"title": "list_verified_savingsArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "list_verified_savingsDictOutput"
}Comunidad
Evidencia