deploy-mcp 0.2.0 → 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
 
@@ -301,34 +306,98 @@ Render integration is on our roadmap. [Star the repo](https://github.com/alexpot
301
306
 
302
307
  ## Usage Examples
303
308
 
304
- ### MCP Server Usage
309
+ ### Quick Examples by Tool
305
310
 
306
- Once configured with your AI assistant, simply ask:
311
+ #### 1. Check Deployment Status
307
312
 
308
- ```
309
- 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"
310
317
 
311
- Assistant: I'll check your latest Vercel deployment for you.
318
+ #### 2. Watch Deployment (Real-time)
312
319
 
313
- **Status**: Success
314
- 🌐 **Live URL**: https://my-app.vercel.app
315
- ⏱️ **Deployment Time**: 45 seconds
316
- 📅 **Last Deployed**: January 15, 2025 at 10:30 UTC
317
- 🌍 **Environment**: Production
320
+ > 💬 **Ask your AI:**
321
+ > - "Watch my deployment"
322
+ > - "Stream my build progress"
323
+ > - "Show me real-time deployment updates"
318
324
 
319
- **Latest Commit**:
320
- - SHA: `abc123ef`
321
- - Message: "Update homepage hero section"
322
- - Author: John Doe
325
+ Get live updates as your deployment progresses through initialization, building, and completion.
323
326
 
324
- Everything looks good - your deployment is live and running successfully!
325
- ```
327
+ #### 3. Compare Deployments
328
+
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.
344
+
345
+ ### MCP Server Usage
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
326
391
 
327
392
  **More examples:**
328
393
  - `"Is my website deployment finished?"`
329
394
  - `"Show me the deployment status for project-xyz"`
330
395
  - `"Check if the production deployment succeeded"`
331
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]**
332
401
 
333
402
  ### Badge Usage
334
403
 
@@ -350,6 +419,10 @@ Add live deployment status badges to your README:
350
419
 
351
420
 
352
421
  ## MCP Tools Reference
422
+
423
+ The MCP server provides four powerful tools for comprehensive deployment tracking:
424
+
425
+ ### 1. check_deployment_status
353
426
  Retrieve the latest deployment status for a project.
354
427
 
355
428
  <details>
@@ -363,24 +436,71 @@ Retrieve the latest deployment status for a project.
363
436
 
364
437
  </details>
365
438
 
439
+ ### 2. watch_deployment **[NEW]**
440
+ Stream real-time deployment progress with live updates.
441
+
366
442
  <details>
367
- <summary><strong>Response Format</strong></summary>
443
+ <summary><strong>Parameters</strong></summary>
368
444
 
369
- ```typescript
370
- {
371
- status: "success" | "failed" | "building" | "error",
372
- url: string,
373
- projectName: string,
374
- platform: string,
375
- timestamp: string,
376
- duration: number,
377
- environment: "production" | "preview" | "development",
378
- commit: {
379
- sha: string,
380
- message: string,
381
- author: string
382
- }
383
- }
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
384
504
  ```
385
505
 
386
506
  </details>
@@ -436,30 +556,34 @@ npm run dev:worker
436
556
  ```
437
557
  deploy-mcp/
438
558
  ├── src/
439
- │ ├── index.ts # MCP server entry point
440
- │ ├── worker.ts # Cloudflare Worker for website
441
- │ ├── adapters/ # Platform adapters (new structure)
442
- │ │ ├── base/ # Base adapter framework
443
- │ │ │ ├── adapter.ts # Abstract base class
444
- │ │ │ ├── types.ts # Common interfaces
445
- │ │ │ └── index.ts # Base exports
446
- │ │ ├── vercel/ # Vercel platform support
447
- │ │ │ ├── index.ts # Main adapter class
448
- │ │ │ ├── types.ts # Vercel-specific types
449
- │ │ │ ├── api.ts # API client
450
- │ │ │ └── __tests__/ # Vercel tests
451
- │ │ └── 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
452
572
  │ ├── core/
453
- │ │ ├── mcp-handler.ts # MCP protocol implementation
454
- │ │ └── 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
455
578
  │ ├── server/
456
- │ │ └── badge.ts # SVG badge generation (v0.2.0)
457
- │ └── types.ts # TypeScript definitions
458
- ├── tests/ # Integration tests
459
- ├── dist/ # Compiled output
460
- ├── wrangler.toml # Cloudflare config
461
- ├── tsconfig.json # TypeScript config
462
- └── 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
463
587
  ```
464
588
 
465
589
  ## Security
@@ -479,47 +603,121 @@ deploy-mcp/
479
603
  3. **Environment Variables** - Store tokens in environment variables, not in code
480
604
  4. **Git Ignore** - Never commit configuration files with tokens
481
605
 
482
- ## Platform Support
606
+ ## Platform Support & Capabilities
483
607
 
608
+ ### Platform Status
484
609
  <table>
485
610
  <thead>
486
611
  <tr>
487
612
  <th>Platform</th>
488
613
  <th>Status</th>
489
- <th>Features</th>
490
- <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>
491
619
  </tr>
492
620
  </thead>
493
621
  <tbody>
494
622
  <tr>
495
623
  <td><strong>Vercel</strong></td>
496
- <td><strong>✓ Supported</strong></td>
497
- <td>Full deployment tracking with real-time status updates</td>
498
- <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>
499
630
  </tr>
500
631
  <tr>
501
632
  <td><strong>Netlify</strong></td>
502
- <td><strong>Coming Soon</strong></td>
503
- <td>In active development</td>
504
- <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>
505
639
  </tr>
506
640
  <tr>
507
641
  <td><strong>Railway</strong></td>
508
- <td><strong>Planned</strong></td>
509
- <td>On the roadmap</td>
510
- <td>-</td>
642
+ <td>📅 <strong>Planned</strong></td>
643
+ <td>📅</td>
644
+ <td>📅</td>
645
+ <td>📅</td>
646
+ <td>📅</td>
647
+ <td>📅</td>
511
648
  </tr>
512
649
  <tr>
513
650
  <td><strong>Render</strong></td>
514
- <td><strong>Planned</strong></td>
515
- <td>On the roadmap</td>
516
- <td>-</td>
651
+ <td>📅 <strong>Planned</strong></td>
652
+ <td>📅</td>
653
+ <td>📅</td>
654
+ <td>📅</td>
655
+ <td>📅</td>
656
+ <td>📅</td>
517
657
  </tr>
518
658
  </tbody>
519
659
  </table>
520
660
 
661
+ **Legend:** ✅ Available | 🚧 In Development | 📅 Planned
662
+
521
663
  Want support for another platform? [Open an issue](https://github.com/alexpota/deploy-mcp/issues/new) or submit a PR\!
522
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
+
523
721
  ## Contributing
524
722
 
525
723
  We love contributions\! Whether it's a bug fix, new feature, or platform support, we'd love to have you.