Skip to main content
Glama
progrmoiz

Google Calendar MCP Server

by progrmoiz

Server Quality Checklist

50%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation2/5

    The tools have overlapping purposes that cause confusion. 'batchGetDateByTimestamp' and 'getDateByTimestamp' both convert timestamps to dates, differing only in batch vs. single processing, which could lead to misselection. 'cal' is completely unrelated to calendar operations, evaluating mathematical expressions instead, creating a domain mismatch. Only 'getNow' stands clearly apart as a distinct timestamp retrieval tool.

    Naming Consistency2/5

    The naming is inconsistent with mixed conventions and unclear patterns. 'batchGetDateByTimestamp' and 'getDateByTimestamp' use camelCase with a 'get' prefix, but 'getNow' uses snake_case-like simplicity. 'cal' is a vague abbreviation that doesn't follow any discernible pattern. There's no uniform verb_noun structure or consistent casing across the tool set.

    Tool Count2/5

    The tool count of 4 is too few for a Google Calendar server, indicating a severe mismatch. A calendar domain typically requires CRUD operations for events, calendars, and scheduling, but this set lacks core functionalities like creating, listing, updating, or deleting events. The tools provided are more about timestamp utilities than calendar management, making the count inappropriate for the stated purpose.

    Completeness1/5

    The tool surface is severely incomplete for a Google Calendar server. There are no tools for managing calendar events (e.g., create_event, list_events, update_event, delete_event), calendars, or scheduling features. The existing tools focus on timestamp conversion and math evaluation, which are tangential to calendar operations, leaving significant gaps that will cause agent failures in handling typical calendar tasks.

  • Average 3/5 across 4 of 4 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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.json to 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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions the expr-eval library and lists constants (E, PI, true, false), but doesn't disclose critical behavioral traits: error handling for invalid expressions, performance characteristics, security implications of evaluating arbitrary expressions, or what the return format looks like. For a tool with no annotation coverage, this leaves significant gaps in understanding 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.

    Conciseness3/5

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

    The description is reasonably concise but could be better structured. The first sentence clearly states the purpose, but the constant table feels appended rather than integrated. It's front-loaded with the core functionality, but the table format might not be optimal for agent comprehension. Every sentence earns its place, but the structure could be more cohesive.

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

    Completeness2/5

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

    Given no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It covers the basic purpose and some constants but misses: return value format, error conditions, expression syntax details, and comparison to sibling tools. For a mathematical evaluation tool with these gaps, the description should provide more comprehensive context.

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

    Parameters3/5

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

    The input schema has 1 parameter (exp) with 0% description coverage. The description adds some meaning by specifying it's a 'mathematical expression' and listing supported constants, but doesn't detail syntax rules, operator support, or expression complexity limits. With low schema coverage, the description partially compensates but doesn't fully document parameter semantics.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'evaluate the input mathematical expression and return the result' using the expr-eval library. It specifies the verb (evaluate), resource (mathematical expression), and implementation detail (expr-eval library). However, it doesn't explicitly differentiate from sibling tools like batchGetDateByTimestamp, which appear to handle date/timestamp operations rather than mathematical evaluation.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like batchGetDateByTimestamp, getDateByTimestamp, or getNow, nor does it specify scenarios where mathematical evaluation is appropriate versus date/timestamp operations. The constant table implies support for logical operations, but no explicit usage context is given.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the conversion action but doesn't describe behavioral traits such as input validation (e.g., handling invalid timestamps), output format details (e.g., date string format), error handling, or performance aspects. This leaves significant gaps for a tool with no structured safety hints.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and appropriately sized for a simple conversion tool, with zero wasted text.

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

    Completeness2/5

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

    Given the tool's simplicity (1 parameter, no annotations, no output schema), the description is incomplete. It lacks details on output (e.g., date format), error cases, and usage context relative to siblings. While concise, it doesn't provide enough information for reliable agent invocation without additional assumptions.

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

    Parameters2/5

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

    The input schema has 1 parameter with 0% description coverage, so the description must compensate. It mentions 'timestamp' but doesn't add meaning beyond the schema's 'ts' property—e.g., it doesn't specify units (seconds, milliseconds), range, or format expectations. This fails to adequately address the low schema coverage.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: converting a timestamp to a date format. It specifies the verb 'convert' and the resource 'timestamp', making it easy to understand what the tool does. However, it doesn't explicitly differentiate from siblings like 'batchGetDateByTimestamp' (which likely processes multiple timestamps) or 'cal' (which might be a calendar tool), so it falls short of a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'batchGetDateByTimestamp' for bulk operations or 'getNow' for current time, nor does it specify prerequisites or exclusions. Usage is implied from the purpose, but explicit context is missing.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool converts timestamps to date format but lacks details on behavioral traits such as error handling (e.g., invalid timestamps), output format specifics (e.g., date string format), performance considerations (e.g., rate limits for batch processing), or side effects. This leaves significant gaps 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.

    Conciseness4/5

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

    The description is concise and front-loaded in a single sentence: 'Batch convert the provided list of timestamps to date format, used for processing multiple timestamps.' It efficiently conveys the core purpose without unnecessary details, though it could be slightly more structured (e.g., by separating usage context).

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

    Completeness2/5

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

    Given the complexity (batch processing tool with no annotations, 0% schema coverage, and no output schema), the description is incomplete. It lacks critical details such as the expected timestamp format, output format, error handling, and how it differs from sibling tools. This makes it inadequate for an agent to reliably use the tool without additional context.

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

    Parameters3/5

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

    The description adds minimal semantics beyond the input schema: it indicates 'tsList' is a 'list of timestamps' for conversion. However, with 0% schema description coverage, the schema only defines 'tsList' as an array of numbers without explaining what constitutes a valid timestamp (e.g., Unix epoch in seconds/milliseconds). The description partially compensates but doesn't fully clarify parameter meaning or constraints.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Batch convert the provided list of timestamps to date format, used for processing multiple timestamps.' It specifies the verb ('convert'), resource ('timestamps'), and scope ('batch' for multiple timestamps). However, it doesn't explicitly distinguish this from its sibling 'getDateByTimestamp' (which likely handles single timestamps), missing full sibling differentiation.

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

    Usage Guidelines3/5

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

    The description implies usage for processing multiple timestamps ('batch convert...multiple timestamps'), suggesting this tool is for bulk operations versus single conversions. However, it doesn't explicitly state when to use this tool over alternatives like 'getDateByTimestamp' or provide exclusions (e.g., for single timestamps). The guidance is implied but not explicit.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe any behavioral traits such as rate limits, authentication needs, output format, or whether it's idempotent. For a tool with zero annotation coverage, this is a significant gap, though the simple nature of the tool mitigates some risk.

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

    Conciseness5/5

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

    The description is a single, efficient sentence ('Get the current timestamp') that is front-loaded with the core purpose. There is zero waste or redundancy, and it's appropriately sized for a simple tool. Every word earns its place, 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.

    Completeness3/5

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

    Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is complete enough for basic understanding. However, it lacks details on output format (e.g., timestamp in seconds, milliseconds, or ISO string) and any behavioral context, which could be important for integration. For a simple tool, this is adequate but with clear gaps in completeness.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics beyond what the schema provides. Baseline for 0 parameters is 4, as the description appropriately focuses on the tool's purpose without unnecessary parameter details.

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

    Purpose4/5

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

    The description clearly states the action ('Get') and resource ('current timestamp'), making the purpose immediately understandable. It doesn't explicitly distinguish from siblings like 'getDateByTimestamp' or 'batchGetDateByTimestamp', but the focus on 'current' rather than conversion from a timestamp provides implicit differentiation. The description avoids tautology by not simply restating the tool name.

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

    Usage Guidelines3/5

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

    The description implies usage context through 'current timestamp,' suggesting this tool is for obtaining the present time rather than converting timestamps (which siblings handle). However, it lacks explicit guidance on when to use this versus alternatives like 'getDateByTimestamp' or 'cal,' and doesn't mention any prerequisites or exclusions. The usage is clear but not fully articulated with alternatives.

    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

cal-mcp MCP server

Copy to your README.md:

Score Badge

cal-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/progrmoiz/cal-mcp'

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