Skip to main content
Glama

# Chronos Protocol

Python Version MCP Server MCP Server with Tools Development Status standard-readme compliant License: MIT

MCP server providing time intelligence, persistent memory and complete traceability for AI coding agents.

Chronos Protocol transforms AI development workflows by eliminating temporal blindness in automated systems. The MCP server provides complete traceability and session continuity, enabling AI agents to maintain context across sessions while delivering enterprise-grade time tracking, intelligent scheduling, and comprehensive development analytics.

Table of Contents

Related MCP server: ContextStream MCP Server

Background

Core Capabilities

Chronos Protocol addresses critical gaps in AI development workflows through sophisticated time intelligence and persistent memory systems designed specifically for automated coding environments.

System Time First Approach

Chronos Protocol transforms how automated systems handle time by prioritizing your computer's local system time as the intelligent default. No more timezone confusion - just use "system" or "local" and get instant, contextual time awareness that adapts to your environment.

Core Time Intelligence

get_current_time - Temporal Awareness Made Simple

Chronos Protocol prioritizes your computer's local system time as the intelligent default. Most AI IDEs already embed system time in their prompts, but Chronos Protocol provides explicit, structured temporal context that works across all MCP clients.

Get standardized timestamps with system time context:

  • System Time Priority: Uses your local system time as the intelligent default

  • Cross-Timezone Collaboration: Show local time alongside team timezone for global projects

  • Temporal Context: AI agents always know "when" they're operating for better decision-making

convert_time - Smart Timezone Translation

Eliminate timezone calculation errors with intelligent conversion:

  • Meeting Scheduling: Convert times between global timezones

  • Release Planning: Coordinate deployments across regions

  • Time Difference Analysis: Calculate timezone offsets with DST handling

Activity Intelligence System

start_activity_log - Intelligent Context Initialization

Start sophisticated activity monitoring with unique Activity IDs and rich metadata for agentic development workflows:

  • Autonomous Session Management: Track coding sessions, debugging processes, and feature implementations with persistent context

  • Intelligent Task Analysis: Monitor and learn from task completion patterns to optimize future planning

  • Context Preservation: Maintain precise records for cross-session continuity and seamless task resumption

end_activity_log - Success Documentation & Analytics

Complete activities with automatic duration calculation and rich outcome data for performance intelligence:

  • Self-Performance Analysis: Analyze actual vs. estimated completion times for better future planning accuracy

  • Autonomous Documentation: Document accomplishments and lessons learned for persistent knowledge retention

  • Adaptive Performance: Build historical intelligence on development velocity and success patterns

get_elapsed_time - Real-Time Progress Monitoring

Monitor ongoing activities without interrupting execution flow:

  • Long-Running Task Management: Check progress on extended debugging or complex implementations

  • Intelligent Time Boxing: Monitor and optimize work sessions for maximum efficiency

  • Context Awareness: Track duration of different phases in problem-solving processes

get_activity_logs - Historical Intelligence & Pattern Analysis

Query and analyze development patterns with sophisticated filtering:

  • Autonomous Pattern Recognition: Generate performance reports and identify optimization opportunities

  • Self-Learning Analytics: Identify which task types require more resources and adapt approach accordingly

  • Cross-Project Learning: Leverage experience from different projects to improve overall effectiveness

update_activity_log - Intelligent Activity Management

Modify completed activities with updated insights and corrections:

  • Autonomous Learning: Add insights discovered after task completion for future reference

  • Self-Correction: Fix timing errors or update task descriptions based on new information

  • Continuous Documentation: Update results and learnings as projects evolve and new context emerges

Intelligent Reminder System

create_time_reminder - Contextual Task Scheduling

Set smart reminders linked to your development workflow:

  • Code Review Follow-ups: Never forget to check on pending pull requests

  • Dependency Updates: Schedule regular checks for outdated packages and security patches

  • Release Checkpoints: Set reminders for deployment, testing, and rollback windows

check_time_reminders - Proactive Awareness System

Stay ahead of important tasks with intelligent reminder detection:

  • Upcoming Deadlines: Get advance warning of approaching project milestones

  • Maintenance Windows: Be reminded of scheduled system maintenance or deployments

  • Team Coordination: Never miss collaborative sessions or important check-ins

Problem Statement

Solves Real Problems

  • Eliminates AI Temporal Blindness: Your AI agents can actively check current time and make time-aware decisions instead of relying solely on embedded system time in the its System Prompt

  • Reduces Context Switching: AI agents can track time without interrupting your flow

  • Cross-Project Continuity: Start tracking in Project A, finish in Project B - everything stays connected

  • Developer-Centric Design: Built specifically for agentic coding workflows, not generic time tracking

Architecture

Flexible Storage Architecture

Chronos Protocol supports dual storage modes to fit your development workflow:

Centralized Mode (Traditional)

  • Single database for all projects

  • Cross-project analytics and historical intelligence

  • Perfect for: Teams wanting unified time tracking across all work

  • AI Framework Integration: Persistent memory works across all projects

Per-Project Mode (Dynamic)

  • Automatic project detection with zero configuration

  • Isolated storage per project ({project-root}/chronos-data/time_server_data.json)

  • Perfect for: Individual developers who prefer project-specific tracking

  • Zero Setup: Just use --storage-mode per-project and it works everywhere

Context Engineering Framework Integration

Chronos Protocol's activity logging system provides persistent memory for AI frameworks like Claude Task Master, Agent OS, and BMAD Method, enabling enhanced task tracking, centralized activity logging, and historical analysis with persistent Activity IDs across agent operations.

Integration Guide: For AI coding agents, refer to the sample prompt template in AGENTS.md which provides Cursor Rules that can be integrated with your existing workflow rules. This template demonstrates the complete activity logging protocol with customizable task list filename patterns.

Persistent Memory Benefits

  • Cross-Session Continuity: Tasks started in one session can be tracked and completed in another

  • Framework-Agnostic Storage: JSON database works with any AI framework that can append Activity IDs

  • Rich Context Preservation: Full activity metadata including duration, outcomes, and custom tags

  • Historical Intelligence: AI frameworks can query past activities for pattern recognition and optimization

Install

Prerequisites

  • Python: 3.10 or higher

  • MCP Support: AI client with Model Context Protocol support

Installation Steps

# 1. Clone the repository
git clone https://github.com/n0zer0d4y/chronos-protocol.git
cd chronos-protocol

# 2. Install dependencies
pip install -r requirements.txt

# 3. Install in editable mode (required for MCP)
pip install -e .

# 4. Verify installation
python -m chronos_protocol --help

After installation, configure Chronos Protocol in your MCP client using the appropriate configuration schema in the Configuration section.

Usage

Basic Time Intelligence Operations

Get Current Time with Context

# Get current time in your system's timezone
get_current_time(timezone="system")
# Returns: Current time with full timezone context

Smart Timezone Conversion

# Convert meeting time across timezones
convert_time(
  source_timezone="America/New_York",
  time="15:00",
  target_timezone="Europe/London"
)
# Returns: Converted time with timezone difference

Activity Intelligence Workflow

Complete Development Session Tracking

# 1. Start activity logging
activity_id = start_activity_log(
    activityType="debugging",
    task_scope="feature-implementation",
    description="Fix authentication module login flow"
)

# 2. AI agent works on the task...
# Monitor progress with get_elapsed_time(activity_id)

# 3. Complete with results
end_activity_log(
    activity_id,
    result="Authentication module completed successfully"
)

Intelligent Task Analysis

# Get activity history for pattern analysis
activities = get_activity_logs(
    activityType="debugging",
    task_scope="feature-implementation"
)

# AI learns from patterns and timing
for activity in activities:
    analyze_completion_time(activity)
    identify_successful_patterns(activity)

Cross-Session Continuity

# Check for ongoing activities
ongoing = get_activity_logs(status="ongoing")
if ongoing:
    # Resume where you left off
    continue_activity(ongoing[0]["activityId"])

# Learning from history
debug_sessions = get_activity_logs(
    activityType="debugging",
    start_date="2024-01-01"
)

AI Framework Integration Example

# Example: AI Framework Integration
activity_id = start_activity_log(
    activityType="framework_task",
    task_scope="feature-implementation",
    description="AI agent implementing authentication module",
    tags=["ai-agent", "claude-task-master"]
)

# Your framework stores the activity_id with task data
# Later: end_activity_log(activity_id, result="Authentication module completed")

This creates an intelligent feedback loop where AI frameworks learn from historical task performance and timing patterns!

API

Time Intelligence Functions

get_current_time(timezone)

Get standardized timestamps with system time context.

Parameters:

  • timezone (string): Target timezone. Use "system" or "local" for user's local time, or IANA names like "America/New_York", "Europe/London", "UTC"

Returns: Current time with full timezone context and metadata

convert_time(source_timezone, time, target_timezone)

Convert time between timezones with intelligent handling of DST.

Parameters:

  • source_timezone (string): Source timezone

  • time (string): Time in 24-hour format (HH:MM)

  • target_timezone (string): Target timezone

Returns: Converted time with timezone difference information

Activity Intelligence Functions

start_activity_log(activityType, task_scope, description, tags?)

Initialize activity monitoring with unique Activity ID and rich metadata.

Parameters:

  • activityType (string): Type of activity (e.g., 'debugging', 'feature-implementation')

  • task_scope (string): Scope of the task from predefined options

  • description (string): Detailed description of the activity

  • tags (array, optional): Array of strings for categorizing the activity

Returns: Unique Activity ID for tracking

end_activity_log(activityId, result?, notes?)

Complete activity with automatic duration calculation and rich outcome data.

Parameters:

  • activityId (string): Unique identifier of the activity to end

  • result (string, optional): Result or outcome of the activity

  • notes (string, optional): Additional notes about the activity

Returns: Completed activity with duration and timestamps

get_elapsed_time(activityId)

Monitor ongoing activities without interrupting execution flow.

Parameters:

  • activityId (string): Unique identifier of the activity

Returns: Elapsed time information for the specified activity

get_activity_logs(filters?)

Query and analyze development patterns with sophisticated filtering.

Parameters:

  • filters (object, optional): Filtering options including:

    • activityType (string): Filter by activity type

    • task_scope (string): Filter by task scope

    • startDate (string): Filter by start date (ISO 8601 format)

    • endDate (string): Filter by end date (ISO 8601 format)

    • limit (integer): Maximum number of logs to return

Returns: Array of activity logs matching the criteria

update_activity_log(activityId, updates)

Modify completed activities with updated insights and corrections.

Parameters:

  • activityId (string): Unique identifier of the activity to update

  • updates (object): Object containing fields to update

Returns: Updated activity log

Reminder System Functions

Create time-based reminder using system time for scheduling.

Parameters:

  • reminderTime (string): Time for the reminder (ISO 8601 format with timezone)

  • message (string): Reminder message

  • relatedTaskId (string, optional): ID of related task or activity

Returns: Created reminder with unique identifier

check_time_reminders(upcomingMinutes?)

Check for due or upcoming time reminders.

Parameters:

  • upcomingMinutes (integer, optional): Check for reminders due within this many minutes (default: 60)

Returns: Array of due and upcoming reminders

Configuration

Chronos Protocol supports two storage modes:

Mode

Use Case

Data Location

Per-Project

Individual project isolation

{project-root}/chronos-data/time_server_data.json

Centralized

Cross-project analytics

Custom directory via --data-dir

ID Format Options

Format

Example

Length

Use Case

custom

28RCD6M8A64P

12 chars

Ultra-compact for task lists

short

vytxeTZskVKR7C7WgdSP3d

22 chars

Balanced readability

uuid

bb401d9e-1c3e-41d4-a201-733baa48c13d

36 chars

Legacy compatibility

Important: Type Parameter Warning

DO NOT add "type": "stdio" to your MCP configuration.

Why this causes failures:

  • Chronos Protocol is hardcoded to use stdio transport

  • When clients add "type": "stdio", it can interfere with variable resolution

  • Variable substitution happens before type validation

  • Results in invalid paths like C:\Program Files\VSCode\${workspaceFolder}

Correct approach:

  • Let Chronos Protocol handle transport selection automatically

  • Only specify "type" if your MCP client requires it AND you're not using variables

  • Most MCP clients work perfectly without explicit type declaration

VS Code Extensions and forks

Roo Code Extension

{
  "mcpServers": {
    "chronos-protocol": {
      "command": "python",
      "args": [
        "-m",
        "chronos_protocol",
        "--storage-mode",
        "per-project",
        "--project-root",
        "${workspaceFolder}",
        "--id-format",
        "custom"
      ]
    }
  }
}

VS Code Forks

Cursor & Trae

{
  "mcpServers": {
    "chronos-protocol": {
      "command": "python",
      "args": [
        "-m",
        "chronos_protocol",
        "--storage-mode",
        "per-project",
        "--project-root",
        "${workspaceFolder}",
        "--id-format",
        "custom"
      ]
    }
  }
}

CLI Clients

Claude Code & Gemini CLI

{
  "chronos-protocol": {
    "command": "python",
    "args": [
      "-m",
      "chronos_protocol",
      "--storage-mode",
      "per-project",
      "--id-format",
      "custom"
    ]
  }
}

Limited Support Clients

Cline & Qoder

Known Limitations:

  • Does not support ${workspaceFolder} variable substitution

  • Cannot use per-project storage mode

  • Will fail if --project-root argument is included

  • Limited to centralized storage only

Working Configuration:

{
  "chronos-protocol": {
    "disabled": false,
    "timeout": 60,
    "command": "python",
    "args": [
      "-m",
      "chronos_protocol",
      "--storage-mode",
      "centralized",
      "--data-dir",
      "/path/to/centralized/chronos-data",
      "--id-format",
      "custom"
    ]
  }
}

Do NOT add:

  • --project-root "${workspaceFolder}" (causes failures)

  • "type": "stdio" parameter (see Important section above)

Important: Type Parameter Warning

DO NOT add "type": "stdio" to your MCP configuration

Why this causes failures:

  • Chronos Protocol is hardcoded to use stdio transport

  • When clients add "type": "stdio", it can interfere with variable resolution

  • Variable substitution happens before type validation

  • Results in invalid paths like C:\Program Files\VSCode\${workspaceFolder}

Correct approach:

  • Let Chronos Protocol handle transport selection automatically

  • Only specify "type" if your MCP client requires it AND you're not using variables

  • Most MCP clients work perfectly without explicit type declaration

Troubleshooting

Common Issues

"No tools or prompts" Error

Symptoms:

  • MCP server appears connected

  • Tools are not available in the client

  • No error messages visible

Solutions by Client:

Cursor:

  • Ensure --project-root "${workspaceFolder}" is included

  • Check that workspace is properly opened

Claude Code:

  • Remove --project-root argument (use default detection)

  • Do not add "type": "stdio" parameter

Cline/Qoder:

  • Use centralized storage mode

  • Remove all workspace variables

  • Set explicit --data-dir path

Variable Substitution Issues

Problem: ${workspaceFolder} not resolving Affected Clients: Cline, Qoder, some Claude Code configurations

Solution:

{
  "chronos-protocol": {
    "command": "python",
    "args": [
      "-m",
      "chronos_protocol",
      "--storage-mode",
      "centralized",
      "--data-dir",
      "/explicit/path/to/chronos-data"
    ]
  }
}

Storage Permission Errors

Error: Cannot create chronos-data directory Solution:

  • Ensure write permissions in project directory

  • For per-project mode, check workspace permissions

  • For centralized mode, verify --data-dir accessibility

Python Module Not Found

Error: ModuleNotFoundError: No module named 'chronos_protocol' Solution:

# Ensure editable installation
pip install -e .
   # Verify installation
python -m chronos_protocol --help

Client-Specific Issues

VS Code Extensions

  • Ensure MCP extension is enabled

  • Check VS Code version compatibility

  • Verify workspace is properly opened

VS Code Forks

  • Some forks may have custom MCP implementations

  • Check fork-specific documentation

  • Report issues to fork maintainers

CLI Clients

  • Ensure proper JSON formatting

  • Check file permissions for configuration files

  • Verify Python environment setup

Performance Optimization

Large Activity Logs

  • Use appropriate ID format for your use case

  • Consider centralized storage for cross-project analytics

  • Archive old activities periodically

Memory Usage

  • Per-project mode isolates memory usage

  • Centralized mode may accumulate data over time

  • Monitor storage directory sizes

Getting Help

Community Support

  • Check GitHub issues for similar problems

  • Provide detailed error logs and configuration

  • Include client version and platform information

Debug Information

# Get detailed server logs
python -m chronos_protocol --verbose

# Check MCP client logs
# (varies by client - check client documentation)

Contributing

Development Setup

# Fork and clone
git clone https://github.com/n0zer0d4y/chronos-protocol.git
cd chronos-protocol

# Set up development environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install -e .

# Run tests
pytest tests/

# Run with debug logging
python -m chronos_protocol --debug

Code Standards

  • Python: Follow PEP 8 style guidelines

  • Documentation: Use Google-style docstrings

  • Testing: Maintain >90% test coverage

  • Commits: Use conventional commit format

Testing MCP Clients

When adding support for new MCP clients:

  1. Test with both storage modes

  2. Verify all tools work correctly

  3. Check error handling scenarios

  4. Update configuration documentation

  5. Add to compatibility matrix

Reporting Bugs

Bug Report Template:

  • MCP client name and version

  • Configuration used

  • Expected vs actual behavior

  • Error logs (if available)

  • Steps to reproduce

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Anthropic for the Model Context Protocol specification

  • MCP Community for client implementations and testing

  • Contributors for their valuable feedback and bug reports


Ready to transform your AI development workflow? Configure Chronos Protocol in your MCP client and start building with complete traceability and session continuity.

Available Tools

9 tools
check_time_remindersC

Check for due or upcoming time reminders

ParametersJSON Schema
NameRequiredDescriptionDefault
upcomingMinutesNoCheck for reminders due within this many minutes (default: 60)

TDQS

C2.9/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 states what the tool does but lacks critical behavioral details: it doesn't specify whether this is a read-only operation, what permissions might be required, how results are returned (e.g., list format, error handling), or if there are rate limits. For a tool with no annotation coverage, this is a significant gap in transparency.

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 extremely concise and front-loaded, consisting of a single, clear sentence that directly states the tool's purpose. There's no wasted language or redundancy, making it easy for an agent to parse quickly. Every word earns its place by conveying essential information without unnecessary elaboration.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't explain what the tool returns (e.g., a list of reminders, success status), error conditions, or behavioral constraints. For a tool that checks data, this omission leaves the agent guessing about the result format and potential side effects, making it inadequate despite the simple parameter schema.

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?

The description adds no parameter-specific information beyond what's already in the input schema, which has 100% coverage for the single parameter 'upcomingMinutes'. The schema fully describes this parameter's purpose, type, and default value. Since the schema does all the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate or add extra semantic context.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('check') and resource ('time reminders'), specifying what it looks for ('due or upcoming'). It distinguishes itself from siblings like 'create_time_reminder' or 'get_current_time' by focusing on checking existing reminders rather than creating or retrieving general time data. However, it doesn't explicitly differentiate from potential overlaps with other reminder-related tools, keeping it from a perfect score.

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. It doesn't mention prerequisites, such as needing existing reminders to check, or compare it to sibling tools like 'get_activity_logs' which might also involve time tracking. There's no explicit when-to-use or when-not-to-use context, leaving the agent to infer usage based on the tool name alone.

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

convert_timeB

Convert time between timezones (defaults to system time for source/target)

ParametersJSON Schema
NameRequiredDescriptionDefault
source_timezoneYesSource timezone. Use 'system' or 'local' for user's local time (Etc/UTC), or IANA names like 'America/New_York', 'UTC'. System time is the most practical default.
target_timezoneYesTarget timezone. Use 'system' or 'local' for user's local time (Etc/UTC), or IANA names like 'Asia/Tokyo', 'UTC'. System time is the most practical default.
timeYesTime to convert in 24-hour format (HH:MM)

TDQS

B3.2/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 mentions default behaviors (system time defaults) but lacks critical details: it doesn't specify the output format (e.g., whether it returns a string, object, or includes date), error handling for invalid inputs, or any rate limits or authentication requirements. For a tool with no annotations, this is a significant gap.

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 extremely concise and front-loaded, consisting of a single sentence that directly states the tool's purpose and key default behavior. Every word earns its place, with no redundant or verbose language, making it efficient and easy to parse.

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

Completeness2/5

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

Given the complexity of time conversion (3 required parameters, no output schema, and no annotations), the description is incomplete. It fails to explain the return value format, error conditions, or practical examples, leaving the agent with insufficient context to use the tool effectively without trial and error.

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?

The input schema has 100% description coverage, providing detailed parameter information (e.g., IANA timezone names, 24-hour format). The description adds minimal value beyond this, only reinforcing the default behavior mentioned in the schema. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Convert time between timezones'. It specifies the verb ('convert') and resource ('time between timezones'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_current_time' or 'get_elapsed_time', which prevents a perfect score.

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 provides some usage context by mentioning defaults ('defaults to system time for source/target'), which implies when to omit parameters. However, it doesn't offer explicit guidance on when to use this tool versus alternatives like 'get_current_time' for current time retrieval or 'get_elapsed_time' for duration calculations, leaving room for ambiguity.

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

create_time_reminderC

Create a time-based reminder using system time for scheduling

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesReminder message
relatedTaskIdNoID of related task or activity
reminderTimeYesTime for the reminder (ISO 8601 format with explicit timezone offset, e.g., '2025-09-11T14:00:00+08:00' for local time or '2025-09-11T14:00:00+00:00' for UTC)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'create' implying a write/mutation operation but doesn't disclose behavioral traits like required permissions, whether reminders are persistent, if they trigger notifications, rate limits, or error conditions. The phrase 'using system time' adds minimal context but leaves key behaviors unspecified for a creation 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 a single, efficient sentence that front-loads the core action ('Create a time-based reminder') with clarifying detail ('using system time for scheduling'). There's zero wasted text, and it directly communicates the tool's function without redundancy.

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

Completeness2/5

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

For a creation tool with no annotations and no output schema, the description is incomplete. It doesn't cover what happens after creation (e.g., success response, reminder ID), error handling, or system dependencies. The high schema coverage helps with inputs, but behavioral and output aspects are lacking, making it inadequate for safe agent use.

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%, with all parameters well-documented in the schema (e.g., reminderTime format details). The description adds no parameter-specific semantics beyond the tool's overall purpose. It doesn't explain relationships between parameters or usage nuances, so it meets the baseline for high schema coverage without adding value.

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

Purpose4/5

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

The description clearly states the verb ('create') and resource ('time-based reminder') with the specific mechanism 'using system time for scheduling'. It distinguishes from siblings like 'check_time_reminders' (read vs. create) and time-related tools like 'get_current_time' (query vs. action). However, it doesn't explicitly differentiate from all siblings like 'start_activity_log' which might also involve time scheduling.

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. It doesn't mention prerequisites, when-not-to-use scenarios, or compare to siblings like 'check_time_reminders' for viewing reminders or 'update_activity_log' for modifying time-related entries. Usage is implied by the action 'create' but lacks explicit context.

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

end_activity_logC

End an activity log with system timestamp and calculate duration

ParametersJSON Schema
NameRequiredDescriptionDefault
activityIdYesUnique identifier of the activity log to end
notesNoDetailed notes for traceability and session continuity. Include: what was accomplished, key decisions made, challenges encountered, solutions implemented, and any critical context for future reference. This enables other AI agents to understand your work, backtrack steps if issues arise, and continue development effectively. Be specific about code changes, architectural decisions, and debugging insights.
resultNoResult or outcome of the activity

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only mentions timestamping and duration calculation. It doesn't disclose critical behavioral traits like whether this is a destructive operation, permission requirements, error handling, or how it interacts with other tools (e.g., if it closes a log started by 'start_activity_log').

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, efficient sentence that front-loads the core purpose ('end an activity log') and key outcomes. There is no wasted verbiage, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity of ending an activity log with no annotations and no output schema, the description is incomplete. It lacks details on return values, error conditions, or how it integrates with sibling tools, leaving significant gaps for an AI agent to understand the full context.

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 already documents all parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain how 'notes' or 'result' affect the ending process), resulting in a baseline score of 3.

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

Purpose4/5

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

The description clearly states the action ('end an activity log') and specifies key outcomes ('with system timestamp and calculate duration'), which distinguishes it from siblings like 'start_activity_log' or 'update_activity_log'. However, it doesn't explicitly differentiate from all siblings (e.g., 'update_activity_log' might also involve ending).

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 provided on when to use this tool versus alternatives like 'update_activity_log' or how it relates to sibling tools such as 'start_activity_log'. The description implies usage after starting an activity but lacks explicit context or exclusions.

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

get_activity_logsC

Retrieve activity logs with optional filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
activityTypeNoFilter by activity type
endDateNoFilter by end date (ISO 8601 format)
limitNoMaximum number of logs to return
startDateNoFilter by start date (ISO 8601 format)
task_scopeNoFilter by task scope

TDQS

C2.9/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 only mentions retrieval with filtering, lacking details on permissions, rate limits, pagination, or what the return format looks like. For a read operation with multiple parameters, this is insufficient to guide the agent effectively.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for the agent to parse quickly.

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

Completeness2/5

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

Given the tool's complexity (5 parameters, no output schema, and no annotations), the description is incomplete. It doesn't explain the return structure, potential errors, or how filtering interacts with the sibling tools. This leaves significant gaps for the agent to understand the tool's full behavior.

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%, with all parameters well-documented in the schema (e.g., ISO 8601 format for dates, enum values for task_scope). The description adds minimal value by mentioning 'optional filtering' but doesn't provide additional context beyond what the schema already specifies, so it meets the baseline.

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

Purpose4/5

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

The description clearly states the verb 'retrieve' and resource 'activity logs' with optional filtering, making the purpose understandable. However, it doesn't differentiate this tool from potential siblings like 'get_current_time' or 'get_elapsed_time' which might also retrieve time-related data, so it doesn't reach the highest score.

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. It doesn't mention sibling tools like 'start_activity_log' or 'end_activity_log' for creating logs, or explain scenarios where filtering logs is preferred over other time-related queries. This leaves the agent without context for tool selection.

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

get_current_timeB

Get current time (defaults to system time, supports any timezone)

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneYesTimezone to display. Use 'system' or 'local' for user's local time (Etc/UTC). Use IANA names like 'America/New_York', 'Europe/London', or 'UTC' for other timezones. System time is the default and most practical choice.

TDQS

B3.1/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 states the tool 'gets' current time with defaults and timezone support, implying a read-only operation, but doesn't address potential side effects, error handling, or output format. This is inadequate for a tool with no annotation coverage.

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, efficient sentence that front-loads the core purpose ('Get current time') and adds essential qualifiers without waste. Every word earns its place, making it appropriately sized and well-structured.

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?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description covers the basic purpose and parameter context adequately. However, it lacks details on output format and behavioral traits, which are needed for full completeness, especially without annotations.

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 input schema fully documents the 'timezone' parameter. The description adds marginal value by mentioning 'defaults to system time' and 'supports any timezone', but doesn't provide syntax or format details beyond what the schema already specifies, aligning with the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose with the verb 'Get' and resource 'current time', specifying it defaults to system time and supports timezones. However, it doesn't explicitly differentiate from sibling tools like 'convert_time' or 'get_elapsed_time', which prevents a perfect score.

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 like 'convert_time' or 'check_time_reminders'. It mentions defaults and timezone support but lacks explicit when/when-not instructions or sibling comparisons, leaving usage context unclear.

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

get_elapsed_timeC

Get the elapsed time for an ongoing or completed activity

ParametersJSON Schema
NameRequiredDescriptionDefault
activityIdYesUnique identifier of the activity log

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on traits like whether it requires specific permissions, how it handles errors, if it's read-only or has side effects, or what the return format looks like. This leaves significant gaps for an agent to understand its behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not explain what the tool returns (e.g., time format, units), error conditions, or behavioral nuances. For a tool that retrieves data, more context is needed to guide effective usage by an agent.

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?

The input schema has 100% description coverage, with 'activityId' clearly documented. The description does not add any additional meaning beyond the schema, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('elapsed time'), and specifies the target ('ongoing or completed activity'). However, it does not explicitly differentiate from sibling tools like 'get_activity_logs' or 'end_activity_log', which might also relate to activity timing or status.

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. It does not mention prerequisites, context, or exclusions, such as whether it's for real-time monitoring, post-analysis, or how it differs from siblings like 'get_activity_logs' or 'check_time_reminders'.

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

start_activity_logC

Start a new activity log with system timestamp and unique Time ID

ParametersJSON Schema
NameRequiredDescriptionDefault
activityTypeYesType of activity being performed (e.g., 'code_review', 'debugging', 'planning')
descriptionNoDetailed description of the activity
tagsNoTags for categorizing the activity
task_scopeYesScope of the task

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only mentions outcomes ('system timestamp and unique Time ID'). It fails to disclose critical behavioral traits such as whether this is a write operation, if it requires specific permissions, how errors are handled, or if it triggers side effects, which is inadequate for a tool that likely creates persistent data.

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, efficient sentence that front-loads the core action and outcomes without redundancy. Every word contributes directly to the tool's purpose, making it highly concise and well-structured.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a tool with 4 parameters that likely performs a write operation. It lacks details on behavioral context, error handling, or return values, leaving significant gaps for an agent to understand full implications.

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 parameters are fully documented in the schema. The description adds no additional meaning beyond implying that inputs define the activity being logged, which aligns with schema details but doesn't enhance understanding. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Start a new activity log') and key outcomes ('system timestamp and unique Time ID'), which distinguishes it from sibling tools like 'end_activity_log' or 'update_activity_log'. However, it doesn't explicitly differentiate from 'create_time_reminder', which might share some conceptual overlap in time-related creation.

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 provided on when to use this tool versus alternatives like 'create_time_reminder' or 'update_activity_log'. The description implies initiation of logging but lacks context on prerequisites, typical scenarios, or exclusions, leaving usage ambiguous.

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

update_activity_logC

Update an existing activity log

ParametersJSON Schema
NameRequiredDescriptionDefault
activityIdYesUnique identifier of the activity log to update
activityTypeNoUpdated activity type
descriptionNoUpdated description
notesNoUpdated traceability notes for session continuity and auditability. Document progress, changes in approach, new findings, or corrections made. Include specific details about what was modified, why changes were needed, and any insights gained. This ensures other AI agents can follow your thought process, understand context, and continue work seamlessly without losing critical information.
resultNoUpdated result
tagsNoUpdated tags
task_scopeNoUpdated task scope

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. 'Update' implies a mutation, but it doesn't disclose behavioral traits like required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields. The description lacks critical context for safe and effective use.

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, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's purpose, making it easy to parse quickly without unnecessary elaboration.

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

Completeness2/5

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

For a mutation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral risks, output expectations, or usage context. The high parameter count and lack of structured support require more descriptive guidance to ensure safe and 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%, so the schema fully documents all 7 parameters. The description adds no meaning beyond the schema—it doesn't explain parameter interactions, default behaviors, or usage examples. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Update an existing activity log' clearly states the verb (update) and resource (activity log), but it's vague about what specifically gets updated. It doesn't differentiate from sibling tools like 'end_activity_log' which might also modify activity logs, nor does it specify the scope of updates beyond the generic term.

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 provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing activity log), compare to siblings like 'create_time_reminder' or 'end_activity_log', or specify scenarios where updates are appropriate versus creating new logs.

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. Dates show when Glama detected each change.

  1. 9 tool updatesv1.0.0
    • First observedcheck_time_reminders
    • First observedconvert_time
    • First observedcreate_time_reminder
    • First observedend_activity_log
    • First observedget_activity_logs
    • First observedget_current_time
    • First observedget_elapsed_time
    • First observedstart_activity_log
    • First observedupdate_activity_log

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Tools like 'check_time_reminders', 'create_time_reminder', 'get_current_time', and 'convert_time' each handle specific time-related tasks, while 'start_activity_log', 'end_activity_log', 'get_activity_logs', 'update_activity_log', and 'get_elapsed_time' form a complete activity logging lifecycle. There is no overlap in functionality that could cause misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case throughout. Examples include 'check_time_reminders', 'convert_time', 'create_time_reminder', 'start_activity_log', and 'update_activity_log'. This predictability makes it easy for agents to understand and use the tools without confusion from mixed conventions.

Tool Count5/5

With 9 tools, the count is well-scoped for the server's purpose of time management and activity logging. Each tool earns its place by covering distinct aspects such as time retrieval, conversion, reminders, and activity tracking. This number is neither too thin nor too heavy, fitting typical expectations for a focused domain.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for both time management and activity logging domains. For time, it includes creation, checking, conversion, and retrieval. For activities, it supports starting, ending, updating, retrieving, and calculating elapsed time. There are no obvious gaps or dead ends that would cause agent failures.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.
    14
    -
  • A
    license
    A
    quality
    A
    maintenance
    Provides long-term memory and a temporal knowledge graph for AI agents, enabling persistent memory and reasoning across sessions.
    33
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/n0zer0d4y/chronos-protocol'

If you have feedback or need assistance with the MCP directory API, please join our Discord server