maintenance-schedule

An equipment maintenance schedule and log: service entries, costs, and what is due or overdue.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,700Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (1.33% 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": {
    "maintenance-schedule": {
      "command": "uvx",
      "args": [
        "https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/maintenance-log.mcpb"
      ]
    }
  }
}

Runnable packages

mcpbhttps://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/maintenance-log.mcpb0.22.0stdio

Remote endpoints

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

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡asset_add(name, tag, location, notes, currency)

Add one piece of equipment to the maintenance register: its name, its serial or asset tag, where it lives, and the currency its costs are in. Returns the AST-YYYY-NNNN id. Free tier: 3 assets; logging work on the assets you have is never metered.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 200,
      "description": "What the asset is called, e.g. Lathe, Combi boiler, Van 2, or Studio camera A"
    },
    "tag": {
      "type": "string",
      "maxLength": 200,
      "description": "The serial number or asset tag, e.g. SN-88-4412. Unique across the register: a second asset with the same tag is refused"
    },
    "location": {
      "type": "string",
      "maxLength": 400,
      "description": "Where the asset lives, e.g. Workshop bay 2, or 14 Nowa Street, flat 3"
    },
    "notes": {
      "type": "string",
      "maxLength": 2000,
      "description": "Anything worth keeping with the asset, e.g. Model, warranty end, supplier"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO code the costs are in. Default USD"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
maintenance_log(asset, date, work, cost_cents, technician, ...)

Log work done on an asset: the day, what was done, the cost in whole cents, who did it, and when the next service falls due -- as a date (next_due) or as an interval in days (interval_days), never both. A repair that sets no schedule takes neither. A future work date is refused.

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "type": "string",
      "maxLength": 200,
      "description": "The asset id, e.g. AST-2026-0003, its serial or asset tag, or its name when only one asset has it"
    },
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "The day the work was done, YYYY-MM-DD. A future date is refused"
    },
    "work": {
      "type": "string",
      "maxLength": 2000,
      "description": "What was done, e.g. Oil and filter change, or Annual boiler service"
    },
    "cost_cents": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000000000000,
      "description": "What the work cost in whole cents. 12000 is 120.00. Default 0, for in-house work"
    },
    "technician": {
      "type": "string",
      "maxLength": 200,
      "description": "Who did the work, e.g. Anna, or Acme Heating Ltd"
    },
    "next_due": {
      "type": "string",
      "maxLength": 10,
      "description": "The date the next service falls due, YYYY-MM-DD. Pass either this or interval_days, not both"
    },
    "interval_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 36500,
      "description": "Days after the work date the next service falls due, e.g. 90 for quarterly. Turned into a date once, at log time"
    }
  },
  "required": [
    "asset",
    "date",
    "work"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
maintenance_due(within_days)

The due report across every asset: what is overdue and by how many days, what falls due within the next N days (default 30), what is scheduled later, and what has no schedule at all. Computed from the stored next-due dates against today, at call time. Pro feature.

Input Schema

{
  "type": "object",
  "properties": {
    "within_days": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3650,
      "description": "How far ahead to look, in days. Default 30"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢asset_history(asset)

Read one asset in full by id, tag or name: every log entry in chronological order, the total spend as integer cents with a formatted amount, the last service date, and the next-due date the asset currently lives under. Reads only.

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "type": "string",
      "maxLength": 200,
      "description": "The asset id, e.g. AST-2026-0003, its serial or asset tag, or its name when only one asset has it"
    }
  },
  "required": [
    "asset"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢maintenance_export(from, to, format)

Export maintenance entries dated inside a range. CSV (free): one row per entry, ready for a spreadsheet. Markdown (Pro): one section per asset with its entries, total spend and next due date, ready to paste into notes or a report. Writes nothing.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "Only entries dated on or after this, YYYY-MM-DD. Default: no lower bound"
    },
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Only entries dated on or before this, YYYY-MM-DD. Default: no upper bound"
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "markdown"
      ],
      "description": "csv (default) or markdown. Markdown summaries are a Pro feature"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴asset_remove(asset, confirm)

Remove an asset entered by mistake or sold off. One that carries a maintenance log is refused unless confirm is true, naming what would be lost, because removing it loses the record of work done. The AST number is never reissued.

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "type": "string",
      "maxLength": 200,
      "description": "The asset id, e.g. AST-2026-0003, its serial or asset tag, or its name when only one asset has it"
    },
    "confirm": {
      "type": "boolean",
      "description": "Pass true to remove an asset that carries a maintenance log. The log goes with it; this cannot be undone"
    }
  },
  "required": [
    "asset"
  ],
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools