GitHub - Cronlytic/cronlytic-mcp-server: MCP server to let LLMs (AI Agents) to communicate and interact with Cronlytic to perform CRUD operations for serverless cron jobs (original) (raw)

Cronlytic MCP Server

🎉 PROJECT COMPLETED - PRODUCTION READY 🎉

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.

Final Status: ✅ All 6 phases complete | 88/88 tests passing | Production documentation ready

Overview

The Cronlytic MCP Server enables AI agents and LLM applications to:

🏆 Project Status: ALL PHASES COMPLETED ✅

🎯 Final Achievement Summary:

📊 Key Metrics:

Installation

Prerequisites

Install from Source

Clone the repository

git clone https://github.com/Cronlytic/cronlytic-mcp-server.git cd cronlytic-mcp-server

Run the setup script (creates venv and installs everything)

./setup_dev_env.sh

Activate the virtual environment

source venv/bin/activate

Manual Setup

Clone the repository

git clone https://github.com/Cronlytic/cronlytic-mcp-server.git cd cronlytic-mcp-server

Create virtual environment

python3 -m venv venv source venv/bin/activate

Upgrade pip

pip install --upgrade pip

Install dependencies

pip install -r requirements.txt

Install development dependencies (optional)

pip install -r requirements-dev.txt

Install in development mode

pip install -e .

Configuration

The server needs your Cronlytic API credentials to function. You can provide these in several ways:

export CRONLYTIC_API_KEY="your_api_key_here" export CRONLYTIC_USER_ID="your_user_id_here"

Method 2: Configuration File

Create a configuration file at one of these locations:

{ "api_key": "your_cronlytic_api_key_here", "user_id": "your_cronlytic_user_id_here", "base_url": "https://api.cronlytic.com/prog", "timeout": 30, "max_retries": 3, "retry_delay": 1.0 }

Method 3: Command Line Arguments

python -m cronlytic_mcp_server.server --api-key "your_key" --user-id "your_id"

Getting API Keys

  1. Log into your Cronlytic dashboard
  2. Navigate to "API Keys" section
  3. Click "Generate New API Key"
  4. Copy your API key and User ID

Usage

Running the Server

Basic usage (reads from environment variables or config file)

python -m cronlytic_mcp_server.server

With command line arguments

python -m cronlytic_mcp_server.server --api-key "your_key" --user-id "your_id"

With debug logging

python -m cronlytic_mcp_server.server --debug

With custom config file

python -m cronlytic_mcp_server.server --config /path/to/config.json

Available Tools (Phase 1)

Health Check

Test connectivity and authentication with the Cronlytic API:

The health_check tool requires no parameters

It will test:

- API connectivity

- Authentication validity

- Response times

- Basic functionality

Example Output:

# Cronlytic API Health Check

**Status:** ✅ Cronlytic API connection is healthy and working correctly
**Timestamp:** 2025-01-27T10:30:00Z
**Response Time:** 150 ms

## Connection Details
- **Base URL:** https://api.cronlytic.com/prog
- **Connectivity:** ✅
- **Authentication:** ✅

## Job Information
- **Job Count:** 3
- **Can List Jobs:** ✅

## Performance
- **Performance Rating:** Good

## Recommendations
- 💡 Found 3 job(s). All systems appear to be working correctly.

Claude Desktop Integration

To use with Claude Desktop, add this to your claude_desktop_config.json:

{ "mcpServers": { "cronlytic": { "command": "python", "args": ["-m", "cronlytic_mcp_server.server"], "env": { "CRONLYTIC_API_KEY": "your_api_key_here", "CRONLYTIC_USER_ID": "your_user_id_here" } } } }

To run virtual environment of python

{ "mcpServers": { "cronlytic": { "command": "python", "args": ["-m", "src.server"], "cwd": "PATH/cronlytic-mcp-server", "env": { "VIRTUAL_ENV": "PATH/cronlytic-mcp-server/.venv", "PATH": "PATH/cronlytic-mcp-server/.venv/bin:${PATH}", "CRONLYTIC_API_KEY": "your_api_key_here", "CRONLYTIC_USER_ID": "your_user_id_here" } } } }

Development

Project Structure

cronlytic-mcp-server/
├── src/
│   ├── __init__.py              # Package initialization
│   ├── server.py                # Main MCP server implementation
│   ├── cronlytic_client.py      # Cronlytic API client wrapper
│   ├── tools/                   # Tool implementations
│   │   ├── __init__.py
│   │   └── health_check.py      # Health check tool
│   ├── resources/               # Resource implementations (Phase 4)
│   ├── prompts/                 # Prompt implementations (Phase 5)
│   └── utils/                   # Utility modules
│       ├── __init__.py
│       ├── auth.py              # Authentication handling
│       ├── errors.py            # Custom error classes
│       └── validation.py        # Input validation
├── tests/                       # Test files (Phase 6)
├── config/
│   └── example_config.json      # Example configuration
├── requirements.txt
├── pyproject.toml
└── README.md

Running in Development Mode

Activate virtual environment (if not already active)

source venv/bin/activate

Install in development mode (if not already done)

pip install -e .

Set environment variables for testing

export CRONLYTIC_API_KEY="your_test_key" export CRONLYTIC_USER_ID="your_test_user_id"

Run with debug logging

python -m cronlytic_mcp_server.server --debug

Run validation tests

python validate_phase1.py

Format code (if you have development dependencies)

black src/ ruff check src/

Type checking

mypy src/

Testing with MCP Inspector

Install MCP Inspector

npm install -g @modelcontextprotocol/inspector

Test the server

mcp-inspector python -m cronlytic_mcp_server.server

Error Handling

The server provides comprehensive error handling:

Logging

Structured logging is provided at multiple levels:

Normal operation

2025-01-27 10:30:00 - cronlytic_mcp_server.server - INFO - Cronlytic MCP Server initialized

Debug mode

python -m cronlytic_mcp_server.server --debug

Roadmap

Phase 2: Basic CRUD Operations (Next)

Phase 3: Advanced Job Management

Phase 4: Resources Implementation

Phase 5: Prompts & UX

Phase 6: Testing & Documentation

Contributing

This project follows a structured development approach with clearly defined phases. Each phase builds upon the previous one to ensure stability and maintainability.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests (Phase 6)
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Support


Current Version: 0.1.0Last Updated: Jun 2025