Dated events into a timeline
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants a timeline chart, a chronology or a history graphic from dated events, with a file to download. Places events to scale by day count (or at even gaps), stacks labels in rows so they do not overlap, draws spans as bars and eras as bands, and returns SVG, PDF (Letter or A4) and CSV links. Reads YYYY, YYYY-MM, YYYY-MM-DD, month names and BC years. Up to 200 events and 20 eras. Does not convert Julian calendar dates, does not research dates, and refuses ambiguous slashed dates unless date_order is given. Do not use for project schedules with task dependencies.
1 to 200 events in any order, e.g. [{"date":"1957-10-04","label":"Sputnik 1"},{"date":"1969-07-20","label":"Moon landing"}].
to_scale (default) places each date by its day count, so gaps are true to time. even puts events at equal gaps in date order.
Chart title, e.g. "Space race".
Optional eras drawn as shaded bands along the axis (up to 20), e.g. [{"label":"Cold War","start":"1947","end":"1991"}].
PDF paper size: letter (default) or a4.
Only for slashed dates such as 03/04/2025: month_first reads March 4, day_first reads 3 April. Without it such dates are refused as ambiguous.
horizontal (default, landscape PDF) or vertical (time runs down the page, portrait PDF). Vertical suits long lists.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http timeline-maker https://timeline-maker.zovo.one/mcp
Use this when the user wants a timeline chart, a chronology or a history graphic from dated events, with a file to download. Places events to scale by day count (or at even gaps), stacks labels in rows so they do not overlap, draws spans as bars and eras as bands, and returns SVG, PDF (Letter or A4) and CSV links. Reads YYYY, YYYY-MM, YYYY-MM-DD, month names and BC years. Up to 200 events and 20 eras. Does not convert Julian calendar dates, does not research dates, and refuses ambiguous slashed dates unless date_order is given. Do not use for project schedules with task dependencies.
| Argument | Type | Description |
|---|---|---|
| scale | string | to_scale (default) places each date by its day count, so gaps are true to time. even puts events at equal gaps in date order. |
| title | string | Chart title, e.g. "Space race". |
| events* | array | 1 to 200 events in any order, e.g. [{"date":"1957-10-04","label":"Sputnik 1"},{"date":"1969-07-20","label":"Moon landing"}]. |
| periods | array | Optional eras drawn as shaded bands along the axis (up to 20), e.g. [{"label":"Cold War","start":"1947","end":"1991"}]. |
| page_size | string | PDF paper size: letter (default) or a4. |
| date_order | string | Only for slashed dates such as 03/04/2025: month_first reads March 4, day_first reads 3 April. Without it such dates are refused as ambiguous. |
| orientation | string | horizontal (default, landscape PDF) or vertical (time runs down the page, portrait PDF). Vertical suits long lists. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"events"
],
"properties": {
"scale": {
"enum": [
"to_scale",
"even"
],
"type": "string",
"description": "to_scale (default) places each date by its day count, so gaps are true to time. even puts events at equal gaps in date order."
},
"title": {
"type": "string",
"maxLength": 120,
"description": "Chart title, e.g. \"Space race\"."
},
"events": {
"type": "array",
"items": {
"type": "object",
"required": [
"date",
"label"
],
"properties": {
"date": {
"type": "string",
"maxLength": 40,
"description": "When it happened: YYYY, YYYY-MM or YYYY-MM-DD, a month name (\"July 1969\", \"20 July 1969\"), or a BC year (\"500 BC\" or -500). \"c. 1500\" marks an approximate date. Example: \"1969-07-20\"."
},
"label": {
"type": "string",
"maxLength": 120,
"description": "Short event name shown on the chart, e.g. \"Moon landing\"."
},
"detail": {
"type": "string",
"maxLength": 500,
"description": "Optional note shown when the event is clicked and in the CSV, e.g. \"Apollo 11, Armstrong and Aldrin\"."
},
"category": {
"type": "string",
"maxLength": 40,
"description": "Optional group used for color and the filter, e.g. \"Space\"."
},
"end_date": {
"type": "string",
"maxLength": 40,
"description": "Last date for a span such as a war or a reign, same formats as date. A year means the whole year. Example: \"1945\"."
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "1 to 200 events in any order, e.g. [{\"date\":\"1957-10-04\",\"label\":\"Sputnik 1\"},{\"date\":\"1969-07-20\",\"label\":\"Moon landing\"}]."
},
"periods": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"maxLength": 40,
"description": "Last date of the era, e.g. \"1991\"."
},
"label": {
"type": "string",
"maxLength": 120,
"description": "Era or phase name, e.g. \"Cold War\"."
},
"start": {
"type": "string",
"maxLength": 40,
"description": "First date of the era, same formats as event dates, e.g. \"1947\"."
}
}
},
"maxItems": 20,
"description": "Optional eras drawn as shaded bands along the axis (up to 20), e.g. [{\"label\":\"Cold War\",\"start\":\"1947\",\"end\":\"1991\"}]."
},
"page_size": {
"enum": [
"letter",
"a4"
],
"type": "string",
"description": "PDF paper size: letter (default) or a4."
},
"date_order": {
"enum": [
"month_first",
"day_first"
],
"type": "string",
"description": "Only for slashed dates such as 03/04/2025: month_first reads March 4, day_first reads 3 April. Without it such dates are refused as ambiguous."
},
"orientation": {
"enum": [
"horizontal",
"vertical"
],
"type": "string",
"description": "horizontal (default, landscape PDF) or vertical (time runs down the page, portrait PDF). Vertical suits long lists."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.