Chronos Protocol
The Chronos Protocol server provides time intelligence, persistent memory, and complete traceability for AI coding agents to eliminate temporal blindness.
Core Capabilities:
Time Intelligence: Access current system time with context and convert times between timezones with DST handling for coordination and scheduling
Activity Tracking: Start, monitor, and end development activities with unique IDs, duration calculation, and rich metadata for complete session continuity
Persistent Memory: Maintain activity logs across sessions with filtering, querying, and updating capabilities for continuous documentation and autonomous learning
Cross-Session Continuity: Resume tasks across different development sessions and projects with context preservation
Intelligent Reminders: Create and check time-based reminders for development workflows like code reviews and dependency updates
Development Analytics: Analyze activity patterns, completion times, and performance metrics through historical log retrieval
AI Framework Integration: Works with Claude Task Master, Agent OS, and other AI frameworks for enhanced task tracking with flexible per-project or centralized storage
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Chronos Protocolwhat's the current system time in my local timezone?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
# Chronos Protocol
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-projectand 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 --helpAfter 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 contextSmart 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 differenceActivity 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 timezonetime(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 optionsdescription(string): Detailed description of the activitytags(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 endresult(string, optional): Result or outcome of the activitynotes(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 typetask_scope(string): Filter by task scopestartDate(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 updateupdates(object): Object containing fields to update
Returns: Updated activity log
Reminder System Functions
create_time_reminder(reminderTime, message, relatedTaskId?)
Create time-based reminder using system time for scheduling.
Parameters:
reminderTime(string): Time for the reminder (ISO 8601 format with timezone)message(string): Reminder messagerelatedTaskId(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 |
|
Centralized | Cross-project analytics | Custom directory via |
ID Format Options
Format | Example | Length | Use Case |
|
| 12 chars | Ultra-compact for task lists |
|
| 22 chars | Balanced readability |
|
| 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 resolutionVariable 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 variablesMost 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 substitutionCannot use per-project storage mode
Will fail if
--project-rootargument is includedLimited 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 resolutionVariable 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 variablesMost 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 includedCheck that workspace is properly opened
Claude Code:
Remove
--project-rootargument (use default detection)Do not add
"type": "stdio"parameter
Cline/Qoder:
Use centralized storage mode
Remove all workspace variables
Set explicit
--data-dirpath
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-diraccessibility
Python Module Not Found
Error: ModuleNotFoundError: No module named 'chronos_protocol'
Solution:
# Ensure editable installation
pip install -e .
# Verify installation
python -m chronos_protocol --helpClient-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 --debugCode 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:
Test with both storage modes
Verify all tools work correctly
Check error handling scenarios
Update configuration documentation
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 toolscheck_time_remindersC
Check for due or upcoming time reminders
| Name | Required | Description | Default |
|---|---|---|---|
| upcomingMinutes | No | Check for reminders due within this many minutes (default: 60) |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| source_timezone | Yes | Source 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_timezone | Yes | Target 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. | |
| time | Yes | Time to convert in 24-hour format (HH:MM) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Reminder message | |
| relatedTaskId | No | ID of related task or activity | |
| reminderTime | Yes | Time 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
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| activityId | Yes | Unique identifier of the activity log to end | |
| notes | No | Detailed 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. | |
| result | No | Result or outcome of the activity |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| activityType | No | Filter by activity type | |
| endDate | No | Filter by end date (ISO 8601 format) | |
| limit | No | Maximum number of logs to return | |
| startDate | No | Filter by start date (ISO 8601 format) | |
| task_scope | No | Filter by task scope |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | Yes | Timezone 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
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| activityId | Yes | Unique identifier of the activity log |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| activityType | Yes | Type of activity being performed (e.g., 'code_review', 'debugging', 'planning') | |
| description | No | Detailed description of the activity | |
| tags | No | Tags for categorizing the activity | |
| task_scope | Yes | Scope of the task |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| activityId | Yes | Unique identifier of the activity log to update | |
| activityType | No | Updated activity type | |
| description | No | Updated description | |
| notes | No | Updated 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. | |
| result | No | Updated result | |
| tags | No | Updated tags | |
| task_scope | No | Updated task scope |
TDQS
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.
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.
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.
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.
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.
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.
9 tool updates
v1.0.0- First observed
check_time_reminders - First observed
convert_time - First observed
create_time_reminder - First observed
end_activity_log - First observed
get_activity_logs - First observed
get_current_time - First observed
get_elapsed_time - First observed
start_activity_log - First observed
update_activity_log
TDQS
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.
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.
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.
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
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
Gives your AI assistant persistent memory and intelligence about your work patterns.
- DoneThatOAuthai.donethat
Privacy-first work tracking with summaries, reports, coaching, and AI-ready long-term memory.
Project memory for coding agents: requirements, decisions, code graph and delivery telemetry.
1ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides 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-
- AlicenseCqualityAmaintenanceProvides AI assistants with persistent memory and code intelligence across all tools and conversations. Features semantic search, knowledge graphs, decision tracking, and impact analysis with 60+ tools for universal context preservation.3685241MIT
- FlicenseNot gradedqualityNot gradedmaintenanceGives AI agents persistent memory with bi-temporal tracking, automatically extracting entities from natural language and enabling time-travel queries to understand facts as they existed at any point in history.2-

Hebbrix MCP Serverofficial
AlicenseAqualityAmaintenanceProvides long-term memory and a temporal knowledge graph for AI agents, enabling persistent memory and reasoning across sessions.331MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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