# Heroku (PaaS) MCP

> Heroku (PaaS) MCP connects your AI agent directly to your cloud application stack. Manage everything from listing hosted apps and auditing environment variables to rebooting specific containers or toggling maintenance mode—all through natural conversation.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** paas, dyno-management, app-deployment, runtime-configuration, cloud-hosting, infrastructure-management

## Description

Manage your entire Heroku deployment cycle without logging into a dashboard or running CLI commands. This connector lets you talk to your infrastructure like it's a teammate on Slack. Need to check if a database token is exposed in an environment variable? Just ask. Want to confirm exactly which regional data center your app is running out of, down to the specific slug size? Your agent handles that. You can audit add-on services like Postgres or Redis and even trigger hard reboots for stalled containers. Because Vinkius hosts this MCP, you connect once from any compatible client—Claude, Cursor, or Windsurf—and get immediate control over your cloud-native apps.

## Tools

### create_app
Provision a fresh structural App container on Heroku

### delete_app
Traffic routing instantly yields persistent 404/no web-dynos responses. Highly destructive.

Permanently wipe an active App from Heroku servers

### get_app_info
g. heroku-22, heroku-24). Confirms exact application routing URL mapping, total slug (code) size in memory, and regional datacenter placements (US or EU) verifying global latency strategies.

Fetch intricate runtime constraints and framework details of an App

### list_addons
Retrieve third-party Platform Add-ons mapping to an App

### list_apps
Use this to discover App IDs, web URL designations, and git repository targets required to execute operational commands downstream.

List all standard applications actively hosted on Heroku PaaS

### list_dynos
1, worker.1). Tracks exactly whether the dyno is "up", "crashed", "idle", or "starting" based on the internal slug runner engine's telemetry.

List discrete containerized Dynos executing inside an App

### list_config_vars
Retrieves highly confidential database tokens `DATABASE_URL`, SendGrid passwords, or OAuth keys.

Dump decrypted Application Environment Variables

### restart_specific_dyno
Exceedingly useful for unsticking hung asynchronous queue workers without impacting active web traffic on the primary frontend replicas.

Selectively reboot one isolated Dyno instance (e.g. worker.2)

### restart_all_dynos
Often resolves ephemeral memory-leaks in Node.js or Ruby runtimes stalling standard request processing.

Hard reboot all containers tied to an entire Application

### toggle_maintenance_mode
Crucial for orchestrating complex sequential database migrations without encountering corrupted states from active sessions.

Rapidly switch an Application's Maintenance Mode switch

## Prompt Examples

**Prompt:** 
```
List all my Heroku apps
```

**Response:** 
```
I've found 4 applications: 'production-api', 'staging-web', 'worker-service', and 'data-pipeline'. Which one would you like to inspect?
```

**Prompt:** 
```
Restart all dynos for 'production-api'
```

**Response:** 
```
Restarting all dynos for 'production-api'… All web and worker containers are being recycled. This should resolve any transient issues within the next minute.
```

**Prompt:** 
```
What's the current maintenance mode status for the 'staging-web' app?
```

**Response:** 
```
Maintenance mode is currently DISABLED for 'staging-web'. Would you like to enable it before performing your database migration?
```

## Capabilities

### App Lifecycle Management
Create new applications or permanently wipe existing ones with a single command.

### Application Status Audit
Fetch detailed information on an app, including its runtime constraints, framework details, and total code size.

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

### undefined
undefined

## Frequently Asked Questions

**Can I see the status of my dynos through my agent?**
Yes. Use the `list_dynos` tool to see the real-time status of each container process (e.g. web.1, worker.1). You'll know exactly if a dyno is up, crashed, starting, or idle.

**How do I check my application's environment variables?**
The `list_config_vars` tool allows your agent to dump the full dictionary of environment variables injected into your dynos, including sensitive keys like DATABASE_URL or API tokens.

**Can my agent restart a specific hung worker without affecting the web traffic?**
Absolutely. Use the `restart_specific_dyno` tool to reboot a single instance (e.g. worker.2). This is perfect for unsticking hung asynchronous queue workers without impacting your primary frontend traffic.