@cronicorn/mcp-server 1.12.0 → 1.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,155 +18,100 @@ Run Cronicorn on your own infrastructure using Docker Compose.
18
18
 
19
19
  ## Quick Start
20
20
 
21
- Create a `docker-compose.yml` file with the following configuration:
22
-
23
- ```yaml
24
- services:
25
- db:
26
- image: postgres:17
27
- container_name: cronicorn-db
28
- restart: unless-stopped
29
- networks:
30
- - cronicorn
31
- ports:
32
- - "5432:5432"
33
- environment:
34
- POSTGRES_USER: cronicorn
35
- POSTGRES_PASSWORD: your_secure_password_here
36
- POSTGRES_DB: cronicorn
37
- healthcheck:
38
- test: ["CMD-SHELL", "pg_isready -U cronicorn"]
39
- interval: 10s
40
- timeout: 5s
41
- retries: 5
42
- volumes:
43
- - cronicorn-db:/var/lib/postgresql/data
44
-
45
- migrator:
46
- image: ghcr.io/weskerllc/cronicorn/migrator:latest
47
- container_name: cronicorn-migrator
48
- restart: no
49
- networks:
50
- - cronicorn
51
- depends_on:
52
- db:
53
- condition: service_healthy
54
- environment:
55
- DATABASE_URL: postgresql://cronicorn:your_secure_password_here@db:5432/cronicorn
56
-
57
- api:
58
- image: ghcr.io/weskerllc/cronicorn/api:latest
59
- container_name: cronicorn-api
60
- restart: unless-stopped
61
- networks:
62
- - cronicorn
63
- depends_on:
64
- db:
65
- condition: service_healthy
66
- migrator:
67
- condition: service_completed_successfully
68
- environment:
69
- DATABASE_URL: postgresql://cronicorn:your_secure_password_here@db:5432/cronicorn
70
- PORT: 3333
71
- BETTER_AUTH_SECRET: generate_random_secret_here
72
- BETTER_AUTH_URL: http://localhost:3333
73
- WEB_URL: http://localhost:5173
74
- API_URL: http://localhost:3333
75
- GITHUB_CLIENT_ID: your_github_client_id
76
- GITHUB_CLIENT_SECRET: your_github_client_secret
77
- NODE_ENV: production
78
- ports:
79
- - "3333:3333"
80
-
81
- scheduler:
82
- image: ghcr.io/weskerllc/cronicorn/scheduler:latest
83
- container_name: cronicorn-scheduler
84
- restart: unless-stopped
85
- networks:
86
- - cronicorn
87
- depends_on:
88
- db:
89
- condition: service_healthy
90
- migrator:
91
- condition: service_completed_successfully
92
- environment:
93
- DATABASE_URL: postgresql://cronicorn:your_secure_password_here@db:5432/cronicorn
94
- NODE_ENV: production
95
-
96
- ai-planner:
97
- image: ghcr.io/weskerllc/cronicorn/ai-planner:latest
98
- container_name: cronicorn-ai-planner
99
- restart: unless-stopped
100
- networks:
101
- - cronicorn
102
- depends_on:
103
- db:
104
- condition: service_healthy
105
- migrator:
106
- condition: service_completed_successfully
107
- environment:
108
- DATABASE_URL: postgresql://cronicorn:your_secure_password_here@db:5432/cronicorn
109
- OPENAI_API_KEY: your_openai_api_key # Optional - required for AI features
110
- AI_MODEL: gpt-4o-mini
111
- NODE_ENV: production
112
-
113
- web:
114
- image: ghcr.io/weskerllc/cronicorn/web:latest
115
- container_name: cronicorn-web
116
- restart: unless-stopped
117
- networks:
118
- - cronicorn
119
- depends_on:
120
- - api
121
- ports:
122
- - "5173:80"
123
-
124
- volumes:
125
- cronicorn-db:
126
-
127
- networks:
128
- cronicorn:
129
- driver: bridge
130
- ```
21
+ 1. **Download the compose file**
22
+
23
+ Get [`docker-compose.yml`](https://github.com/weskerllc/cronicorn/blob/main/docker-compose.yml) from the repo. This file pulls pre-built images from our registry—no building required.
24
+
25
+ 2. **Create environment file**
26
+
27
+ Create a `.env` file in the same directory. See [`.env.example`](https://github.com/weskerllc/cronicorn/blob/main/.env.example) for all options. At minimum, set:
28
+
29
+ ```bash
30
+ # Generate with: openssl rand -base64 32
31
+ BETTER_AUTH_SECRET=your-random-32-character-secret-here
32
+ ```
33
+
34
+ Everything else has sensible defaults that work out of the box.
35
+
36
+ 3. **Start services**
37
+
38
+ ```bash
39
+ docker compose up -d
40
+ ```
131
41
 
132
- ## Start Cronicorn
42
+ 4. **Access the app**
133
43
 
44
+ - **Dashboard**: http://localhost:5173
45
+ - **API**: http://localhost:3333
46
+ - **Login**: Use default admin credentials from `.env.example`
47
+
48
+ ## Optional Features
49
+
50
+ ### GitHub OAuth
51
+
52
+ Add to your `.env`:
134
53
  ```bash
135
- # Start all services
136
- docker compose up -d
54
+ GITHUB_CLIENT_ID=your_github_client_id
55
+ GITHUB_CLIENT_SECRET=your_github_client_secret
56
+ ```
137
57
 
138
- # Check logs
139
- docker compose logs -f
58
+ Create an OAuth app at [github.com/settings/developers](https://github.com/settings/developers) with callback URL: `http://localhost:3333/api/auth/callback/github`
140
59
 
141
- # Stop services
142
- docker compose down
60
+ ### AI Scheduling
61
+
62
+ Add to your `.env`:
63
+ ```bash
64
+ OPENAI_API_KEY=sk-your-key-here
65
+ AI_MODEL=gpt-4o-mini
143
66
  ```
144
67
 
145
- ## Access Points
68
+ ### Stripe Payments
146
69
 
147
- - **Web Dashboard**: http://localhost:5173
148
- - **API Server**: http://localhost:3333
149
- - **API Documentation**: http://localhost:3333/reference
70
+ See `.env.example` for required Stripe configuration.
150
71
 
151
- ## Required Configuration
72
+ ## Custom Domain
152
73
 
153
- Update these values in your `docker-compose.yml`:
74
+ To use a custom domain, update these in your `.env`:
154
75
 
155
- 1. **Database Password**: Replace `your_secure_password_here`
156
- 2. **Auth Secret**: Replace `generate_random_secret_here` with a random string
157
- 3. **GitHub OAuth**: Add your `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET`
158
- 4. **OpenAI API Key**: Add `OPENAI_API_KEY` if using AI features
76
+ ```bash
77
+ # Public URLs (accessed by browsers)
78
+ BETTER_AUTH_URL=https://cronicorn.yourdomain.com
79
+ WEB_URL=https://cronicorn.yourdomain.com
80
+ VITE_API_URL=https://cronicorn.yourdomain.com # Used at build time for client-side requests
81
+ BASE_URL=https://cronicorn.yourdomain.com
82
+
83
+ # Internal URLs (Docker network, used by web SSR to call API)
84
+ API_URL=http://cronicorn-api:3333 # Keep this as internal Docker hostname
85
+ ```
159
86
 
160
- ## Optional: Custom Domain
87
+ **Important**: The web app makes requests to the API from two places:
88
+ - **Client-side** (browser): Uses `VITE_API_URL` - must be your public domain
89
+ - **Server-side** (SSR): Uses `API_URL` - should be internal Docker network URL (`http://cronicorn-api:3333`)
161
90
 
162
- To use a custom domain, update these environment variables:
91
+ You'll need a reverse proxy (Traefik, Caddy, nginx) to handle SSL and route requests:
92
+ - `yourdomain.com/` → Web container (port 5173)
93
+ - `yourdomain.com/api/*` → API container (port 3333)
163
94
 
164
- ```yaml
165
- BETTER_AUTH_URL: https://your-domain.com
166
- WEB_URL: https://your-domain.com
167
- API_URL: https://api.your-domain.com
95
+ ## Useful Commands
96
+
97
+ ```bash
98
+ # View logs
99
+ docker compose logs -f
100
+
101
+ # Restart services
102
+ docker compose restart
103
+
104
+ # Stop everything
105
+ docker compose down
106
+
107
+ # Update to latest version
108
+ docker compose pull
109
+ docker compose up -d
168
110
  ```
169
111
 
170
- ---
112
+ ## Troubleshooting
171
113
 
172
- **More detailed documentation coming soon**, including production deployment, scaling, and monitoring.
114
+ - **Connection refused**: Wait 30 seconds for all services to start
115
+ - **Auth errors**: Ensure `BETTER_AUTH_SECRET` is at least 32 characters
116
+ - **API not accessible**: Check that port 3333 isn't already in use
117
+ - **Database issues**: Check logs with `docker compose logs db`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cronicorn/mcp-server",
3
- "version": "1.12.0",
3
+ "version": "1.12.2",
4
4
  "type": "module",
5
5
  "description": "MCP server for Cronicorn - enables AI agents to manage cron jobs via Model Context Protocol",
6
6
  "author": "Cronicorn",