Koskamo

MCP Delivery Schedule

Tracks dated deliverables against quotes or work orders, managing status transitions from planned to accepted. It generates late reports showing slipped items with value at risk and can create invoice-ready milestone lines for accepted items.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

MCP Delivery Schedule logo, by theluckystrikeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-02Published by theluckystrike
You need:Free tokens allow 600 calls an houra Pro key 6000a token lasts 30 days from last useEvery hosted endpoint needs a free token
MCP endpoint (Streamable HTTP)
https://mcp.zovo.one/mcp/delivery-schedule
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 12 of 12 declare behavior hints · 9 of 11 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days
  • Popularity 2 GitHub stars

What you can do with it

  • Track contract deliverables and milestones
  • Generate late-deliverables reports as at any date
  • Mark items delivered and accepted
  • Create invoice-ready lines for accepted milestones

Source and maintenance

Community listingRegistry 0.23.0MIT
Last repository push
Latest release
v0.22.5
Maintenance checked

Protocol and capabilities

Server
mcp-delivery-schedule 0.22.7
MCP protocol negotiated in check
2025-06-18
Tools
12 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Delivery schedules for client work under a quote, work order or change order. It covers dated deliverables with net values, the steps planned, in progress, delivered and accepted, what is late at a date with the value at risk, client schedule documents with a sign-off block, and invoice or quote line items for accepted milestones with VAT at the shared business profile rate. Records are stored per user account on McpStamp's hosted service. The free tier allows 3 open schedules; documents and milestone invoice items need Pro.

Tools

12 advertised

delivery_schedule_create — Open a delivery schedule
Advertised by the server during the last successful anonymous check.

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.

delivery_schedule_create input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "reference",
    "reference_date",
    "client",
    "title"
  ],
  "properties": {
    "note": {
      "type": "string",
      "maxLength": 2000
    },
    "title": {
      "type": "string",
      "maxLength": 2000,
      "description": "What the job is, in one line, e.g. Website rebuild, phase one"
    },
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "The client the work is delivered to, as named on the reference document"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO code the deliverables are priced in. Defaults to the shared business profile's currency"
    },
    "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_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"
    },
    "reference_kind": {
      "enum": [
        "quote",
        "work_order",
        "change_order"
      ],
      "type": "string",
      "description": "What the reference is. Inferred from the id when omitted: WO- is a work order, CO- a change order, anything else a quote"
    }
  },
  "additionalProperties": false
}
delivery_schedule_create annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
deliverable_add — Add a dated deliverable
Advertised by the server during the last successful anonymous check.

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.

deliverable_add input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "schedule",
    "description",
    "due_date"
  ],
  "properties": {
    "note": {
      "type": "string",
      "maxLength": 2000
    },
    "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"
    },
    "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"
    },
    "tax_rate": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "VAT percent for this deliverable, overriding the shared business profile's default"
    },
    "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"
    },
    "value_minor": {
      "type": "integer",
      "maximum": 1000000000000,
      "minimum": 0,
      "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"
    },
    "duplicate_ok": {
      "type": "boolean",
      "description": "Add it even though this schedule already carries the same description due on the same day. Default false"
    }
  },
  "additionalProperties": false
}
deliverable_add annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
deliverable_status — Move a deliverable along
Advertised by the server during the last successful anonymous check.

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.

deliverable_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "schedule",
    "deliverable",
    "status"
  ],
  "properties": {
    "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"
    },
    "status": {
      "enum": [
        "in_progress",
        "delivered",
        "accepted"
      ],
      "type": "string",
      "description": "The status to move to"
    },
    "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"
    }
  },
  "additionalProperties": false
}
deliverable_status annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
deliverable_delete — Delete a planned deliverable
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

deliverable_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "schedule",
    "deliverable"
  ],
  "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"
    }
  },
  "additionalProperties": false
}
deliverable_delete annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
delivery_schedule_get — Show one delivery schedule
Advertised by the server during the last successful anonymous check.

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.

delivery_schedule_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "schedule"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Read the schedule as at this date, YYYY-MM-DD. Defaults to today"
    },
    "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"
    }
  },
  "additionalProperties": false
}
delivery_schedule_get annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delivery_schedule_list — List delivery schedules
Advertised by the server during the last successful anonymous check.

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.

delivery_schedule_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Read the schedule as at this date, YYYY-MM-DD. Defaults to today"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Maximum schedules returned, default and ceiling 500"
    },
    "state": {
      "enum": [
        "open",
        "complete"
      ],
      "type": "string",
      "description": "open for a job with a deliverable that is not yet accepted, complete for one where every deliverable is"
    },
    "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"
    }
  },
  "additionalProperties": false
}
delivery_schedule_list annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delivery_schedule_delete — Delete an empty schedule
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delivery_schedule_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "schedule"
  ],
  "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"
    }
  },
  "additionalProperties": false
}
delivery_schedule_delete annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
late_report — What is late as at a date
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

late_report input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "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"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Maximum rows per section, default and ceiling 500"
    },
    "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"
    },
    "include_delivered_late": {
      "type": "boolean",
      "description": "Include what was handed over after its due date but is no longer outstanding. Default true"
    }
  },
  "additionalProperties": false
}
late_report annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delivery_schedule_document — Delivery schedule document
Advertised by the server during the last successful anonymous check.

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.

delivery_schedule_document input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "schedule"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Read the schedule as at this date, YYYY-MM-DD. Defaults to today"
    },
    "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"
    }
  },
  "additionalProperties": false
}
delivery_schedule_document annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
milestone_payload — Invoice payload for accepted milestones
Advertised by the server during the last successful anonymous check.

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.

milestone_payload input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "schedule"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "maxLength": 10,
      "description": "Bill what had been accepted by this date, YYYY-MM-DD. Defaults to today"
    },
    "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"
    },
    "tax_rate": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "VAT percent for deliverables with no rate of their own, overriding the shared business profile's default"
    },
    "issue_date": {
      "type": "string",
      "maxLength": 10,
      "description": "The invoice issue date, YYYY-MM-DD. Default today"
    }
  },
  "additionalProperties": false
}
milestone_payload annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
license_status — License status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

license_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
license_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_activate — Activate license
Advertised by the server during the last successful anonymous check.

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.

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

Prompts

2 advertised

upgrade_to_pro — Explain the upgrade

Advertised by the server during the last successful anonymous check.

Explain what Pro on the delivery-schedule server costs and exactly what the user has to do, without leaving the conversation.

feature
The capped feature that prompted this, if there was one
run_the_schedule — Plan the deliveries and report what is late

Advertised by the server during the last successful anonymous check.

Open a schedule against a quote, work order or change order, add the dated deliverables, record each hand-over and sign-off, and bill the accepted milestones.

reference
The quote, work order or change order id, e.g. WO-2026-0001, Q-2026-0003 or CO-2026-0001 (required)

Resources

2 advertised

pricing — Pricing and upgrade

Advertised by the server during the last successful anonymous check.

What delivery-schedule costs, what Pro unlocks, the checkout link that carries this connection's token, and the one step a person has to take. Machine-readable; read it before telling a user how to lift a free-tier cap.

pricing URI
pricing://delivery-schedule

MIME type: application/json

contract — The status machine, why late is not stored, the two scales and the free tier

Advertised by the server during the last successful anonymous check.

The four stored statuses and the legal moves, how lateness is derived from as_of, the two payload scales, the free-tier limits and the one document this server writes.

contract URI
deliveryschedule://contract

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (7 of 7 answered).

  1. 2026-11-02: 3 of 3 checks answered
  2. 2026-11-03: 4 of 4 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1621 ms
95th percentile latency
1621 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · repository · passed · metadata changed · updated
  • · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
  • · probe · passed · 1621 ms · metadata changed · 12 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mcp-delivery-schedule https://mcp.zovo.one/mcp/delivery-schedule

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mcp-delivery-schedule --url https://mcp.zovo.one/mcp/delivery-schedule

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mcp-delivery-schedule in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mcp-delivery-schedule": {
      "url": "https://mcp.zovo.one/mcp/delivery-schedule"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mcp-delivery-schedule": {
      "type": "streamableHttp",
      "url": "https://mcp.zovo.one/mcp/delivery-schedule",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mcp-delivery-schedule and inspect its tools.
VS Code configuration
{
  "servers": {
    "mcp-delivery-schedule": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/delivery-schedule"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mcp-delivery-schedule https://mcp.zovo.one/mcp/delivery-schedule

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "mcp-delivery-schedule": {
      "url": "https://mcp.zovo.one/mcp/delivery-schedule"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mcp-delivery-schedule": {
      "serverUrl": "https://mcp.zovo.one/mcp/delivery-schedule"
    }
  }
}

Let your agent find its tools

Find servers like MCP Delivery Schedule from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.