Skip to main content
Glama
jordanburke

temporal-mcp-server

temporal-mcp-server

npm version

MCP-Server für Zeit-, Zeitzonen- und Dauerwerkzeuge.

Führen Sie ihn lokal über stdio aus (Claude Desktop, Claude Code, jeder lokale MCP-Client), lokal über HTTP oder nutzen Sie die gehostete Instanz – dieselben Werkzeuge, derselbe Code, drei Möglichkeiten, ihn auszuführen.

Eine öffentliche Instanz läuft auf Cloudflare Workers unter https://time.somamcp.com/mcp:

claude mcp add --transport http temporal https://time.somamcp.com/mcp

Basiert auf somamcp, das die MCP-Infrastruktur, Telemetrie sowie Health-/Introspections-Endpunkte für beide Laufzeiten bereitstellt. Die Zeitlogik ist rein und funktional und verwendet functype.

Werkzeuge

Tool

Zweck

get_current_time

Aktuelle Zeit als Epoche, UTC-ISO-8601 und Wanduhrzeit in jeder IANA-Zeitzone

convert_timezone

Stellt einen ISO-8601-Zeitstempel in einer Zielzeitzone dar

add_duration

Addiert oder subtrahiert eine ISO-8601-Dauer mit kalenderbewusster Monatsarithmetik

time_between

Verstrichene Zeit zwischen zwei Zeitstempeln, in ganzen Einheiten plus einer lesbaren Zusammenfassung

somamcp registriert außerdem ein info-Werkzeug und die Endpunkte /health, /health/detail, /info und /dashboard.

Wissenswertes Verhalten

Monatsarithmetik begrenzt statt überzulaufen. add_duration auf 2026-01-31 mit P1M gibt 2026-02-28 zurück, nicht 2026-03-03. Das Hinzufügen von "einem Monat" zum Ende eines langen Monats landet am Ende des kurzen.

Offsets werden pro Zeitpunkt aufgelöst, nicht pro Zone. America/New_York meldet im August -04:00 und im Januar -05:00. Die Sommerzeit stammt aus der tz-Datenbank der Laufzeit, daher gibt es hier keine Offsettabelle, die veralten könnte.

Fehler enthalten einen Hinweis. Eine unbekannte Zeitzone gibt den ungültigen Wert und das erwartete Format zurück, sodass ein aufrufender Agent sich selbst korrigieren kann, statt erneut zu raten.

Related MCP server: mcp-datetimeday

Als lokaler MCP-Server ausführen

Stdio ist der Standardmodus und der Modus, den lokale Clients erwarten. Es wird nichts gehostet, nichts lauscht auf einem Port – Ihr Client startet den Prozess und kommuniziert über stdin/stdout mit ihm.

Claude Code

claude mcp add temporal -- npx -y temporal-mcp-server

Claude Desktop

Fügen Sie zu claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "temporal": {
      "command": "npx",
      "args": ["-y", "temporal-mcp-server"]
    }
  }
}

Auf macOS befindet sich diese Datei unter ~/Library/Application Support/Claude/claude_desktop_config.json; unter Windows unter %APPDATA%\Claude\claude_desktop_config.json. Starten Sie Claude Desktop nach der Bearbeitung neu.

Aus einem Klon ausführen

Wenn Sie nicht über npm gehen möchten:

pnpm install
pnpm build
pnpm start          # stdio

Dann weisen Sie Ihren Client auf den erstellten Einstiegspunkt:

claude mcp add temporal -- node /absolute/path/to/temporal-mcp-server/dist/node.js
{
  "mcpServers": {
    "temporal": {
      "command": "node",
      "args": ["/absolute/path/to/temporal-mcp-server/dist/node.js"]
    }
  }
}

Das Paket installiert außerdem eine temporal-mcp-server-Binärdatei, sodass Sie bei einer globalen Installation (npm i -g temporal-mcp-server) diesen Namen direkt als Befehl verwenden können.

Funktionsprüfung

Der Server spricht JSON-RPC auf stdout, Sie können ihn also von Hand steuern:

printf '%s\n%s\n%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"1.0.0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_current_time","arguments":{"timezone":"Asia/Tokyo"}}}' \
  | node dist/node.js

Nur JSON-RPC geht an stdout; Logs gehen an stderr, daher ist Piping sicher.

Lokal über HTTP ausführen

Für Clients, die streambares HTTP statt stdio sprechen:

pnpm start:http     # http://localhost:3333/mcp — override the port with PORT

Dies ist derselbe Server und dieselben Werkzeuge; nur der Transport unterscheidet sich.

Remote auf Cloudflare Workers ausführen

pnpm cf:dev         # local workerd runtime
pnpm cf:deploy      # build + edge-safety check + deploy

cf:deploy führt zuerst pnpm build aus, was check:worker einschließt – ein Bundle mit einem Node-Builtin schlägt also fehl, bevor etwas Cloudflare erreicht.

Kontinuierliche Bereitstellung

Deployments laufen über Cloudflare Workers Builds statt über GitHub Actions, sodass überhaupt kein Cloudflare-API-Token in GitHub gespeichert wird – Cloudflare verbindet sich über seine eigene GitHub-App mit dem Repository.

Richten Sie es einmal im Dashboard ein (Workers & Pages → temporal-mcp-server → Settings → Build):

Feld

Wert

Deploy-Befehl

pnpm cf:deploy

Build-Befehl

(leer lassen – cf:deploy baut)

Root-Verzeichnis

(Repository-Root)

Indem der Deploy-Befehl auf ein Paketskript zeigt, bleibt die Gate-Logik in der Versionskontrolle; das Dashboard enthält eine stabile Zeile. Der Worker-Name im Dashboard muss mit name in wrangler.jsonc übereinstimmen (temporal-mcp-server), sonst schlägt der Build fehl.

Das Build-Image enthält pnpm und berücksichtigt .nvmrc (unseres pinnt Node 24). Nicht-Produktions-Branches verwenden standardmäßig npx wrangler versions upload, sodass Branch-Pushes Vorschauversionen erzeugen, ohne die Live-Bereitstellung zu berühren.

Der MCP-Endpunkt ist unter /mcp. Um ein Bearer-Token zu verlangen:

wrangler secret put MCP_AUTH_TOKEN

Wenn MCP_AUTH_TOKEN gesetzt ist, erhalten nicht authentifizierte Aufrufe an /mcp eine 401. Wenn Sie es nicht setzen, ist der Endpunkt öffentlich – für eine Uhr vernünftig, für vieles andere nicht.

Optionale vars: GIT_COMMIT und ENVIRONMENT werden vom info-Werkzeug und /info angezeigt.

Verbinden eines Clients mit dem bereitgestellten Worker

Die öffentliche Instanz wird über eine benutzerdefinierte Domain bereitgestellt:

claude mcp add --transport http temporal https://time.somamcp.com/mcp

Mit einem gesetzten Token übergeben Sie es als Header:

claude mcp add --transport http temporal https://time.somamcp.com/mcp \
  --header "Authorization: Bearer $MCP_AUTH_TOKEN"

Health-Check: https://time.somamcp.com/health.

pnpm cf:dev liefert dasselbe unter http://localhost:8787/mcp, sodass Sie vor dem Deployment einen Client auf eine lokale workerd-Instanz richten können.

Warum der Worker somamcp/edge importiert

Das Root-Barrel von somamcp exportiert Helfer, die node:fs importieren. Wenn man es aus einem Worker importiert, zieht das Node-Builtins in das Bundle. src/worker.ts importiert daher somamcp/edge, und pnpm check:worker lässt den Build fehlschlagen, wenn ein node:-Import, ein nacktes Node-Builtin oder der Root-Spezifizierer somamcp das Worker-Bundle erreicht.

Die Prüfung durchläuft den tatsächlichen Importgraphen von dist/worker.js, anstatt Dateinamen abzugleichen – der Bundler hebt Code, der mit dem Node-Einstieg geteilt wird, in einen Chunk mit generiertem Namen an, und ein Dateinamen-Glob würde genau die Datei überspringen, die am wahrscheinlichsten ein Leck enthält.

nodejs_compat ist in wrangler.jsonc bewusst nicht aktiviert. Falls jemals ein Node-Builtin auftaucht, sollte der Build laut scheitern, statt stillschweigend ersetzt zu werden.

Der alias-Block in wrangler.jsonc

xsschema (transitiv über fastmcp) testet jede Schema-Bibliothek, die es unterstützt – valibot, effect, sury – per dynamischem Import. Wir verwenden nur zod, daher werden diese Zweige nie ausgeführt, aber esbuild muss die Spezifizierer trotzdem auflösen. Sie werden auf ein leeres Modul abgebildet, statt drei ungenutzte Bibliotheken zu installieren.

Architektur

src/
  clock.ts    pure time logic — Either<TemporalError, T>, no I/O, no globals
  tools.ts    MCP tool registration; takes a server, creates none
  index.ts    library surface (runtime-agnostic)
  node.ts     entry: somamcp      -> stdio + httpStream
  worker.ts   entry: somamcp/edge -> export default { fetch }

registerTemporalTools(server) nimmt den Server entgegen, statt einen zu bauen, sodass beide Einstiegspunkte identische Werkzeuge registrieren. Nichts in clock.ts, tools.ts oder index.ts berührt process, das Dateisystem oder ein Node-Builtin.

Fehler sind Werte. Jede fehlbare Funktion in clock.ts gibt Either<TemporalError, T> zurück; die Werkzeugebene faltet ein Left in ein MCP-Fehlerergebnis. Nichts hängt vom Stack-Unwinding ab, wodurch dieselbe Logik auf beiden Laufzeiten unverändert läuft.

Entwicklung

pnpm validate       # format + lint + typecheck + test + build
pnpm test           # 34 tests
pnpm check:worker   # verify the worker bundle is edge-safe

test/worker.spec.ts treibt echte Request-Objekte durch den fetch-Handler des Workers über das MCP-Wire-Protokoll, sodass Integrationsfehler bereits in der CI auftauchen statt nach einem Deployment.

Lizenz

MIT

Available Tools

5 tools
add_durationA

Add an ISO-8601 duration to a timestamp, in a timezone. Date units (Y/M/D) are calendar-aware: P1D across a DST boundary keeps the same wall-clock time the next day, and P1M on Jan 31 clamps to the end of February. Time units (H/M/S) are exact elapsed time, so PT24H really is 24 hours. Prefix the duration with '-' to subtract.

ParametersJSON Schema
NameRequiredDescriptionDefault
durationYesISO-8601 duration, e.g. 'P1D', 'PT30M', 'P1Y2M3DT4H5M6S', or '-P1W'.
timezoneNoIANA timezone governing the arithmetic — calendar units are applied to this zone's wall clock, and a timestamp with no 'Z' or offset is read as wall-clock time here. Defaults to UTC.
isoTimestampYesISO-8601 timestamp to shift.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the behavioral disclosure burden. It explains DST boundary behavior, month-end clamping, exact elapsed time for time units, and the '-' subtraction prefix. This is exemplary transparency for a pure arithmetic tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core action, then efficiently details edge-case behavior. Every sentence adds value; there is no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderately complex tool with no annotations and no output schema, the description covers the important behavioral nuances (DST, month-end, subtraction) thoroughly. It does not mention return value format or error cases, but those are relatively predictable for this operation, so the gap is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by explaining how duration units behave (calendar-aware vs exact elapsed time) and how timezone affects wall-clock arithmetic, which enriches the parameter meanings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Add an ISO-8601 duration to a timestamp, in a timezone.' It clearly distinguishes this arithmetic tool from siblings like time_between (difference), convert_timezone (zone conversion), and get_current_time (current time).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when the tool is appropriate—duration arithmetic with calendar-aware behavior—but it does not explicitly name alternatives or state when not to use it. Sibling tool names imply the differentiation, but the description itself offers no direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_timezoneB

Render an ISO-8601 timestamp as wall-clock time in a target timezone.

ParametersJSON Schema
NameRequiredDescriptionDefault
isoTimestampYesISO-8601 timestamp to convert, e.g. '2026-08-17T14:30:00Z'.
sourceTimezoneNoIANA timezone used to interpret `isoTimestamp` when it carries no 'Z' or offset. Ignored otherwise. Defaults to UTC.
targetTimezoneYesIANA timezone identifier to render in.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention how source timezones are handled, DST behavior, return format, or error cases, leaving important operational details implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core action. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with full schema coverage, the description is minimally adequate. However, without annotations or an output schema, it leaves the return format and the optional sourceTimezone edge cases unstated, which would help the agent use the tool more confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well-documented. The description adds no additional parameter-specific meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Render') and clearly names both the input (ISO-8601 timestamp) and the desired outcome (wall-clock time in a target timezone). This distinguishes it from sibling tools like get_current_time and time_between.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, and no exclusions or prerequisites. It simply describes the operation without contextualizing it against siblings such as add_duration or time_between.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_timeA

Return the current time as an epoch, a UTC ISO-8601 timestamp, and the wall-clock time in a given timezone.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoIANA timezone identifier, e.g. 'America/New_York'. Defaults to UTC.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns time in three formats and accepts an optional timezone, but it does not explicitly state that the operation is read-only, non-destructive, or side-effect-free. For a simple read tool, this is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence (18 words) that is front-loaded with the verb 'Return'. Every word contributes value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description fully explains what the tool returns (epoch, ISO-8601 timestamp, wall-clock time in timezone). No additional information is necessary for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the only parameter 'timezone' already has a description including 'Defaults to UTC'). The tool description adds no new information beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Return' and the resource 'current time' with specific outputs (epoch, ISO-8601 timestamp, wall-clock time in timezone). It distinguishes itself from sibling tools like convert_timezone and time_between by focusing on the current moment rather than conversions or calculations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives (e.g., convert_timezone, time_between). There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infoA
Read-only

Returns identity and build information for this server (name, version, build commit, runtime, capability counts)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the description's disclosure of a read operation is consistent. It adds value by specifying the exact return content (name, version, build commit, runtime, capability counts), which is not captured in the annotations. No behavioral contradictions or hidden effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the purpose ('Returns identity and build information for this server') and immediately lists the specific fields. Every word earns its place; there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and is read-only, the description fully covers what the agent needs to know: what it returns (identity and build info with listed fields). The context of sibling tools is clear, and no additional information is needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so the baseline is 4. The description does not need to explain parameters since there are none. It adds no additional parameter information but none is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool returns 'identity and build information for this server' and lists the specific fields (name, version, build commit, runtime, capability counts). This clearly distinguishes it from the sibling tools, which are all time-related operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. However, the sibling tools are all time-focused (get_current_time, convert_timezone, etc.), so the context implies this is the tool for server info. No explicit guidance on when not to use it is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

time_betweenA

Exact elapsed time between two ISO-8601 timestamps, broken into days/hours/minutes/seconds plus a human-readable summary. All components share one sign, so they sum correctly; direction is 'past', 'future', or 'same'.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesEnd of the interval, as an ISO-8601 timestamp.
fromYesStart of the interval, as an ISO-8601 timestamp.
timezoneNoIANA timezone used to interpret timestamps that carry no 'Z' or offset. Defaults to UTC.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses output breakdown (days/hours/minutes/seconds), a human-readable summary, consistent sign behavior, and a direction field. It does not cover edge cases like invalid timestamps or DST, but the disclosed details give good behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both information-dense. The first delivers the core purpose, the second highlights the sign and direction semantics. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description covers the main return components and behaviors. The tool is relatively simple, and the described details are sufficient for an agent to understand what will come back. Minor gaps like exact return type or error handling prevent a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no extra parameter-level meaning beyond restating the concept of the interval; baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool computes 'exact elapsed time between two ISO-8601 timestamps', which is a specific verb-resource combination. It also distinguishes from siblings like add_duration or convert_timezone by focusing purely on time intervals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose is self-evident: when an agent needs elapsed time between two timestamps, this is the tool. However, it does not explicitly call out when not to use it or mention alternatives, so it misses the bar for explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.2.2
    • Changedadd_duration1 field changed
      • changedInput schema / properties / timezone / description
        Previous value: -"IANA timezone identifier, e.g. 'America/New_York'. Defaults to UTC."New value: +"IANA timezone governing the arithmetic — calendar units are applied to this zone's wall clock, and a timestamp with no 'Z' or offset is read as wall-clock time here. Defaults to UTC."
    • Changedconvert_timezone1 field changed
      • addedInput schema / properties / sourceTimezone
        Added value: +{
        +  "description": "IANA timezone used to interpret `isoTimestamp` when it carries no 'Z' or offset. Ignored otherwise. Defaults to UTC.",
        +  "type": "string"
        +}
    • Changedtime_between1 field changed
      • addedInput schema / properties / timezone
        Added value: +{
        +  "description": "IANA timezone used to interpret timestamps that carry no 'Z' or offset. Defaults to UTC.",
        +  "type": "string"
        +}
  2. 5 tool updatesv0.1.0
    • First observedadd_duration
    • First observedconvert_timezone
    • First observedget_current_time
    • First observedinfo
    • First observedtime_between

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: current time, timezone conversion, duration arithmetic, elapsed time, and server info. There is no meaningful overlap or ambiguity between them.

Naming Consistency4/5

Most tools follow a consistent snake_case verb_noun pattern (add_duration, get_current_time, convert_timezone). The exception is 'info', which is a noun rather than a verb phrase, but this is a minor deviation.

Tool Count5/5

Five tools is well-scoped for a focused temporal/time utility server. Each tool provides a distinct, non-redundant capability, and none feel unnecessary.

Completeness4/5

The core temporal workflows are covered: obtaining current time, converting timezones, adding durations, and measuring elapsed time. Missing advanced operations like listing timezones or extracting date components are minor gaps that agents can work around.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    The Time MCP Server is a Model Context Protocol (MCP) server that provides AI assistants and other MCP clients with standardized tools to perform time and date-related operations. This server acts as a bridge between AI tools and a robust time-handling back
    536 npm
    25
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A lightweight MCP server providing comprehensive date, time, and day-of-week information. It supports relative time calculations, timezone conversions, and detailed calendar metadata like week numbers and quarters.
    5
    1
    MIT
  • A
    license
    D
    quality
    C
    maintenance
    A lightweight MCP server that provides date and time tools, including the ability to retrieve current timestamps and parse date strings with IANA timezone support. It enables AI models to interact with the host OS clock and perform temporal calculations via stdio transport.
    3
    7 npm
    7
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    MCP server providing various date/time functions including current time, timezone conversion, and relative time calculations. Supports both local stdio and remote HTTP access via Cloudflare Workers.
    6
    676 npm
    2
    MIT