Skip to main content
Glama
CronGrid

CronGrid

by chaser164

CronGrid — an MCP server scheduling SendGrid Cron Jobs!

Description

This MCP server enables LLMs to POST, GET, and DELETE cron jobs that schedule email sends via SendGrid.

Related MCP server: Cronlytic MCP Server

Prerequisites

  • Claude Desktop (or another MCP server-compatible LLM interface of your choice) installed on your local machine

  • If using Smithery: Node.js (version 14 or higher) installed

  • If running locally: uv installed

  • SendGrid account with verified single sender email address

  • Cron-Job.Org account

Installation

Installing via Smithery

To install CronGrid automatically via Smithery (example for Claude Desktop):

npx -y @smithery/cli install @chaser164/sendgrid-cronjob-mcp --client claude

Installing Manually

  • Open your terminal or command line.

  • Run git clone https://github.com/chaser164/sendgrid-cronjob-mcp.git

  • Add the below to your MCP server-compatible interface of choice (e.g., ~/Library/Application Support/Claude/claude_desktop_config.json)

{
  "mcpServers": {
    "cronjob_email_mcp": {
      "command": "/path/to/uv",
      "args": [
        "--directory",
        "/path/to/sendgrid-cronjob-mcp",
        "run",
        "email-schedule-send-mcp-server.py"
      ],
      "env": {
        "SENDGRID_API_KEY": "<SendGrid API key>",
        "CRONJOB_API_KEY": "<Cron-Job.Org API key>",
        "FROM_EMAIL": "<SendGrid verified single sender email>"
        "TZ": "<timezone value>",
      }
      
    }
  }
}

NOTE: timezone environment variable values must be chosen from this list. The default timezone value is UTC.

Usage

  • Ask your LLM to create, get, and delete scheduled emails

  • This MCP also has the ability to get the current date/time to enhance its scheduling capabilities

  • If a "to email" is not specified, the mcp will send an email to yourself (e.g., "remind me to dance" will send an email to the specified SendGrid sender identity's email address)

License

This project is licensed under the MIT License.

Contributions

Contributions are welcome. Feel free to open issues or submit a pull request for feature enhancements or bug fixes.

Available Tools

4 tools
create_scheduled_email_send_at_specific_timeA

This tool creates a new scheduled email cron job at a specified date(s)/time(s) in cronjob format, setting up a cron-job that calls an email-sending API. The scheduled email can either be a one-time email or a recurring email. Never make a scheduled email cron job repeating (the final argument of the function) unless the user explicitly asks for it; assume the user wants a one-time email unless they explicitly ask for a repeating email send. If the user does not provide a to_email parameter, the email will be sent to the FROM_EMAIL environment variable (email to self). So, do not provide a to_email parameter when the user requests an email to self (e.g. "send an email to myself," "remind me to do something," "create a reminder," "send me an email," etc.). Expiration is automatically set for one-time emails. For repeating emails, expiration is up to the user; it is defaulted to 0, which means the email will be sent indefinitely. Assume the user does not want the repeated send to expire unless they explicitly ask for it. Repeated emails have a [-1] as one of the time parameters, which means the email will be sent every minute, hour, day, month, or week. Non-repeated emails only have non-negative time parameters. If the user asks for an email at a relative time, you can use the get_current_datetime tool to get the current time in the user's timezone and then use that to schedule the email. ALWAYS use the default timezone value unless the user explicitly asks for a different timezone.

Args: title: Title for the email cron job subject: Email subject body: Email body content minutes: Minutes to run (0-59, or [-1] for every minute). hours: Hours to run (0-23, or [-1] for every hour). mdays: Days of month to run (1-31, or [-1] for every day). months: Months to run (1-12, or [-1] for every month). wdays: Days of week to run (0-6 where 0=Sunday, or [-1] for every day). expires_at: Date/time (in job’s time zone) after which the job expires, i.e. after which it is not scheduled anymore (format: YYYYMMDDhhmmss, 0 = does not expire) to_email: Recipient email address. Default is None, which means the email will be sent to the FROM_EMAIL environment variable (email to self). repeating: Whether the email should be sent repeatedly. Default is False, which means the email will be sent only once.

Inputs: title (required), subject (required), body (required), minutes (required), +8 more. Returns: result

delete_scheduled_emailB

Delete a specific scheduled email cron job by ID.

Args: job_id: The ID of the cron job to delete

Inputs: job_id (required). Returns: result

get_current_datetimeA

Get the current date and time in the system's local timezone or TZ environment variable. This function will give you the full context to schedule a cron job. For example, if asked to schedule an email an hour from now, you can look at the output of this function to understand when that would be in the future. This is also useful in case the user wants to know the current time for any reason, or if you require the current time for any reason.

Returns: Formatted datetime string with timezone information

Inputs: no named parameters. Returns: result

get_scheduled_emailsA

Get all scheduled email cron jobs for the account.

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: creating, deleting, listing scheduled emails, and obtaining current time for scheduling. No overlap or ambiguity.

    Naming Consistency3/5

    Tool names are generally verb_noun but inconsistent in verb choice and length. 'create_scheduled_email_send_at_specific_time' is overly verbose compared to the concise 'delete_scheduled_email' and 'get_scheduled_emails'. 'get_current_datetime' uses singular vs plural in other getters.

    Tool Count5/5

    With 4 tools covering create, delete, list, and a helper for scheduling, the count is well-suited to the domain of email cron jobs without being too sparse or excessive.

    Completeness4/5

    The tool set covers primary CRUD operations (create, delete, list) and includes a helpful utility (get_current_datetime). Missing update/modify capability is a minor gap, but core functionality is present.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI applications to send text, HTML, and template-based emails using SendGrid. It supports file attachments, CC/BCC recipients, and easy deployment via Python or Docker.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive Model Context Protocol (MCP) server that integrates with the Cronlytic API to provide seamless cron job management through LLM applications like Claude Desktop.
      1
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for Sendook - an AI email communication platform. Enables AI agents to send and receive emails, manage inboxes, threads, and webhooks programmatically.
      16
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that provides email communication tools (send email, health check, list providers) via SMTP, accessible over HTTP/SSE for remote AI clients like Claude Desktop.
      9 npm
      MIT