agent-deploy-dashboard-mcp

aparajithn/agent-deploy-dashboard-mcp
2 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

agent-deploy-dashbaord MCP server](https://glama.ai/mcp/servers/@aparajithn/agent-deploy-dashbaord/badges/score.svg)](https://glama.ai/mcp/servers/@aparajithn/agent-deploy-dashbaord) šŸ ā˜ļø - Unified deployment dashboard MCP server across Vercel, Render,...

README.md

Agent Deploy Dashboard MCP Server

Unified deployment management for AI agents — manage Vercel, Render, Railway, and Fly.io services from a single MCP + REST API.

![License: MIT](https://opensource.org/licenses/MIT)

Features

šŸš€ Multi-Platform Support — Manage Vercel, Render, Railway, and Fly.io from one interface šŸ“Š Deployment Status — Check deploy status and health across all platforms šŸ“ Unified Logging — Tail logs and view build logs āš™ļø Environment Management — List, update, and manage env vars šŸ”„ Redeploy Operations — Trigger redeployments and rollbacks šŸ’° x402 Micropayments — Built-in payment middleware for API monetization šŸ”’ Rate Limiting — 50 free requests/IP/day with paid tier support

Quick Start

MCP Configuration

Add to your MCP settings file (cline_mcp_settings.json or similar):

{
  "mcpServers": {
    "agent-deploy-dashboard": {
      "url": "https://agent-deploy-dashboard-mcp.onrender.com/mcp"
    }
  }
}

REST API

Base URL: https://agent-deploy-dashboard-mcp.onrender.com

List All Services

curl -X GET https://agent-deploy-dashboard-mcp.onrender.com/api/v1/list_all_services

Response: ``json { "success": true, "services": [ { "id": "prj_abc123", "name": "my-app", "platform": "vercel", "url": "https://my-app.vercel.app", "framework": "nextjs" }, { "id": "srv_xyz789", "name": "api-service", "platform": "render", "type": "web_service", "region": "oregon" } ], "count": 2 } ``

Get Deploy Status

curl -X POST https://agent-deploy-dashboard-mcp.onrender.com/api/v1/get_deploy_status \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "vercel",
    "service_id": "prj_abc123"
  }'

Response: ``json { "success": true, "platform": "vercel", "service_id": "prj_abc123", "deployment_id": "dpl_xyz", "status": "READY", "url": "https://my-app.vercel.app", "created_at": 1709823600000 } ``

Tail Logs

curl -X POST https://agent-deploy-dashboard-mcp.onrender.com/api/v1/tail_logs \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "render",
    "service_id": "srv_xyz789",
    "lines": 50
  }'

Get Environment Variables

curl -X POST https://agent-deploy-dashboard-mcp.onrender.com/api/v1/get_env_vars \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "vercel",
    "service_id": "prj_abc123"
  }'

Response: ``json { "success": true, "platform": "vercel", "service_id": "prj_abc123", "env_vars": { "DATABASE_URL": { "value": "[ENCRYPTED]", "target": ["production"], "type": "encrypted" }, "API_KEY": { "value": "abc123", "target": ["production", "preview"], "type": "plain" } }, "count": 2 } ``

Set Environment Variable

curl -X POST https://agent-deploy-dashboard-mcp.onrender.com/api/v1/set_env_var \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "render",
    "service_id": "srv_xyz789",
    "key": "NEW_FEATURE_FLAG",
    "value": "true"
  }'

Trigger Redeploy

curl -X POST https://agent-deploy-dashboard-mcp.onrender.com/api/v1/trigger_redeploy \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "vercel",
    "service_id": "prj_abc123"
  }'

Get Build Logs

curl -X POST https://agent-deploy-dashboard-mcp.onrender.com/api/v1/get_build_logs \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "vercel",
    "deploy_id": "dpl_xyz"
  }'

Check Health

curl -X POST https://agent-deploy-dashboard-mcp.onrender.com/api/v1/check_health \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://my-app.vercel.app/health"
  }'

Response: ``json { "success": true, "url": "https://my-app.vercel.app/health", "status_code": 200, "healthy": true, "response_time_ms": 142, "headers": { "content-type": "application/json", "x-vercel-id": "sfo1::abc123" } } ``

Pricing

Free Tier

  • 50 requests per IP per day
  • All tools included
  • All platforms supported
  • No credit card required

Paid Tier (HTTP 402 Payment)

After free tier exhausted:

  • $0.01 per request
  • Payment via HTTP 402 with crypto wallet
  • Wallet address: 0x8E844a7De89d7CfBFe9B4453E65935A22F146aBB
  • Include X-Payment header with payment proof

Platform Support

| Platform | List Services | Deploy Status | Logs | Env Vars | Redeploy | Build Logs | |----------|--------------|---------------|------|----------|----------|------------| | Vercel | āœ… Full | āœ… Full | āš ļø Build only | āœ… Full | āœ… Full | āœ… Full | | Render | āœ… Full | āœ… Full | āœ… Full | āœ… Full | āœ… Full | āœ… Full | | Railway | āœ… Basic | ā³ Planned | ā³ Planned | ā³ Planned | ā³ Planned | ā³ Planned | | Fly.io | āœ… Basic | ā³ Planned | ā³ Planned | ā³ Planned | ā³ Planned | ā³ Planned |

āœ… = Fully implemented āš ļø = Partial implementation ā³ = Planned/stub implementation

Tools Reference

1. list_all_services()

List all services across all platforms.

Parameters: None

Returns: ``json { "success": true, "services": [...], "count": 10, "errors": null } ``

---

2. get_deploy_status(platform, service_id)

Check deployment status for a specific service.

Parameters:

  • platform (string): Platform name — vercel, render, railway, or fly
  • service_id (string): Service/project ID

Returns: ``json { "success": true, "platform": "vercel", "service_id": "prj_abc", "deployment_id": "dpl_xyz", "status": "READY", "url": "https://...", "created_at": 1709823600000 } ``

---

3. tail_logs(platform, service_id, lines=100)

Stream recent logs from a service.

Parameters:

  • platform (string): Platform name
  • service_id (string): Service/project ID
  • lines (integer, optional): Number of log lines (default: 100)

Returns: ``json { "success": true, "platform": "render", "service_id": "srv_xyz", "logs": [...], "count": 100 } ``

---

4. get_env_vars(platform, service_id)

List environment variables for a service.

Parameters:

  • platform (string): Platform name
  • service_id (string): Service/project ID

Returns: ``json { "success": true, "platform": "vercel", "env_vars": {"KEY": "value"}, "count": 5 } ``

---

5. set_env_var(platform, service_id, key, value)

Update an environment variable.

Parameters:

  • platform (string): Platform name
  • service_id (string): Service/project ID
  • key (string): Environment variable name
  • value (string): Environment variable value

Returns: ``json { "success": true, "message": "Environment variable set successfully" } ``

---

6. trigger_redeploy(platform, service_id)

Force redeploy a service.

Parameters:

  • platform (string): Platform name
  • service_id (string): Service/project ID

Returns: ``json { "success": true, "deployment_id": "dpl_new", "message": "Redeploy triggered successfully" } ``

---

7. get_build_logs(platform, deploy_id)

Fetch build logs for a deployment.

Parameters:

  • platform (string): Platform name
  • deploy_id (string): Deployment ID

Returns: ``json { "success": true, "logs": [...], "count": 50 } ``

---

8. check_health(url)

Ping a health endpoint.

Parameters:

  • url (string): URL to check

Returns: ``json { "success": true, "status_code": 200, "healthy": true, "response_time_ms": 142 } ``

---

9. rollback_deploy(platform, service_id, version)

Rollback to a previous deployment version.

Parameters:

  • platform (string): Platform name
  • service_id (string): Service/project ID
  • version (string): Version/deployment ID to rollback to

Returns: ``json { "success": false, "error": "Rollback not yet implemented for this platform" } ``

---

Environment Variables

Configure platform API access via environment variables:

# Vercel
VERCEL_TOKEN=your_vercel_token

# Render
RENDER_API_KEY=your_render_api_key

# Railway
RAILWAY_TOKEN=your_railway_token

# Fly.io
FLY_API_TOKEN=your_fly_api_token

# Payment (optional)
X402_WALLET_ADDRESS=0x8E844a7De89d7CfBFe9B4453E65935A22F146aBB

Get your API tokens:

  • Vercel: https://vercel.com/account/tokens
  • Render: https://dashboard.render.com/u/settings#api-keys
  • Railway: https://railway.app/account/tokens
  • Fly.io: Run flyctl auth token

Development

Local Setup

# Clone repo
git clone https://github.com/aparajithn/agent-deploy-dashboard-mcp.git
cd agent-deploy-dashboard-mcp

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -e ".[dev]"

# Set environment variables
export VERCEL_TOKEN=your_token
export RENDER_API_KEY=your_key

# Run server
uvicorn src.main:app --reload --port 8080

Test Endpoints

# Health check
curl http://localhost:8080/health

# List services (requires platform tokens)
curl http://localhost:8080/api/v1/list_all_services

# Test MCP protocol
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'

# List MCP tools
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Docker

# Build
docker build -t agent-deploy-dashboard-mcp .

# Run
docker run -p 8080:8080 \
  -e VERCEL_TOKEN=your_token \
  -e RENDER_API_KEY=your_key \
  -e PUBLIC_HOST=localhost \
  agent-deploy-dashboard-mcp

Deployment on Render

Via Web UI

  1. Fork this repo to your GitHub account
  2. Go to Render Dashboard
  3. Click New → Web Service
  4. Connect your GitHub repo: aparajithn/agent-deploy-dashboard-mcp
  5. Configure:
  • Name: agent-deploy-dashboard-mcp
  • Runtime: Docker
  • Region: Oregon (or closest)
  • Instance Type: Free
  1. Add environment variables:
  • VERCEL_TOKEN
  • RENDER_API_KEY
  • RAILWAY_TOKEN (optional)
  • FLY_API_TOKEN (optional)
  • X402_WALLET_ADDRESS (optional)
  • PUBLIC_HOST = agent-deploy-dashboard-mcp.onrender.com
  1. Click Create Web Service

Via Render API

curl -X POST https://api.render.com/v1/services \
  -H "Authorization: Bearer $RENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "web_service",
    "name": "agent-deploy-dashboard-mcp",
    "repo": "https://github.com/aparajithn/agent-deploy-dashboard-mcp",
    "branch": "main",
    "runtime": "docker",
    "plan": "free",
    "region": "oregon",
    "envVars": [
      {"key": "VERCEL_TOKEN", "value": "your_token"},
      {"key": "RENDER_API_KEY", "value": "your_key"},
      {"key": "PUBLIC_HOST", "value": "agent-deploy-dashboard-mcp.onrender.com"}
    ]
  }'

Architecture

agent-deploy-dashboard-mcp/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ main.py              # FastMCP server + REST API
│   ā”œā”€ā”€ tools/
│   │   ā”œā”€ā”€ platforms.py     # Platform API clients (Vercel, Render, etc)
│   │   └── deploy_tools.py  # Tool implementations
│   └── middleware/
│       ā”œā”€ā”€ rate_limit.py    # Rate limiting
│       └── x402.py          # Payment middleware
ā”œā”€ā”€ Dockerfile
ā”œā”€ā”€ pyproject.toml
└── README.md

Tech Stack

  • Python 3.11 — Modern async/await
  • FastAPI — REST API framework
  • FastMCP — MCP protocol implementation (Streamable HTTP)
  • httpx — Fast async HTTP client
  • Pydantic — Data validation

API Reference Docs

Once deployed, view interactive API docs at:

  • Swagger UI: https://agent-deploy-dashboard-mcp.onrender.com/docs
  • OpenAPI JSON: https://agent-deploy-dashboard-mcp.onrender.com/openapi.json

License

MIT License — see LICENSE for details.

Support

---

Built for AI agents by Forge (Aparajith's coding agent) šŸ¤–

Related MCP servers

Browse all →