mcp-chrono
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., "@mcp-chronoConvert 9 AM tomorrow in New York to Shanghai time and tell me the lunar date."
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.
mcp-chrono
MCP server providing time, calendar, timezone, Chinese lunar calendar, almanac, and date utilities for AI agents.
Quick Start
Using npx (no installation needed)
npx mcp-chronoGlobal install
npm install -g mcp-chrono
mcp-chronoRelated MCP server: China Festival MCP Server
Usage with MCP Clients
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"chrono": {
"command": "npx",
"args": ["-y", "mcp-chrono"]
}
}
}Claude Code
claude mcp add chrono -- npx -y mcp-chronoOr with a custom data directory:
claude mcp add chrono -- npx -y mcp-chrono --data-dir /path/to/dataCursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"chrono": {
"command": "npx",
"args": ["-y", "mcp-chrono"]
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"chrono": {
"command": "npx",
"args": ["-y", "mcp-chrono"]
}
}
}Generic MCP client (mcp.json)
Any MCP-compatible client can use the standard mcp.json format:
{
"mcpServers": {
"chrono": {
"command": "npx",
"args": ["-y", "mcp-chrono"],
"transportType": "stdio"
}
}
}With custom data directory:
{
"mcpServers": {
"chrono": {
"command": "npx",
"args": ["-y", "mcp-chrono", "--data-dir", "/path/to/data"],
"transportType": "stdio"
}
}
}Data Directory
Holiday API responses are cached locally to avoid repeated network requests. Default location: ~/.mcp-chrono/
Override with --data-dir:
npx mcp-chrono --data-dir /tmp/mcp-chrono-dataTools
Time & Timezone
get_current_time
Get current time in any IANA timezone with detailed components (timestamp, weekday, week of year, day of year, UTC offset, etc.)
Parameter | Type | Required | Default | Description |
| string | No |
| IANA timezone (e.g. |
| string | No |
| Output format: |
convert_timezone
Convert a datetime between two IANA timezones.
Parameter | Type | Required | Description |
| string | Yes | ISO 8601 datetime (e.g. |
| string | Yes | Source IANA timezone |
| string | Yes | Target IANA timezone |
list_timezones
Search IANA timezones with current offsets and Chinese city names.
Parameter | Type | Required | Description |
| string | No | Search by timezone name, city, or Chinese name |
| string | No | Filter by continent (e.g. |
parse_timestamp
Parse Unix timestamps (seconds/milliseconds) or ISO 8601 strings into date components.
Parameter | Type | Required | Default | Description |
| string | number | Yes | - | Unix timestamp (seconds or milliseconds) or ISO 8601 string |
| string | No |
| IANA timezone for output |
Date Calculation
calculate_time
Add/subtract time from a date. Returns a new date after applying the offset.
Three modes: gregorian (standard date arithmetic), lunar (Chinese calendar arithmetic), anchor (offset from a named festival like 春节 or Thanksgiving).
Parameter | Type | Required | Default | Description |
| string | No |
| Calculation mode: |
| string | No | now | Base date in ISO format. Defaults to current time if omitted |
| string | No |
| IANA timezone for the base date |
| integer | No | - | Years to add (negative to subtract) |
| integer | No | - | Months to add (negative to subtract) |
| integer | No | - | Days to add (negative to subtract) |
| integer | No | - | Hours to add (negative to subtract) |
| integer | No | - | Minutes to add (negative to subtract) |
| string | No | - | Festival name for |
| integer | No | - | Year to resolve festival date for |
date_diff
Calculate the difference between two dates in years, months, days, hours, minutes, and total counts.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Start date in ISO 8601 format |
| string | Yes | - | End date in ISO 8601 format |
| string | No |
| IANA timezone for parsing dates |
countdown
Countdown from now to a target date with remaining days/hours/minutes/seconds.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Target date/time in ISO 8601 format |
| string | No |
| IANA timezone for the target date |
calculate_business_days
Count or add business days, skipping weekends and optionally public holidays (supports CN makeup workdays).
Parameter | Type | Required | Default | Description |
| string | Yes | - |
|
| string | Yes | - | Start date in |
| string | No | - | End date in |
| integer | No | - | Number of business days to add (required for |
| string | No | - | Country code for public holidays (e.g. |
| string | No |
| IANA timezone |
Calendar & Festivals
convert_calendar
Convert between Gregorian and Chinese Lunar calendar. Returns Ganzhi (干支), zodiac, solar terms, festivals, constellation.
Parameter | Type | Required | Default | Description |
| string | Yes | - |
|
| integer | Yes | - | Year |
| integer | Yes | - | Month (1–12) |
| integer | Yes | - | Day (1–31) |
| boolean | No |
| For |
get_festivals
List festivals, solar terms, and public holidays within a date range. Filterable by type.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Start date in |
| string | Yes | - | End date in |
| string | No |
| Country code for public holidays (e.g. |
| string[] | No | - | Filter by type: |
get_month_info
Month details: day count, first/last weekday, leap year, quarter, week count.
Parameter | Type | Required | Description |
| integer | Yes | Year (e.g. 2024) |
| integer | Yes | Month (1–12) |
Chinese Almanac
get_almanac
Chinese almanac (黄历) for a date: 宜/忌 activities, lucky directions (喜神/财神/福神), conflict zodiac, 彭祖百忌, 吉神宜趋, 凶煞宜忌, 天神, 纳音, and more.
Parameter | Type | Required | Default | Description |
| string | No | today | Date in |
Persistent Countdowns
manage_countdown
CRUD for persistent countdown timers, stored as JSON on disk.
Parameter | Type | Required | Default | Description |
| string | Yes | - |
|
| string | No | - | Countdown ID (required for |
| string | No | - | Name/description (required for |
| string | No | - | Target date in ISO 8601 format (required for |
| string | No |
| IANA timezone |
Supported Regions
Region | Festivals | Public Holiday API |
CN | 27 festivals (lunar + solar) | timor.tech (includes makeup workdays) |
US | 10 federal holidays | |
HK | 17 public holidays (lunar, Easter, Ching Ming, fixed) |
License
MIT
Available Tools
13 toolscalculate_business_daysA
Calculate business days between two dates or add/subtract business days from a date. Skips weekends and optionally public holidays.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | 'count': count business days between from and to. 'add': add N business days to from date. | |
| from | Yes | Start date in YYYY-MM-DD format | |
| to | No | End date in YYYY-MM-DD format (required for 'count' action) | |
| business_days | No | Number of business days to add (required for 'add' action, negative to subtract) | |
| country | No | Country code for public holidays (e.g. CN, US). If omitted, only weekends are skipped. | |
| timezone | No | IANA timezone. Defaults to UTC. |
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 clearly states the core behavior ('skips weekends and optionally public holidays'), which is essential. However, it doesn't mention error handling (e.g., invalid dates), performance characteristics, or what happens with edge cases like overlapping dates. The behavioral information is adequate but not comprehensive.
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 perfectly concise with two sentences that each earn their place. The first sentence states the core functionality, and the second adds crucial behavioral context about weekend/holiday skipping. No wasted words, and information is front-loaded appropriately.
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 calculation tool with 6 parameters, 100% schema coverage, and no output schema, the description provides adequate but minimal context. It covers the core purpose and key behavioral trait (holiday skipping), but doesn't explain return values or error conditions. Given the complexity and lack of output schema, more information about what the tool returns would be helpful for completeness.
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 6 parameters thoroughly. The description adds minimal value beyond the schema by mentioning the optional holiday skipping feature, which relates to the 'country' parameter. However, it doesn't provide additional semantic context beyond what's in the parameter descriptions. Baseline 3 is appropriate when 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 tool's purpose with specific verbs ('calculate', 'add/subtract') and resources ('business days between two dates', 'business days from a date'). It distinguishes from siblings by focusing exclusively on business day calculations, unlike tools like 'date_diff' (general date difference) or 'get_festivals' (holiday information).
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 implies usage context by mentioning 'skips weekends and optionally public holidays', suggesting when holiday-aware calculations are needed. However, it doesn't explicitly state when to use this vs. alternatives like 'date_diff' for calendar days or 'get_festivals' for holiday lookup. No explicit exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_timeB
Add or subtract time from a date. Supports Gregorian mode, Lunar mode, and anchor mode (calculate relative to a named festival).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Calculation mode. Defaults to 'gregorian'. | |
| base_date | No | Base date in ISO format (YYYY-MM-DD or full ISO 8601). Required for gregorian/lunar modes. | |
| timezone | No | IANA timezone for the base date. Defaults to UTC. | |
| years | No | Years to add (negative to subtract) | |
| months | No | Months to add (negative to subtract) | |
| days | No | Days to add (negative to subtract) | |
| hours | No | Hours to add (negative to subtract) | |
| minutes | No | Minutes to add (negative to subtract) | |
| festival | No | Festival name for anchor mode (e.g. '春节', 'Christmas', 'Thanksgiving') | |
| festival_year | No | Year to resolve festival date for anchor mode |
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 the three modes but doesn't explain what each mode does in detail (e.g., how Lunar mode works, what anchor mode calculates relative to festivals), nor does it cover error handling, performance, or output format. This leaves significant gaps for a tool with 10 parameters and complex functionality.
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 and lists key features without waste. Every word earns its place, making it easy to scan and understand 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 (10 parameters, multiple modes), lack of annotations, and no output schema, the description is insufficient. It doesn't explain the behavioral nuances of each mode, how parameters interact across modes (e.g., 'base_date' is required for some but not all), or what the tool returns. This leaves the agent with incomplete guidance for proper 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 already documents all parameters thoroughly. The description adds minimal value by hinting at the modes (Gregorian, Lunar, anchor) and festival usage, but it doesn't provide additional semantic context beyond what's in the schema descriptions. This meets the baseline for high schema 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: 'Add or subtract time from a date.' It specifies the action (add/subtract) and resource (time from a date). However, it doesn't explicitly differentiate from siblings like 'date_diff' (which calculates differences) or 'convert_calendar' (which converts between calendars), though the mention of modes provides some distinction.
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 implies usage by listing supported modes (Gregorian, Lunar, anchor), which suggests when to use this tool for different calendar systems. However, it doesn't provide explicit guidance on when to choose this tool over alternatives like 'date_diff' for differences or 'convert_calendar' for conversions, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_calendarA
Convert between Gregorian (solar) and Chinese Lunar calendar. Includes Ganzhi (天干地支), zodiac animal, solar terms, and festival information.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | Conversion direction | |
| year | Yes | Year | |
| month | Yes | Month (1-12) | |
| day | Yes | Day | |
| isLeapMonth | No | For lunar_to_gregorian: whether the month is a leap month (闰月). Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions what information is included in the conversion, it doesn't describe error conditions, rate limits, authentication requirements, or what happens with invalid dates. For a tool with 5 parameters and no annotation coverage, this represents significant behavioral gaps.
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 perfectly concise - a single sentence that efficiently communicates the core functionality and additional value. Every word earns its place, with no redundant information or unnecessary elaboration. The structure is front-loaded with the primary purpose followed by the comprehensive inclusions.
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 moderate complexity (5 parameters, cultural conversion logic) and no output schema, the description provides adequate but incomplete context. It explains what the tool does and what information it includes, but doesn't address behavioral aspects, error handling, or output format details that would be helpful for an AI 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?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds context about what cultural information is included in the conversion output, but doesn't provide additional parameter semantics beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.
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 specific verbs ('Convert between Gregorian and Chinese Lunar calendar') and distinguishes it from siblings by specifying the unique cultural elements included (Ganzhi, zodiac animal, solar terms, festivals). It goes beyond a simple conversion tool by detailing the comprehensive cultural information provided.
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 implies usage through the mention of conversion directions and included information, but doesn't explicitly state when to use this tool versus alternatives like 'get_festivals' or 'get_almanac'. No explicit guidance on when-not-to-use or prerequisites is provided, leaving usage context somewhat ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_timezoneB
Convert a datetime from one timezone to another. Input can be an ISO 8601 string.
| Name | Required | Description | Default |
|---|---|---|---|
| datetime | Yes | ISO 8601 datetime string (e.g. 2024-01-15T10:30:00) | |
| from_timezone | Yes | Source IANA timezone (e.g. Asia/Shanghai) | |
| to_timezone | Yes | Target IANA timezone (e.g. America/New_York) |
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 mentions the input format (ISO 8601) but fails to disclose behavioral traits like error handling for invalid inputs, whether it supports ambiguous times, or the output format. This is a significant gap 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. Every word earns its place, with no redundancy or unnecessary elaboration, 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 tool's complexity (timezone conversion with no output schema) and lack of annotations, the description is incomplete. It doesn't explain the return value format, error conditions, or behavioral nuances, leaving gaps that could hinder correct agent 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 three parameters. The description adds minimal value by noting the ISO 8601 format for 'datetime', but doesn't provide additional meaning beyond what's in the schema, such as examples for timezone formats or edge cases.
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 specific action ('convert a datetime'), the resource ('from one timezone to another'), and distinguishes it from siblings like 'calculate_time' or 'parse_timestamp' by focusing on timezone conversion. It's precise and avoids tautology.
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 'calculate_time' or 'list_timezones'. It lacks context about prerequisites, such as needing valid IANA timezone names, or exclusions, like not handling date arithmetic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
countdownA
Calculate a countdown from now to a target date/time. Returns remaining days, hours, minutes, seconds and whether the date is in the past.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target date/time in ISO 8601 format (e.g. 2024-12-31T23:59:59 or 2025-01-01) | |
| timezone | No | IANA timezone for the target date. Defaults to UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it calculates a countdown, returns remaining time components and past status, and implies it uses the current time as the start point. However, it lacks details on error handling, input validation, or performance aspects like rate limits.
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, well-structured sentence that efficiently conveys the tool's purpose, input context, and output details without any wasted words. It's appropriately sized and front-loaded with essential information.
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 moderate complexity (2 parameters, no annotations, no output schema), the description is adequate but has gaps. It explains what the tool does and returns, but without an output schema, it doesn't detail the return structure (e.g., object format). For a calculation tool, this is minimally viable but could be more complete.
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 fully documents the parameters. The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints. This meets the baseline for high schema 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 specific action ('calculate a countdown'), the resource ('from now to a target date/time'), and distinguishes it from siblings by focusing on countdown calculation rather than business days, time conversion, or other date/time operations. It explicitly mentions the return values, which helps differentiate its purpose.
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 implies usage context by specifying 'from now to a target date/time,' which suggests it's for countdowns relative to the current moment. However, it doesn't explicitly state when to use this tool versus alternatives like 'date_diff' or 'manage_countdown,' leaving some ambiguity about sibling tool differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
date_diffA
Calculate the difference between two dates/times. Returns the difference in years, months, days, hours, minutes and also total days/hours/minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| start | Yes | Start date in ISO 8601 format (e.g. 2024-01-15 or 2024-01-15T10:30:00) | |
| end | Yes | End date in ISO 8601 format | |
| timezone | No | IANA timezone for parsing dates. Defaults to UTC. |
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 clearly describes the return format ('difference in years, months, days, hours, minutes and also total days/hours/minutes'), which is valuable context beyond the input schema. However, it doesn't mention error handling, performance characteristics, or other behavioral traits.
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 perfectly concise with two sentences that directly explain the tool's function and return values. Every word earns its place, and the information is front-loaded with no 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 calculation tool with no annotations, 100% schema coverage, and no output schema, the description provides good context by explaining the return format. It could be more complete by mentioning error cases or edge behaviors, but it adequately covers the core functionality.
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%, providing complete parameter documentation. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 for adequate but not enhanced parameter explanation.
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 specific verbs ('calculate the difference') and resources ('between two dates/times'), and distinguishes it from siblings by focusing on comprehensive date/time difference calculation rather than business days, time conversion, or other temporal operations.
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 implies usage for calculating date/time differences but doesn't explicitly state when to use this tool versus alternatives like 'calculate_business_days' or 'calculate_time'. No exclusions or specific contexts are provided, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_almanacA
Get Chinese almanac (黄历/老黄历) information for a specific date. Includes suitable activities (宜), things to avoid (忌), conflict zodiac (冲), lucky directions, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYY-MM-DD format. Defaults to today. |
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. It discloses what information is returned, which is useful behavioral context. However, it doesn't mention potential limitations like date range constraints, data sources, or error handling. The description doesn't contradict any annotations (none exist), but could be more comprehensive 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 efficiently structured in two sentences: the first states the core purpose, and the second enumerates the returned data types. Every phrase adds value without redundancy, making it easy to parse and understand 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 moderate complexity (cultural data retrieval), no annotations, and no output schema, the description does a good job of outlining what information is returned. It could be more complete by specifying the output format or data structure, but it adequately covers the tool's scope and content for a read-only operation.
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, documenting the single parameter's format and default behavior. The description doesn't add parameter-specific details beyond what's in the schema, but with only one parameter and high schema coverage, the baseline is appropriately met. The description does reinforce the date focus by mentioning 'specific date'.
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: 'Get Chinese almanac (黄历/老黄历) information for a specific date.' It specifies the exact resource (Chinese almanac) and verb (get), and distinguishes itself from siblings by focusing on cultural/astrological data rather than date calculations, time conversions, or calendar utilities.
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 implies usage context by listing the types of information returned (suitable activities, things to avoid, conflict zodiac, lucky directions), suggesting it's for cultural or planning purposes. However, it doesn't explicitly state when to use this tool versus alternatives like get_festivals or date_diff, nor does it provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_timeA
Get the current time in a specified timezone. Returns detailed time information including year, month, day, hour, minute, second, weekday, week of year, day of year, and UTC offset.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | IANA timezone (e.g. Asia/Shanghai, America/New_York). Defaults to UTC. | |
| format | No | Output format: iso (default), human (readable), relative (time ago from UTC) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool's behavior by specifying what information is returned and that it accepts timezone and format parameters, but lacks details on error handling, rate limits, or authentication needs. It adequately describes the core functionality without contradictions.
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 front-loaded with the core purpose in the first sentence and efficiently lists return details in the second. Every sentence adds value without redundancy, making it appropriately sized and well-structured for quick understanding.
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, 100% schema coverage, and no output schema, the description is mostly complete. It covers what the tool does and what it returns, but could improve by mentioning error cases (e.g., invalid timezone) or default behaviors more explicitly to fully compensate for the lack of 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 schema already fully documents both parameters. The description adds no additional parameter semantics beyond what the schema provides, such as examples or edge cases, meeting the baseline score when schema coverage is high.
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 specific action ('Get the current time') and resource ('in a specified timezone'), distinguishing it from siblings like 'convert_timezone' or 'parse_timestamp' which perform different operations. It also explicitly mentions the detailed return information, further clarifying its purpose.
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 implies usage for obtaining current time with formatting options, but does not explicitly state when to use this tool versus alternatives like 'get_almanac' for astronomical data or 'calculate_time' for time calculations. No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_festivalsA
Get festivals, solar terms, and public holidays within a date range. Supports Chinese (lunar and solar) festivals and public holidays from various countries.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | Start date in YYYY-MM-DD format | |
| end_date | Yes | End date in YYYY-MM-DD format | |
| country | No | Country code for public holidays (e.g. CN, US, HK). Defaults to CN. | |
| types | No | Filter by event types. If omitted, returns all types. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it mentions what types of events are supported, it doesn't disclose important behavioral traits like: whether this is a read-only operation, what format the results come in, if there are rate limits, authentication requirements, or how many results might be returned. The description is insufficient 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 perfectly concise - two sentences that efficiently communicate the tool's purpose and scope. Every word earns its place with no redundancy or 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 that there are no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, how results are structured, or important behavioral constraints. For a tool with 4 parameters and no structured output documentation, the description should provide more complete context about the operation.
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 baseline is 3. The description adds some context about supporting Chinese festivals and international holidays, which helps explain the 'country' and 'types' parameters, but doesn't provide additional semantic information beyond what's already well-documented in the schema.
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 'Get' and specifies the resources: festivals, solar terms, and public holidays. It distinguishes from siblings by focusing on date-range retrieval of cultural/calendar events rather than calculations, conversions, or time management functions.
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 clear context about when to use this tool: for retrieving events within a date range, with support for Chinese festivals and international public holidays. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_month_infoA
Get detailed information about a specific month including number of days, first/last day weekday, whether it's a leap year, and quarter.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g. 2024) | |
| month | Yes | Month (1-12) |
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 describes what information is returned but doesn't mention error handling (e.g., for invalid year/month inputs), performance characteristics, or any side effects. For a read-only tool with no annotations, this leaves gaps in understanding how it behaves in edge cases.
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, well-structured sentence that front-loads the purpose and efficiently lists key details without unnecessary words. Every element (verb, resource, specifics) earns its place, making it easy to scan and understand 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 low complexity (2 simple parameters, no output schema, no annotations), the description adequately covers the purpose and output details. However, it lacks information on return format (e.g., structured data vs. text) and error cases, which could be helpful for an agent to handle robustly. It's minimally complete but has room for improvement.
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 clear descriptions for both parameters (year and month with range constraints). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or contextual usage tips. This meets the baseline for high schema coverage but doesn't enhance 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 specific action ('Get detailed information') and resource ('a specific month'), listing concrete details like number of days, first/last day weekday, leap year status, and quarter. It distinguishes itself from siblings like 'get_current_time' or 'date_diff' by focusing on comprehensive month metadata rather than calculations or conversions.
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 implies usage when month-level details are needed, but it doesn't explicitly state when to use this tool versus alternatives like 'get_almanac' (which might provide broader date information) or 'calculate_time' (which might handle date arithmetic). No exclusions or prerequisites are mentioned, leaving some ambiguity in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_timezonesA
List IANA timezones with current offset and time. Uses the system's full IANA timezone database. Can filter by query text or continent.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search text to filter by timezone name, city, or Chinese name | |
| continent | No | Filter by continent prefix (Asia, Europe, America, Africa, Australia, Pacific, etc.) |
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 adds some context by mentioning the use of the system's full IANA timezone database, but does not detail aspects like rate limits, authentication needs, or the format of the returned data (e.g., list structure, pagination). It adequately describes the operation as a read-only list without contradictions.
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 front-loaded with the core purpose in the first sentence and efficiently adds filtering details in the second. Every sentence earns its place by providing essential information without redundancy, 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 (2 parameters, no annotations, no output schema), the description is mostly complete. It covers the purpose, source, and filtering options. However, without an output schema, it could benefit from mentioning the return format (e.g., list of timezone objects with offset and time) to fully compensate for the lack of structured output details.
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 fully documents the two parameters (query and continent). The description adds marginal value by mentioning filtering by query text or continent, but does not provide additional semantics beyond what the schema descriptions specify (e.g., examples of continent prefixes). Baseline 3 is appropriate as the schema handles most of the parameter documentation.
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 ('List') and resource ('IANA timezones'), and distinguishes it from siblings by specifying it provides timezone data with current offset and time, unlike other tools that perform calculations or conversions. It explicitly mentions the IANA database source.
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 clear context for usage by stating it can filter by query text or continent, which helps differentiate it from other time-related tools. However, it does not explicitly mention when not to use it or name specific alternatives among the siblings, such as 'convert_timezone' or 'get_current_time', for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_countdownB
Manage persistent countdown timers. Supports CRUD operations: set (create), get (read one), list (read all), delete.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| id | No | Countdown ID (required for get/delete, auto-generated for set if not provided) | |
| name | No | Name/description for the countdown (required for set) | |
| target_date | No | Target date in ISO 8601 format (required for set) | |
| timezone | No | IANA timezone. Defaults to UTC. |
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 mentions 'persistent countdown timers' and CRUD operations, indicating data storage and mutation capabilities, but fails to detail critical aspects such as authentication requirements, rate limits, error handling, or the persistence mechanism (e.g., database storage). This leaves significant gaps for an agent to understand the tool's 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 concise and front-loaded, stating the core purpose in the first sentence and listing operations in the second. Both sentences earn their place by clarifying scope and actions. However, it could be slightly more structured by explicitly separating operations or adding brief context.
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 a CRUD tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., data persistence, error responses), output format, and usage nuances. This makes it inadequate for an agent to fully understand the tool's context and operation.
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 schema description coverage is 100%, meaning all parameters are documented in the input schema. The description adds no additional semantic information about parameters beyond what the schema provides (e.g., it doesn't explain parameter interactions or usage examples). With high schema coverage, the baseline score is 3, as the description doesn't compensate but also doesn't detract.
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: managing persistent countdown timers with CRUD operations. It specifies the verb ('manage') and resource ('persistent countdown timers'), distinguishing it from sibling tools like 'countdown' (which likely performs a different function). However, it doesn't explicitly differentiate from all siblings, such as 'calculate_time' or 'date_diff', which might have overlapping time-related functionality.
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 implies usage through the mention of CRUD operations (set, get, list, delete), suggesting when to use this tool for countdown management versus other time-related tasks. However, it lacks explicit guidance on when to choose this tool over alternatives like 'countdown' or other siblings, and does not specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_timestampB
Parse a Unix timestamp (seconds or milliseconds) or ISO 8601 string into detailed date/time components.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Unix timestamp (number in seconds or milliseconds) or ISO 8601 date string | |
| timezone | No | IANA timezone for output. Defaults to UTC. |
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 mentions parsing into 'detailed date/time components' but does not specify what those components are, whether there are defaults or errors for invalid inputs, or any rate limits. This leaves significant gaps in understanding the tool's behavior beyond the basic parsing action.
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 key information (parsing action and input types) without any wasted words. It is appropriately sized for a simple parsing tool and every part of the sentence contributes to understanding the tool's purpose.
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 'detailed date/time components' means in the output, which is critical for a parsing tool. For a tool with 2 parameters and no structured output documentation, more detail on behavior and results is needed to be fully helpful.
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 both parameters ('input' and 'timezone') with clear descriptions. The description adds no additional parameter semantics beyond what the schema provides, such as examples or edge cases, but the schema is comprehensive enough to justify 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 specific action ('parse') and resource ('Unix timestamp or ISO 8601 string'), and distinguishes it from siblings by focusing on parsing rather than calculation, conversion, or information retrieval. It explicitly mentions the output format ('detailed date/time components'), which helps differentiate from tools like 'convert_timezone' or 'get_current_time'.
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 implies usage by specifying the input types (Unix timestamp or ISO 8601 string) and output (detailed components), but does not explicitly state when to use this tool versus alternatives like 'convert_calendar' or 'calculate_time'. No exclusions or prerequisites are mentioned, leaving some ambiguity about its specific context compared to sibling tools.
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.
13 tool updates
v1.0.0- First observed
calculate_business_days - First observed
calculate_time - First observed
convert_calendar - First observed
convert_timezone - First observed
countdown - First observed
date_diff - First observed
get_almanac - First observed
get_current_time - First observed
get_festivals - First observed
get_month_info - First observed
list_timezones - First observed
manage_countdown - First observed
parse_timestamp
TDQS
Each tool has a clearly distinct purpose with no significant overlap. For example, calculate_business_days focuses on business days, calculate_time on time arithmetic, convert_calendar on calendar conversion, and get_almanac on almanac data. The descriptions specify unique functionalities, making misselection unlikely.
All tool names follow a consistent verb_noun pattern using snake_case, such as calculate_business_days, convert_timezone, get_festivals, and manage_countdown. This predictability aids in understanding and usage without any deviations in style.
With 13 tools, the count is well-scoped for a time and calendar utility server. Each tool serves a specific function, such as date calculations, conversions, and information retrieval, without redundancy or excessive bloat, fitting the domain appropriately.
The tool set provides comprehensive coverage for time and calendar operations, including calculations (e.g., date_diff, calculate_business_days), conversions (e.g., convert_calendar, convert_timezone), information retrieval (e.g., get_current_time, get_festivals), and management (e.g., manage_countdown). No obvious gaps are present for the stated purpose.
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
Deterministic time tools for AI agents: timezone conversion, business-day math, cron interpretation.
BaZi four pillars, Chinese zodiac, lunisolar calendar and almanac days for AI agents.
Current time, timezone conversion & date math for AI agents. On Cloudflare Workers.
A real clock for AI agents: current time, timezone conversion, and DST facts from the IANA tzdb.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides comprehensive date, time, timezone, and calendar operations powered by Luxon, enabling AI agents to perform time calculations, timezone conversions, and temporal data handling across 400+ IANA timezones.224MIT
- AlicenseNot gradedqualityBmaintenanceProvides Chinese holiday information, lunar calendar conversion, traditional festivals, 24 solar terms, and BaZi (Eight Characters) calculations for AI assistants to accurately handle Chinese calendar queries and date conversions.3Apache 2.0
- AlicenseAqualityDmaintenanceProvides AI assistants with rich temporal intelligence including timezone conversions, 9 cultural calendars (Hebrew, Islamic, Chinese, etc.), astronomical events, Islamic prayer times, and context-aware activity appropriateness recommendations.374MIT
- AlicenseAqualityCmaintenanceEnables AI agents to perform Chinese metaphysics calculations including BaZi charts, Tong Shu indicators, solar terms, and more, using a verified engine with 740+ tests.88MIT
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/aleck31/mcp-chrono'
If you have feedback or need assistance with the MCP directory API, please join our Discord server