mcp-jp-calendar
Server Quality Checklist
Latest release: v1.1.0
- Disambiguation5/5
Each tool targets a distinct calendar concept: checking business days, adding/counting them, finding gotobi dates, month-end info, fiscal periods, and holiday lists. No two tools have overlapping purposes, and descriptions clearly distinguish edge cases.
Naming Consistency4/5Most tools use a verb_noun pattern (is_business_day, add_business_days, list_holidays), but a few deviate into noun phrases (month_end_info, fiscal_period) or adjective_noun (next_gotobi). All names are lowercase snake_case, so the inconsistency is minor and readability is preserved.
Tool Count5/5Seven tools is well within the ideal 3-15 range and matches the server's focused scope. Each tool serves a distinct core function for Japanese business calendar operations, with no redundant or unnecessary additions.
Completeness4/5The surface covers primary business-day calculations, holiday listing, gotobi dates, month-end adjustments, and fiscal periods. Minor gaps include explicit next/previous business-day convenience functions and management of company-specific holidays, but existing tools can work around these.
Average 3.8/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 5 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key logic of moving the closing date forward if the month-end is a holiday. However, with no annotations, it leaves important behavioral details unclear: how holidays are determined (weekendDays vs customHolidays), whether the effective date is always returned or only when a holiday occurs, and what happens if the moved date also falls on a holiday. This is a moderate transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the core functionality immediately. There is no filler or redundant phrasing; it is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should clarify the return structure, but it does not. The conditional wording makes it ambiguous whether the output always includes both the month-end date and the effective date, and there is no mention of edge cases like consecutive holidays. Combined with no annotations, the description is not fully self-sufficient for an agent to predict the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters (yearMonth, weekendDays, customHolidays), so the baseline is 3. The description adds no information about parameter usage or formats beyond what the schema already provides, so no score adjustment is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it returns the last day of the specified month and, if that day is a holiday, the adjusted closing date moved earlier. The verb '返します' is specific and the resource is distinct from siblings like is_business_day or list_holidays, which focus on other date calculations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 over alternatives. There is no mention of scenarios where this is preferred, no exclusion criteria, and no comparison with sibling tools. The description only explains what it does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the main behavior (adding/subtracting business days) and the negative-N handling. However, it does not explain how weekendDays and customHolidays affect the calculation, or how the start date is treated if it itself falls on a non-business day. These are notable gaps, but the core behavior is adequately disclosed for a simple calculation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the verb and resource, and contains no redundant or irrelevant content. It efficiently communicates the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary function but is sparse for a tool with 4 parameters, no output schema, and no annotations. It does not explicitly specify the return format (though 'date' is mentioned) or explain the effect of optional parameters in the description. However, the schema thoroughly documents parameters, so the core missing piece is the absence of edge-case behavior and explicit return type details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does 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 no parameter semantics beyond what the schema already provides; it restates the negative-N behavior that is already documented in the businessDays parameter description. No additional meaning is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '返します' (returns) with a specific resource: the date N business days after the specified date. It also clarifies the negative-N case (N business days before), distinguishing this tool from siblings like count_business_days and is_business_day which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for calculating business-day offsets by stating the core function, but it does not explicitly mention when to prefer this tool over alternatives or provide exclusions. The context is clear but lacks explicit guidance on selecting this tool versus siblings such as count_business_days or list_holidays.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavior: if the calculated date is a holiday, it also returns the date adjusted to the previous business day. However, it does not specify the return structure, recursion of adjustments, or edge cases. With no annotations provided, this is moderate but incomplete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the core functionality followed by the adjustment behavior. No redundant or ambiguous wording, making it appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and moderate complexity, the description does not fully explain the return value format, which is critical for agent usage. It also omits how weekendDays and customHolidays parameters affect the calculation, though the schema covers these. The core concept is clear, but operational details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of all three parameters with descriptions and examples. The tool description adds no additional parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: returns the nearest Go-tobi (5th, 10th, 15th, 20th, 25th, month-end) on or after a specified date. It distinguishes this from sibling tools by introducing the specific Go-tobi concept and the holiday adjustment behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It implies usage for Go-tobi calculations but provides no guidance on choosing it over siblings like month_end_info or is_business_day, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses consideration of weekends, Japanese holidays, substitute holidays, and custom company holidays, but omits that the weekendDays parameter can override the default Saturday/Sunday definition and does not state the return type or invalid-date behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the core action and lists the holiday types without redundancy. It is appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple boolean check tool, the description is largely complete: it specifies the input (a date) and the business-day criteria. However, because there is no output schema, it would be beneficial to explicitly state that the result is a boolean; the current phrasing '判定します' is slightly ambiguous about the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with descriptions for all three parameters, including formats and defaults. The description adds only a general mention of holiday types, not specific parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool determines whether a specified date is a business day, using the specific verb '判定します' and clearly scoping to a single date. It also enumerates the holiday categories considered, distinguishing it from sibling tools that perform date arithmetic or list holidays.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given for when to prefer this tool over alternatives; the intended use is only implied by the tool's purpose. There are no exclusions or references to sibling tools like add_business_days, so the agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the inclusive endpoint behavior, which is a key behavioral trait. However, it does not mention how weekendDays and customHolidays affect the count, default weekend behavior, or edge cases like reversed dates. With no annotations provided, the description carries the burden but leaves these details to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and scope. Every word contributes to understanding the tool's purpose with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple counting tool with a rich schema (75% parameter coverage), the description adequately covers the core functionality and inclusivity. It does not explain edge cases, but the schema and the tool's straightforward nature make it sufficiently complete for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that both startDate and endDate are included in the count, which adds meaning beyond the schema's basic date string descriptions. Since schema coverage is 75% (endDate lacks a direct description), this compensation is valuable. The other parameters (weekendDays, customHolidays) are already well-described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb '数えます' (counts) and clearly identifies the resource: '2つの日付の間' (between two dates) of business days. It also specifies inclusivity with '(両端を含む)' which distinguishes it from sibling tools like is_business_day (single date check) and add_business_days (adding days).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage scenario (counting business days between dates) but does not explicitly mention when to use this tool over alternatives like is_business_day or add_business_days. There are no exclusions or prerequisites stated, so the guidance is adequate but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the fiscal-year start month is configurable and defaults to April, and the verb '返します' implies a side-effect-free computation. It does not specify the output format or edge-case behavior, but for a pure date calculation this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loads the primary purpose, and avoids redundancy. Every clause adds value, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter computation with a fully documented schema, the description covers the essential behavior and configuration. The absence of an output schema is a minor gap because the return value (fiscal year and quarter) is not explicitly formatted, but the tool's simplicity makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does 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's mention of a configurable start month with April default mirrors the parameter descriptions and adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the fiscal year and quarter for a given date, using the specific verb '返します' (returns). It distinguishes itself from sibling tools focused on business days, holidays, and month-end info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implicitly signals use for fiscal-period classification, and sibling names make alternatives clear. There is no explicit 'when not to use' guidance, but the context is sufficient for an agent to select it over the business-day/holiday tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the supported date range (2020-2030), which is useful, but it does not explain behavior for out-of-range years (e.g., error vs. empty list) or whether the list includes substitute holidays. This leaves some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence plus a concise range statement. It is front-loaded with the core purpose and contains no filler or redundant details, earning top marks for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one well-documented parameter and no output schema, the description is largely sufficient. It explains purpose and supported range, but could be more complete by addressing edge cases (e.g., out-of-range years) and the exact scope of holidays (e.g., national holidays only).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'year' parameter, so the baseline is 3. The description adds extra meaning by specifying the valid range (2020-2030), which is not present in the schema's property description. This is a valuable addition for correct parameter use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a list of Japanese holidays for a specified year. The verb '返します' plus the resource '日本の祝日' and scope '指定年' make it specific and distinguishable from sibling tools that handle business-day calculations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it lists holidays for a given year, within a supported period of 2020-2030. However, it does not explicitly state when to use this tool over siblings or when not to use it, so it stops short of full usage-exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/skypier-jp-works/mcp-jp-calendar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server