milestone-schedule

Milestone billing from accepted deliverables: due dates, sign-off dates, invoice-ready items.

我該用這個嗎

品質與安全性

A
說明品質
96%
結構描述完整度
92%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(1)

  • LOWTool 'delivery_schedule_get' description lacks action verb在 delivery_schedule_get 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,836Token(工具定義)
~1.8 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.22%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "milestone-schedule": {
      "command": "uvx",
      "args": [
        "https://github.com/theluckystrike/mcp-servers/releases/download/v0.21.0/delivery-schedule.mcpb"
      ]
    }
  }
}

可執行的套件

mcpbhttps://github.com/theluckystrike/mcp-servers/releases/download/v0.21.0/delivery-schedule.mcpb0.21.0stdio
mcpbhttps://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/delivery-schedule.mcpb0.22.0stdio

遠端端點

https://mcp.zovo.one/mcp/milestone-schedulestreamable-http

它能做什麼

工具清單

工具(12)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟡delivery_schedule_create(reference, reference_kind, reference_date, client, title, ...)

Open a delivery schedule against a quote, work order or change order and return its DS-YYYY-NNNN number: the reference, its own date, the client, a title and the currency. Free tier: 3 open.

輸入結構描述

{
  "type": "object",
  "properties": {
    "reference": {
      "type": "string",
      "maxLength": 64,
      "description": "The quote, work order or change order this schedule delivers, by its id, e.g. WO-2026-0001, Q-2026-0003 or CO-2026-0001"
    },
    "reference_kind": {
      "type": "string",
      "enum": [
        "quote",
        "work_order",
        "change_order"
      ],
      "description": "What the reference is. Inferred from the id when omitted: WO- is a work order, CO- a change order, anything else a quote"
    },
    "reference_date": {
      "type": "string",
      "maxLength": 10,
      "description": "The date on the reference document itself, YYYY-MM-DD. No due date and no delivery may fall before it"
    },
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "The client the work is delivered to, as named on the reference document"
    },
    "title": {
      "type": "string",
      "maxLength": 2000,
      "description": "What the job is, in one line, e.g. Website rebuild, phase one"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO code the deliverables are priced in. Defaults to the shared business profile's currency"
    },
    "note": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "reference",
    "reference_date",
    "client",
    "title"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡deliverable_add(schedule, description, due_date, value_minor, tax_rate, ...)

Add one dated deliverable and return its D number and the new counts. value_minor is NET of VAT in whole MINOR units. A due date before the reference document's own date is refused. It starts as planned.

輸入結構描述

{
  "type": "object",
  "properties": {
    "schedule": {
      "type": "string",
      "maxLength": 200,
      "description": "The schedule id, e.g. DS-2026-0001, the reference it delivers, e.g. WO-2026-0001, or its title"
    },
    "description": {
      "type": "string",
      "maxLength": 2000,
      "description": "What is being handed over, as the client would recognise it, e.g. Wireframes for the five main pages"
    },
    "due_date": {
      "type": "string",
      "maxLength": 10,
      "description": "The day it is due, YYYY-MM-DD. It cannot fall before the reference document's own date"
    },
    "value_minor": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000000,
      "description": "What this deliverable is worth, net of VAT, in whole minor units. 90000 is EUR 900.00. Leave it out when the job is a lump sum and this deliverable carries no price of its own"
    },
    "tax_rate": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000,
      "description": "VAT percent for this deliverable, overriding the shared business profile's default"
    },
    "note": {
      "type": "string",
      "maxLength": 2000
    },
    "duplicate_ok": {
      "type": "boolean",
      "description": "Add it even though this schedule already carries the same description due on the same day. Default false"
    }
  },
  "required": [
    "schedule",
    "description",
    "due_date"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪deliverable_status(schedule, deliverable, status, date, note)

Record a dated move on one deliverable: planned, in_progress, delivered, then accepted with a note. An out-of-order move, or a date before the reference document, is refused. The date drives lateness.

輸入結構描述

{
  "type": "object",
  "properties": {
    "schedule": {
      "type": "string",
      "maxLength": 200,
      "description": "The schedule id, e.g. DS-2026-0001, the reference it delivers, e.g. WO-2026-0001, or its title"
    },
    "deliverable": {
      "type": "string",
      "maxLength": 200,
      "description": "The deliverable id, e.g. D01, or its description when only one carries it"
    },
    "status": {
      "type": "string",
      "enum": [
        "in_progress",
        "delivered",
        "accepted"
      ],
      "description": "The status to move to"
    },
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "The day it happened, YYYY-MM-DD. Default today. This is the date every late reading is taken against, not the day you type it"
    },
    "note": {
      "type": "string",
      "maxLength": 2000,
      "description": "What happened. On accepted this is the acceptance note, e.g. Signed off by the client on the call, no snags"
    }
  },
  "required": [
    "schedule",
    "deliverable",
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴deliverable_delete(schedule, deliverable)

Delete one deliverable still planned with no history. One started, delivered or accepted is refused, naming when: add a corrected deliverable instead. The D number on a schedule is never reissued.

輸入結構描述

{
  "type": "object",
  "properties": {
    "schedule": {
      "type": "string",
      "maxLength": 200,
      "description": "The schedule id, e.g. DS-2026-0001, the reference it delivers, e.g. WO-2026-0001, or its title"
    },
    "deliverable": {
      "type": "string",
      "maxLength": 200,
      "description": "The deliverable id, e.g. D01, or its description when only one carries it"
    }
  },
  "required": [
    "schedule",
    "deliverable"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢delivery_schedule_get(schedule, as_of)

Return one schedule in full as at a date: every deliverable with due date, status, delivered and accepted dates, note and value, plus what is late and the totals. The answer names the as_of it used.

輸入結構描述

{
  "type": "object",
  "properties": {
    "schedule": {
      "type": "string",
      "maxLength": 200,
      "description": "The schedule id, e.g. DS-2026-0001, the reference it delivers, e.g. WO-2026-0001, or its title"
    },
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Read the schedule as at this date, YYYY-MM-DD. Defaults to today"
    }
  },
  "required": [
    "schedule"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢delivery_schedule_list(client, reference, state, as_of, limit)

List schedules oldest reference first with client, currency and counts as at a date: late, still owed, accepted. Filter by client, reference and state open or complete. Free.

輸入結構描述

{
  "type": "object",
  "properties": {
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "Only schedules whose client name contains this text"
    },
    "reference": {
      "type": "string",
      "maxLength": 64,
      "description": "Only the schedule against this quote, work order or change order"
    },
    "state": {
      "type": "string",
      "enum": [
        "open",
        "complete"
      ],
      "description": "open for a job with a deliverable that is not yet accepted, complete for one where every deliverable is"
    },
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Read the schedule as at this date, YYYY-MM-DD. Defaults to today"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum schedules returned, default and ceiling 500"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delivery_schedule_delete(schedule)

Delete a schedule carrying no deliverables, freeing an open slot. One holding any is refused, naming them, since they record what was owed. The DS number is never reissued. Free on every tier.

輸入結構描述

{
  "type": "object",
  "properties": {
    "schedule": {
      "type": "string",
      "maxLength": 200,
      "description": "The schedule id, e.g. DS-2026-0001, the reference it delivers, e.g. WO-2026-0001, or its title"
    }
  },
  "required": [
    "schedule"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢late_report(as_of, reference, client, include_delivered_late, limit)

What has slipped as at a date: every deliverable still owed past its due date, worst first, with value at risk per currency, and what was delivered late kept apart. A reference with no schedule is refused.

輸入結構描述

{
  "type": "object",
  "properties": {
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Read lateness as at this date, YYYY-MM-DD. Defaults to today. Everything in the answer is as at this date, not as at now"
    },
    "reference": {
      "type": "string",
      "maxLength": 64,
      "description": "Only the schedule against this quote, work order or change order"
    },
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "Only schedules whose client name contains this text"
    },
    "include_delivered_late": {
      "type": "boolean",
      "description": "Include what was handed over after its due date but is no longer outstanding. Default true"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum rows per section, default and ceiling 500"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪delivery_schedule_document(schedule, as_of)

Render one schedule as a plain-text document for the client: every deliverable with its due date, status, delivered and accepted dates and value, the counts as at a date, and a sign-off block. Pro.

輸入結構描述

{
  "type": "object",
  "properties": {
    "schedule": {
      "type": "string",
      "maxLength": 200,
      "description": "The schedule id, e.g. DS-2026-0001, the reference it delivers, e.g. WO-2026-0001, or its title"
    },
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Read the schedule as at this date, YYYY-MM-DD. Defaults to today"
    }
  },
  "required": [
    "schedule"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡milestone_payload(schedule, as_of, issue_date, tax_rate)

Build the delivered-and-accepted deliverables as invoice_create-ready items in MAJOR units and quote_create-ready items in MINOR units, with VAT at the shared profile rate. Writes nothing. Pro.

輸入結構描述

{
  "type": "object",
  "properties": {
    "schedule": {
      "type": "string",
      "maxLength": 200,
      "description": "The schedule id, e.g. DS-2026-0001, the reference it delivers, e.g. WO-2026-0001, or its title"
    },
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Bill what had been accepted by this date, YYYY-MM-DD. Defaults to today"
    },
    "issue_date": {
      "type": "string",
      "maxLength": 10,
      "description": "The invoice issue date, YYYY-MM-DD. Default today"
    },
    "tax_rate": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000,
      "description": "VAT percent for deliverables with no rate of their own, overriding the shared business profile's default"
    }
  },
  "required": [
    "schedule"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢license_status

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪license_activate(key)

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

輸入結構描述

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本12 個工具
已驗證未記錄版本12 個工具