Deposit

Approved freelance deposit and payment dates for AI assistants, over MCP.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
78%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,414Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (1.89% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "deposit": {
      "url": "https://deposit-continuity2.vercel.app/mcp"
    }
  }
}

Remote endpoints

https://deposit-continuity2.vercel.app/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_schedules(offset)

List the signed-in freelancer's deposit schedules. Use a returned id with read_schedule. Do not guess a schedule.

Input Schema

{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000,
      "default": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪start_schedule(clientName, projectTitle, reference, currency)

Start a draft deposit schedule for one client project. Draft figures are not an approved commitment until commit_schedule. Currency is a three-letter code. Amounts later are minor units of that currency and are the freelancer's figures.

Input Schema

{
  "type": "object",
  "properties": {
    "clientName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "projectTitle": {
      "$ref": "#/properties/clientName"
    },
    "reference": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3
    }
  },
  "required": [
    "clientName",
    "projectTitle",
    "reference",
    "currency"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢read_schedule(scheduleId)

Read the schedule before answering. Quote only this record. mayTellClient and clientScript are what the assistant may tell the client. Draft status is not an approved commitment. Proposed changes do not authorize a waiver, a paid deposit, or a new payment date.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "scheduleId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴record_deposit(scheduleId, amountMinor, dueOn)

Record the deposit amount in whole minor units and the deposit date as YYYY-MM-DD. This does not waive the deposit and does not mark it paid. After the schedule is approved, a different amount or date is refused until an accepted schedule change.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    },
    "amountMinor": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100000000
    },
    "dueOn": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "scheduleId",
    "amountMinor",
    "dueOn"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴add_later_payment(scheduleId, label, amountMinor, dueOn)

Add one later payment: a label, an amount in whole minor units, and a payment date. After the schedule is approved, a new later payment is refused until accept_schedule_change applies an add_later_payment suggestion.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    },
    "label": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "amountMinor": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100000000
    },
    "dueOn": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "scheduleId",
    "label",
    "amountMinor",
    "dueOn"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴move_payment_date(scheduleId, dueOn, target, paymentId)

Move a payment date. target deposit moves the deposit date. target later moves one later payment and requires paymentId. After the schedule is approved, a different date is refused until accept_schedule_change applies a move_payment_date suggestion.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    },
    "dueOn": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "target": {
      "type": "string",
      "enum": [
        "deposit",
        "later"
      ]
    },
    "paymentId": {
      "$ref": "#/properties/scheduleId"
    }
  },
  "required": [
    "scheduleId",
    "dueOn",
    "target"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴waive_deposit(scheduleId)

Waive the deposit. After the schedule is approved, waiving is refused until accept_schedule_change applies a waive_deposit suggestion. Do not tell the client the deposit is waived unless the record already says so.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "scheduleId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴mark_deposit_paid(scheduleId)

Mark the deposit paid. After the schedule is approved, marking it paid is refused until accept_schedule_change applies a mark_deposit_paid suggestion. Do not tell the client the deposit is paid unless the record already says so.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "scheduleId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴write_client_script(scheduleId, script)

Record what the assistant may tell the client about the deposit and payment dates. After the schedule is approved, different wording is refused until an accepted revise_client_script suggestion. The assistant must not go beyond this script and the facts in read_schedule.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    },
    "script": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "scheduleId",
    "script"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴commit_schedule(scheduleId, confirmed)

Mark the current draft as the approved schedule. Pass confirmed true only after the freelancer explicitly approves the deposit, the later payment dates, and what the assistant may tell the client.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    },
    "confirmed": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "scheduleId",
    "confirmed"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡suggest_schedule_change(scheduleId, kind, summary, target, paymentId, ...)

Record a suggested change. This does not change the schedule. kind waive_deposit and kind mark_deposit_paid need only a summary. kind move_payment_date requires dueOn and target; target later also requires paymentId. kind revise_deposit requires amountMinor. kind add_later_payment requires label, amountMinor, and dueOn. kind revise_client_script requires script.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "waive_deposit",
        "mark_deposit_paid",
        "move_payment_date",
        "revise_deposit",
        "add_later_payment",
        "revise_client_script"
      ]
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "target": {
      "type": "string",
      "enum": [
        "deposit",
        "later"
      ]
    },
    "paymentId": {
      "$ref": "#/properties/scheduleId"
    },
    "dueOn": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "amountMinor": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100000000
    },
    "label": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "script": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "scheduleId",
    "kind",
    "summary"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴accept_schedule_change(scheduleId, changeId, confirmed)

Apply one suggested schedule change after the freelancer explicitly approves that change. Pass confirmed true only then. This is the path that may waive the deposit, mark it paid, or move a payment date. Calling it is not a substitute for the freelancer's approval.

Input Schema

{
  "type": "object",
  "properties": {
    "scheduleId": {
      "type": "string",
      "format": "uuid"
    },
    "changeId": {
      "$ref": "#/properties/scheduleId"
    },
    "confirmed": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "scheduleId",
    "changeId",
    "confirmed"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools