deploy-mcp 0.1.1 → 0.3.0

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.
package/README.md CHANGED
@@ -17,25 +17,30 @@ No more context-switching. No more dashboard hunting.
17
17
 
18
18
  ## Demo
19
19
 
20
+ ### Your conversation:
20
21
  ```
21
- // In your AI conversation:
22
- "Check my latest Vercel deployment"
23
-
24
- // Claude's Response:
25
- ✅ **Status**: Success
26
- 🌐 **Live URL**: https://my-app.vercel.app
27
- ⏱️ **Deployment Time**: 45 seconds
28
- 📅 **Last Deployed**: January 15, 2025 at 10:30 UTC
29
- 🌍 **Environment**: Production
30
-
31
- **Latest Commit**:
32
- - SHA: `abc123ef`
33
- - Message: "Update homepage hero section"
34
- - Author: John Doe
35
-
36
- Everything looks good - your deployment is live and running successfully!
22
+ User: "Check my latest Vercel deployment"
37
23
  ```
38
24
 
25
+ ### AI Assistant's Response:
26
+
27
+ > ## Deployment Status
28
+ >
29
+ > ### Current Status
30
+ > **Project:** my-app
31
+ > **Platform:** Vercel
32
+ > **Status:** ✅ Success
33
+ > **URL:** https://my-app.vercel.app
34
+ > **Duration:** 45s
35
+ > **Deployed:** 2 hours ago
36
+ >
37
+ > ### Commit Info
38
+ > **SHA:** `abc123ef`
39
+ > **Message:** Update homepage hero section
40
+ > **Author:** John Doe
41
+ >
42
+ > Everything looks good - your deployment is live and running successfully!
43
+
39
44
  **Just ask your AI**: *"What's the status of my latest deployment?"*
40
45
  Get instant answers without leaving your conversation.
41
46
 
@@ -195,6 +200,75 @@ All AI tools (except Continue.dev) use the same configuration:
195
200
 
196
201
  💡 Replace `your-vercel-token` with your actual Vercel API token from [vercel.com/account/tokens](https://vercel.com/account/tokens)
197
202
 
203
+ ## Deployment Status Badges
204
+
205
+ Get live deployment status badges for your repositories that update in real-time via webhooks.
206
+
207
+ ### Badge URLs
208
+
209
+ Add these badges to your README to show live deployment status:
210
+
211
+ ```markdown
212
+ ![Vercel Deployment](https://deploy-mcp.io/badge/username/repository/vercel)
213
+ ```
214
+
215
+ **Examples:**
216
+ - `https://deploy-mcp.io/badge/john/my-app/vercel`
217
+ - `https://deploy-mcp.io/badge/youruser/yourrepo/vercel`
218
+
219
+ **⚠️ Requirements:**
220
+ - **Public repositories only** - Private repos not supported for security reasons
221
+ - **Vercel Pro/Enterprise plan** - Webhooks required for real-time badge updates
222
+
223
+ **For free tier users:** The MCP server works perfectly for checking deployment status in your AI conversations. Badges are a premium feature requiring paid Vercel plans.
224
+
225
+ ### Setting Up Webhooks
226
+
227
+ For badges to show real-time status, configure webhooks in your deployment platform:
228
+
229
+ #### Vercel Setup
230
+
231
+ **Note:** Vercel webhooks require a Pro or Enterprise plan.
232
+
233
+ 1. **Go to your Vercel team settings**
234
+ 2. **Navigate to "Webhooks" section**
235
+ 3. **Click "Create Webhook"**
236
+ 4. **Configure the webhook:**
237
+ - **URL**: `https://deploy-mcp.io/webhook/yourusername/yourrepo/vercel`
238
+ - **Events**: Select "Deployment Created", "Deployment Ready", and "Deployment Error"
239
+ - **Projects**: Choose your specific project or leave empty for all projects
240
+ - **Secret**: Leave empty (not required for public repositories)
241
+ 5. **Save the webhook**
242
+
243
+ **Important:** Replace `yourusername` and `yourrepo` with your actual GitHub username and repository name.
244
+
245
+ **Note:** Vercel's free tier doesn't support webhooks, so badges won't work. Use the MCP server instead for deployment status in your AI conversations.
246
+
247
+ #### Supported Events
248
+
249
+ The webhook will trigger on:
250
+ - ✅ Deployment started (badge shows "building")
251
+ - ✅ Deployment succeeded (badge shows "success")
252
+ - ❌ Deployment failed (badge shows "failed")
253
+ - ⚠️ Deployment errored (badge shows "error")
254
+
255
+ #### Badge Status Colors
256
+
257
+ - 🟢 **Success** - Green badge when deployment is live
258
+ - 🔴 **Failed** - Red badge when deployment failed
259
+ - 🟡 **Building** - Yellow badge during deployment
260
+ - ⚫ **Unknown** - Grey badge when no status available
261
+ - 🔴 **Error** - Red badge when deployment errored
262
+
263
+ ### Testing Your Setup
264
+
265
+ 1. **Add the badge** to your repository README
266
+ 2. **Configure the webhook** as described above
267
+ 3. **Make a commit** and push to trigger a deployment
268
+ 4. **Watch the badge** update in real-time during deployment
269
+
270
+ **Initial badge status will show "unknown" until the first webhook is received.**
271
+
198
272
 
199
273
  ### Getting API Tokens
200
274
 
@@ -232,39 +306,123 @@ Render integration is on our roadmap. [Star the repo](https://github.com/alexpot
232
306
 
233
307
  ## Usage Examples
234
308
 
235
- ### In Your AI Conversation
309
+ ### Quick Examples by Tool
236
310
 
237
- Once configured, simply ask your AI assistant:
311
+ #### 1. Check Deployment Status
238
312
 
239
- ```
240
- You: Check my latest Vercel deployment
313
+ > 💬 **Ask your AI:**
314
+ > - "Check my Vercel deployment"
315
+ > - "Is my website live?"
316
+ > - "Show deployment status for my-app"
241
317
 
318
+ #### 2. Watch Deployment (Real-time)
242
319
 
243
- Assistant: I'll check your latest Vercel deployment for you.
320
+ > 💬 **Ask your AI:**
321
+ > - "Watch my deployment"
322
+ > - "Stream my build progress"
323
+ > - "Show me real-time deployment updates"
244
324
 
245
- **Status**: Success
246
- 🌐 **Live URL**: https://my-app.vercel.app
247
- ⏱️ **Deployment Time**: 45 seconds
248
- 📅 **Last Deployed**: January 15, 2025 at 10:30 UTC
249
- 🌍 **Environment**: Production
325
+ Get live updates as your deployment progresses through initialization, building, and completion.
250
326
 
251
- **Latest Commit**:
252
- - SHA: `abc123ef`
253
- - Message: "Update homepage hero section"
254
- - Author: John Doe
327
+ #### 3. Compare Deployments
255
328
 
256
- Everything looks good - your deployment is live and running successfully!
257
- ```
329
+ > 💬 **Ask your AI:**
330
+ > - "Compare my last 2 deployments"
331
+ > - "What changed in my latest deployment?"
332
+ > - "Show build time differences"
333
+
334
+ See performance metrics, risk assessment, and identify what changed between deployments.
335
+
336
+ #### 4. Get Deployment Logs
337
+
338
+ > 💬 **Ask your AI:**
339
+ > - "Show deployment logs"
340
+ > - "Why did my deployment fail?"
341
+ > - "Get error logs for deployment dpl_ABC123"
342
+
343
+ Get intelligent error analysis with suggested fixes and filtered log output.
258
344
 
259
- ### More Examples
345
+ ### MCP Server Usage
260
346
 
347
+ Once configured with your AI assistant, simply ask:
348
+
349
+ #### Example: Check Status
350
+
351
+ **You:** "Check my latest Vercel deployment"
352
+
353
+ **Assistant:**
354
+ > I'll check your latest Vercel deployment for you.
355
+ >
356
+ > ## Deployment Status
357
+ >
358
+ > ### Current Status
359
+ > **Project:** my-app
360
+ > **Platform:** Vercel
361
+ > **Status:** ✅ Success
362
+ > **URL:** https://my-app.vercel.app
363
+ > **Duration:** 45s
364
+ > **Deployed:** 2 hours ago
365
+ >
366
+ > ### Commit Info
367
+ > **SHA:** `abc123ef`
368
+ > **Message:** Update homepage hero section
369
+ > **Author:** John Doe
370
+ >
371
+ > Everything looks good - your deployment is live and running successfully!
372
+
373
+ #### Example: Real-time Monitoring
374
+
375
+ **You:** "Watch my deployment"
376
+
377
+ **Assistant:**
378
+ > ## Deployment Watch
379
+ >
380
+ > ### Real-time Updates
381
+ > 🔄 **Starting to watch deployment for my-app**
382
+ >
383
+ > 🔄 **Deployment state: INITIALIZING**
384
+ >
385
+ > 🔄 **Deployment state: BUILDING**
386
+ > Duration: 15s
387
+ >
388
+ > ✅ **Deployment successful!**
389
+ > URL: https://my-app.vercel.app
390
+ > Duration: 45s
391
+
392
+ **More examples:**
261
393
  - `"Is my website deployment finished?"`
262
394
  - `"Show me the deployment status for project-xyz"`
263
395
  - `"Check if the production deployment succeeded"`
264
396
  - `"What's the status of my latest deploy?"`
397
+ - `"Watch my deployment in real-time"` **[NEW]**
398
+ - `"Compare my last 2 deployments"` **[NEW]**
399
+ - `"Show me the deployment logs for the failed build"` **[NEW]**
400
+ - `"What changed between my current and previous deployment?"` **[NEW]**
401
+
402
+ ### Badge Usage
403
+
404
+ Add live deployment status badges to your README:
405
+
406
+ ```markdown
407
+ # My Project
408
+
409
+ ![Vercel](https://deploy-mcp.io/badge/yourusername/yourrepo/vercel)
410
+
411
+ <!-- Other content -->
412
+ ```
413
+
414
+ **Multiple platforms:**
415
+ ```markdown
416
+ [![Vercel](https://deploy-mcp.io/badge/user/repo/vercel)](https://deploy-mcp.io)
417
+ [![Netlify](https://deploy-mcp.io/badge/user/repo/netlify)](https://deploy-mcp.io)
418
+ ```
265
419
 
266
420
 
267
421
  ## MCP Tools Reference
422
+
423
+ The MCP server provides four powerful tools for comprehensive deployment tracking:
424
+
425
+ ### 1. check_deployment_status
268
426
  Retrieve the latest deployment status for a project.
269
427
 
270
428
  <details>
@@ -278,24 +436,71 @@ Retrieve the latest deployment status for a project.
278
436
 
279
437
  </details>
280
438
 
439
+ ### 2. watch_deployment **[NEW]**
440
+ Stream real-time deployment progress with live updates.
441
+
281
442
  <details>
282
- <summary><strong>Response Format</strong></summary>
443
+ <summary><strong>Parameters</strong></summary>
283
444
 
284
- ```typescript
285
- {
286
- status: "success" | "failed" | "building" | "error",
287
- url: string,
288
- projectName: string,
289
- platform: string,
290
- timestamp: string,
291
- duration: number,
292
- environment: "production" | "preview" | "development",
293
- commit: {
294
- sha: string,
295
- message: string,
296
- author: string
297
- }
298
- }
445
+ | Parameter | Type | Required | Description |
446
+ |-----------|------|----------|-------------|
447
+ | `platform` | string | | Deployment platform (`vercel`, `netlify`, etc.) |
448
+ | `project` | string | ✓ | Project name or ID |
449
+ | `deploymentId` | string | ✗ | Specific deployment ID (latest if not specified) |
450
+ | `token` | string | ✗ | API token (uses env variable if not provided) |
451
+
452
+ </details>
453
+
454
+ ### 3. compare_deployments **[NEW]**
455
+ Compare current deployment with previous versions to identify changes and performance differences.
456
+
457
+ <details>
458
+ <summary><strong>Parameters</strong></summary>
459
+
460
+ | Parameter | Type | Required | Description |
461
+ |-----------|------|----------|-------------|
462
+ | `platform` | string | ✓ | Deployment platform (`vercel`, `netlify`, etc.) |
463
+ | `project` | string | ✓ | Project name or ID |
464
+ | `count` | number | ✗ | Number of deployments to compare (default: 2) |
465
+ | `token` | string | ✗ | API token (uses env variable if not provided) |
466
+
467
+ </details>
468
+
469
+ ### 4. get_deployment_logs **[NEW]**
470
+ Fetch and analyze deployment logs with intelligent error detection.
471
+
472
+ <details>
473
+ <summary><strong>Parameters</strong></summary>
474
+
475
+ | Parameter | Type | Required | Description |
476
+ |-----------|------|----------|-------------|
477
+ | `platform` | string | ✓ | Deployment platform (`vercel`, `netlify`, etc.) |
478
+ | `deploymentId` | string | ✓ | Deployment ID to fetch logs for |
479
+ | `filter` | string | ✗ | Filter logs: `error`, `warning`, or `all` (default: `error`) |
480
+ | `token` | string | ✗ | API token (uses env variable if not provided) |
481
+
482
+ </details>
483
+
484
+ <details>
485
+ <summary><strong>Response Formats</strong></summary>
486
+
487
+ All tools return clean, Markdown-formatted responses for consistent display across AI tools:
488
+
489
+ ```markdown
490
+ ## Deployment Status
491
+
492
+ ### Current Status
493
+ **Project:** my-app
494
+ **Platform:** Vercel
495
+ **Status:** ✅ Success
496
+ **URL:** https://my-app.vercel.app
497
+ **Duration:** 45s
498
+ **Deployed:** 2 hours ago
499
+
500
+ ### Commit Info
501
+ **SHA:** `abc1234`
502
+ **Message:** Fix navigation bug
503
+ **Author:** John Doe
299
504
  ```
300
505
 
301
506
  </details>
@@ -351,30 +556,34 @@ npm run dev:worker
351
556
  ```
352
557
  deploy-mcp/
353
558
  ├── src/
354
- │ ├── index.ts # MCP server entry point
355
- │ ├── worker.ts # Cloudflare Worker for website
356
- │ ├── adapters/ # Platform adapters (new structure)
357
- │ │ ├── base/ # Base adapter framework
358
- │ │ │ ├── adapter.ts # Abstract base class
359
- │ │ │ ├── types.ts # Common interfaces
360
- │ │ │ └── index.ts # Base exports
361
- │ │ ├── vercel/ # Vercel platform support
362
- │ │ │ ├── index.ts # Main adapter class
363
- │ │ │ ├── types.ts # Vercel-specific types
364
- │ │ │ ├── api.ts # API client
365
- │ │ │ └── __tests__/ # Vercel tests
366
- │ │ └── index.ts # All adapter exports
559
+ │ ├── index.ts # MCP server entry point
560
+ │ ├── worker.ts # Cloudflare Worker for website
561
+ │ ├── adapters/ # Platform adapters
562
+ │ │ ├── base/ # Base adapter framework
563
+ │ │ │ ├── adapter.ts # Abstract base class
564
+ │ │ │ ├── api-client.ts # HTTP client with rate limiting
565
+ │ │ │ └── index.ts # Base exports
566
+ │ │ ├── vercel/ # Vercel platform support
567
+ │ │ │ ├── index.ts # Main adapter class
568
+ │ │ │ ├── api.ts # Vercel API client
569
+ │ │ │ ├── endpoints.ts # API endpoint configs
570
+ │ │ │ └── __tests__/ # Vercel tests
571
+ │ │ └── index.ts # All adapter exports
367
572
  │ ├── core/
368
- │ │ ├── mcp-handler.ts # MCP protocol implementation
369
- │ │ └── tools.ts # MCP tool definitions
573
+ │ │ ├── mcp-handler.ts # MCP protocol implementation
574
+ │ │ ├── tools.ts # MCP tool definitions (4 tools)
575
+ │ │ ├── deployment-intelligence.ts # Real-time streaming
576
+ │ │ ├── response-formatter.ts # Markdown formatting
577
+ │ │ └── constants.ts # Configuration constants
370
578
  │ ├── server/
371
- │ │ └── badge.ts # SVG badge generation (v0.2.0)
372
- │ └── types.ts # TypeScript definitions
373
- ├── tests/ # Integration tests
374
- ├── dist/ # Compiled output
375
- ├── wrangler.toml # Cloudflare config
376
- ├── tsconfig.json # TypeScript config
377
- └── package.json # Project metadata
579
+ │ │ ├── badge.ts # SVG badge generation
580
+ └── webhook.ts # Webhook handler
581
+ │ └── types.ts # TypeScript definitions
582
+ ├── tests/ # Integration tests
583
+ ├── dist/ # Compiled output
584
+ ├── wrangler.toml # Cloudflare config
585
+ ├── tsconfig.json # TypeScript config
586
+ └── package.json # Project metadata
378
587
  ```
379
588
 
380
589
  ## Security
@@ -394,47 +603,121 @@ deploy-mcp/
394
603
  3. **Environment Variables** - Store tokens in environment variables, not in code
395
604
  4. **Git Ignore** - Never commit configuration files with tokens
396
605
 
397
- ## Platform Support
606
+ ## Platform Support & Capabilities
398
607
 
608
+ ### Platform Status
399
609
  <table>
400
610
  <thead>
401
611
  <tr>
402
612
  <th>Platform</th>
403
613
  <th>Status</th>
404
- <th>Features</th>
405
- <th>Documentation</th>
614
+ <th>Check Status</th>
615
+ <th>Watch Live</th>
616
+ <th>Compare</th>
617
+ <th>Get Logs</th>
618
+ <th>Badges</th>
406
619
  </tr>
407
620
  </thead>
408
621
  <tbody>
409
622
  <tr>
410
623
  <td><strong>Vercel</strong></td>
411
- <td><strong>✓ Supported</strong></td>
412
- <td>Full deployment tracking with real-time status updates</td>
413
- <td><a href="https://deploy-mcp.io/docs/vercel">View Guide</a></td>
624
+ <td>✅ <strong>Available</strong></td>
625
+ <td>✅</td>
626
+ <td>✅</td>
627
+ <td>✅</td>
628
+ <td>✅</td>
629
+ <td>✅</td>
414
630
  </tr>
415
631
  <tr>
416
632
  <td><strong>Netlify</strong></td>
417
- <td><strong>Coming Soon</strong></td>
418
- <td>In active development</td>
419
- <td>Coming soon</td>
633
+ <td>🚧 <strong>In Development</strong></td>
634
+ <td>🚧</td>
635
+ <td>🚧</td>
636
+ <td>🚧</td>
637
+ <td>🚧</td>
638
+ <td>🚧</td>
420
639
  </tr>
421
640
  <tr>
422
641
  <td><strong>Railway</strong></td>
423
- <td><strong>Planned</strong></td>
424
- <td>On the roadmap</td>
425
- <td>-</td>
642
+ <td>📅 <strong>Planned</strong></td>
643
+ <td>📅</td>
644
+ <td>📅</td>
645
+ <td>📅</td>
646
+ <td>📅</td>
647
+ <td>📅</td>
426
648
  </tr>
427
649
  <tr>
428
650
  <td><strong>Render</strong></td>
429
- <td><strong>Planned</strong></td>
430
- <td>On the roadmap</td>
431
- <td>-</td>
651
+ <td>📅 <strong>Planned</strong></td>
652
+ <td>📅</td>
653
+ <td>📅</td>
654
+ <td>📅</td>
655
+ <td>📅</td>
656
+ <td>📅</td>
432
657
  </tr>
433
658
  </tbody>
434
659
  </table>
435
660
 
661
+ **Legend:** ✅ Available | 🚧 In Development | 📅 Planned
662
+
436
663
  Want support for another platform? [Open an issue](https://github.com/alexpota/deploy-mcp/issues/new) or submit a PR\!
437
664
 
665
+ ## Troubleshooting
666
+
667
+ ### Common Issues & Solutions
668
+
669
+ <details>
670
+ <summary><strong>Tool not showing up in Claude</strong></summary>
671
+
672
+ 1. **Restart Claude Desktop** after updating configuration
673
+ 2. **Check configuration file syntax** - Ensure valid JSON
674
+ 3. **Verify file path** - Check correct config location for your OS
675
+ 4. **Check logs** - Look for MCP errors in Claude's developer console
676
+
677
+ </details>
678
+
679
+ <details>
680
+ <summary><strong>Authentication errors</strong></summary>
681
+
682
+ 1. **Invalid token** - Verify your API token is correct and active
683
+ 2. **Token permissions** - Ensure token has read access to deployments
684
+ 3. **Environment variable** - Check `VERCEL_TOKEN` is set correctly
685
+ 4. **Token format** - Don't include quotes around token in env variable
686
+
687
+ </details>
688
+
689
+ <details>
690
+ <summary><strong>Rate limiting</strong></summary>
691
+
692
+ The MCP server automatically handles rate limiting:
693
+ - **Per-token limits** - 30 requests per minute per token
694
+ - **Automatic retry** - With exponential backoff
695
+ - **Smart polling** - Dynamic intervals based on deployment state
696
+
697
+ If you still hit limits, consider using a different token for heavy usage.
698
+
699
+ </details>
700
+
701
+ <details>
702
+ <summary><strong>Deployment not found</strong></summary>
703
+
704
+ 1. **Project name** - Verify exact project name (case-sensitive)
705
+ 2. **Team scope** - For team projects, may need team-scoped token
706
+ 3. **Deployment exists** - Check if deployment is visible in dashboard
707
+ 4. **Platform** - Ensure you're using correct platform parameter
708
+
709
+ </details>
710
+
711
+ <details>
712
+ <summary><strong>Real-time features not working</strong></summary>
713
+
714
+ The new streaming features (watch, compare, logs) require:
715
+ 1. **Latest version** - Update to latest `deploy-mcp` version
716
+ 2. **API access** - Some features need Pro/Enterprise Vercel plan
717
+ 3. **Active deployment** - Watch only works during active deployments
718
+
719
+ </details>
720
+
438
721
  ## Contributing
439
722
 
440
723
  We love contributions\! Whether it's a bug fix, new feature, or platform support, we'd love to have you.