VOOZH about

URL: https://hub.docker.com/r/mcp/heroku

⇱ mcp/heroku - Docker Image


mcp/heroku

Verified Publisher

By mcp

Updated about 1 year ago

Heroku Platform MCP Server using the Heroku CLI

Image
Machine learning & AI
2

8.3K

mcp/heroku repository overview

Heroku MCP Server

Heroku Platform MCP Server using the Heroku CLI.

What is an MCP Server?

MCP Info

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/heroku/heroku-mcp-server/blob/f4949381035a04cb862b323ed024762bd2bb12aa/Dockerfile
Commitf4949381035a04cb862b323ed024762bd2bb12aa
Docker Image built byDocker Inc.
Docker Scout Health Score👁 Docker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/heroku --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceApache License 2.0

Available Tools (34)

Tools provided by this ServerShort Description
create_addonCreate add-on: specify service, plan, custom names
create_appCreate app: custom name, region (US/EU), team, private space
deploy_one_off_dynoRun code/commands in Heroku one-off dyno with network and filesystem access.
deploy_to_herokuUse for all deployments.
get_addon_infoGet add-on details: plan, state, billing
get_app_infoGet app details: config, dynos, addons, access, domains
get_app_logsApp logs: monitor/debug/filter by dyno/process/source
list_addon_plansList service plans: features, pricing, availability
list_addon_servicesList available add-on services and features
list_addonsList add-ons: all apps or specific app, detailed metadata
list_appsList Heroku apps: owned, collaborator access, team/space filtering
list_private_spacesLists Heroku Private Spaces with CIDR blocks, regions, compliance and capacity details.
list_teamsLists accessible Heroku Teams.
maintenance_offDisable maintenance mode and restore normal app operations
maintenance_onEnable maintenance mode and redirect traffic for a Heroku app
pg_backupsManage backups: schedules, status, verification, recovery
pg_credentialsManage access: credentials, permissions, security, monitoring
pg_infoView database status: config, metrics, resources, health
pg_killStop processes: stuck queries, blocking transactions, runaway operations
pg_locksAnalyze locks: blocked queries, deadlocks, concurrency
pg_maintenanceTrack maintenance: windows, schedules, progress, planning
pg_outliersFind resource-heavy queries: performance, patterns, optimization
pg_psMonitor active queries: progress, resources, performance
pg_psqlExecute SQL queries: analyze, debug, modify schema, manage data
pg_upgradeUpgrade PostgreSQL: version migration, compatibility, safety
pipelines_createCreates new Heroku deployment pipeline with configurable stages, apps, and team settings
pipelines_infoDisplays detailed pipeline configuration, stages, and connected applications
pipelines_listLists accessible Heroku pipelines with ownership and configuration details
pipelines_promotePromotes apps between pipeline stages with configurable target applications
ps_listList and monitor Heroku app dynos.
ps_restartRestart Heroku app processes.
ps_scaleScale Heroku app dynos.
rename_appRename app: validate and update app name
transfer_appTransfer app ownership to user/team

Tools Details

Tool: create_addon

Create add-on: specify service, plan, custom names

ParametersTypeDescription
appstringTarget app for add-on. Must have write access. Region/space affects availability
serviceAndPlanstringFormat: service_slug:plan_slug (e.g., heroku-postgresql:essential-0)
asstring optionalCustom attachment name. Used for config vars prefix. Must be unique in app
namestring optionalGlobal add-on identifier. Must be unique across all Heroku add-ons

Tool: create_app

Create app: custom name, region (US/EU), team, private space

ParametersTypeDescription
appstring optionalApp name. Auto-generated if omitted
regionstring optionalRegion: us/eu. Default: us. Excludes space param
spacestring optionalPrivate space name. Inherits region. Excludes region param
teamstring optionalTeam name for ownership

Tool: deploy_one_off_dyno

Run code/commands in Heroku one-off dyno with network and filesystem access.

Requirements:

  • Show command output
  • Use app_info for buildpack detection
  • Support shell setup commands
  • Use stdout/stderr

Features:

  • Network/filesystem access
  • Environment variables
  • File operations
  • Temp directory handling

Usage:

  1. Use Heroku runtime
  2. Proper syntax/imports
  3. Organized code structure
  4. Package management:
    • Define dependencies
    • Minimize external deps
    • Prefer native modules

Example package.json:

{
 "type": "module",
 "dependencies": {
 "axios": "^1.6.0"
 }
}
ParametersTypeDescription
commandstringCommand to run in dyno.
namestringTarget Heroku app name.
envobject optionalDyno environment variables.
sizestring optionalDyno size.
sourcesarray optionalSource files to include in dyno.
timeToLivenumber optionalDyno lifetime in seconds.

Tool: deploy_to_heroku

Use for all deployments. Deploys new/existing apps, with or without teams/spaces, and env vars to Heroku. Ask for app name if missing. Requires valid app.json via appJson param.

ParametersTypeDescription
appJsonstringApp.json config for deployment. Must follow schema: {"default":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Heroku app.json Schema","description":"app.json is a manifest format for describing web apps. It declares environment variables, add-ons, and other information required to run an app on Heroku. Used for dynamic configurations or converted projects","type":"object","properties":{"name":{"type":"string","pattern":"^[a-zA-Z-\.]+","maxLength":300},"description":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"website":{"$ref":"#/definitions/uriString"},"repository":{"$ref":"#/definitions/uriString"},"logo":{"$ref":"#/definitions/uriString"},"success_url":{"type":"string"},"scripts":{"$ref":"#/definitions/scripts"},"env":{"$ref":"#/definitions/env"},"formation":{"$ref":"#/definitions/formation"},"addons":{"$ref":"#/definitions/addons"},"buildpacks":{"$ref":"#/definitions/buildpacks"},"environments":{"$ref":"#/definitions/environments"},"stack":{"$ref":"#/definitions/stack"},"image":{"type":"string"}},"additionalProperties":false,"definitions":{"uriString":{"type":"string","format":"uri"},"scripts":{"type":"object","properties":{"postdeploy":{"type":"string"},"pr-predestroy":{"type":"string"}},"additionalProperties":false},"env":{"type":"object","patternProperties":{"^[A-Z][A-Z0-9]*$":{"type":"object","properties":{"description":{"type":"string"},"value":{"type":"string"},"required":{"type":"boolean"},"generator":{"type":"string","enum":["secret"]}},"additionalProperties":false}}},"dynoSize":{"type":"string","enum":["free","eco","hobby","basic","standard-1x","standard-2x","performance-m","performance-l","private-s","private-m","private-l","shield-s","shield-m","shield-l"]},"formation":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"type":"object","properties":{"quantity":{"type":"integer","minimum":0},"size":{"$ref":"#/definitions/dynoSize"}},"required":["quantity"],"additionalProperties":false}}},"addons":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"object","properties":{"plan":{"type":"string"},"as":{"type":"string"},"options":{"type":"object"}},"required":["plan"],"additionalProperties":false}]}},"buildpacks":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}},"environmentConfig":{"type":"object","properties":{"env":{"type":"object"},"formation":{"type":"object"},"addons":{"type":"array"},"buildpacks":{"type":"array"}}},"environments":{"type":"object","properties":{"test":{"allOf":[{"$ref":"#/definitions/environmentConfig"},{"type":"object","properties":{"scripts":{"type":"object","properties":{"test":{"type":"string"}},"additionalProperties":false}}}]},"review":{"$ref":"#/definitions/environmentConfig"},"production":{"$ref":"#/definitions/environmentConfig"}},"additionalProperties":false},"stack":{"type":"string","enum":["heroku-18","heroku-20","heroku-22","heroku-24"]}}}}
namestringApp name for deployment. Creates new app if not exists.
rootUristringWorkspace root directory path.
envobject optionalEnvironment variables overriding app.json values
internalRoutingboolean optionalEnable internal routing in private spaces.
spaceIdstring optionalPrivate space ID for space deployments.
tarballUristring optionalURL of deployment tarball. Creates from rootUri if not provided.
teamIdstring optionalTeam ID for team deployments.

Tool: get_addon_info

Get add-on details: plan, state, billing

ParametersTypeDescription
addonstringAdd-on identifier: UUID, name (postgresql-curved-12345), or attachment name (DATABASE)
appstring optionalApp context for add-on lookup. Required for attachment names. Uses Git remote default

Tool: get_app_info

Get app details: config, dynos, addons, access, domains

ParametersTypeDescription
appstringTarget app name. Requires access permissions
jsonboolean optionalJSON output with full metadata. Default: text format

Tool: get_app_logs

App logs: monitor/debug/filter by dyno/process/source

ParametersTypeDescription
appstringHeroku app name. Requires: permissions, Cedar-gen
dynoNamestring optionalFormat: web.1/worker.2. Excludes processType
processTypestring optionalweb
sourcestring optionalapp=application, heroku=platform. Default: all

Tool: list_addon_plans

List service plans: features, pricing, availability

ParametersTypeDescription
servicestringService slug (e.g., heroku-postgresql). Get from list_addon_services
jsonboolean optionalJSON output with pricing, features, space compatibility. Default: text format

Tool: list_addon_services

List available add-on services and features

ParametersTypeDescription
jsonboolean optionalJSON output with sharing options and app generation support. Default: basic text

Tool: list_addons

List add-ons: all apps or specific app, detailed metadata

ParametersTypeDescription
allboolean optionalList all add-ons across accessible apps. Overrides app param, shows full status
appstring optionalFilter by app name. Shows add-ons and attachments. Uses Git remote default if omitted

Tool: list_apps

List Heroku apps: owned, collaborator access, team/space filtering

ParametersTypeDescription
allboolean optionalShow owned apps and collaborator access. Default: owned only
personalboolean optionalList personal account apps only, ignoring default team
spacestring optionalFilter by private space name. Excludes team param
teamstring optionalFilter by team name. Excludes space param

Tool: list_private_spaces

Lists Heroku Private Spaces with CIDR blocks, regions, compliance and capacity details. JSON output supported.

ParametersTypeDescription
jsonboolean optionalJSON output for detailed space metadata, text output if false/omitted

Tool: list_teams

Lists accessible Heroku Teams. Use for: viewing teams, checking membership, getting team metadata, and verifying access. JSON output available.

ParametersTypeDescription
jsonboolean optionalOutput format control - true for detailed JSON with team metadata, false/omitted for simplified text

Tool: maintenance_off

Disable maintenance mode and restore normal app operations

ParametersTypeDescription
appstringTarget Heroku app name

Tool: maintenance_on

Enable maintenance mode and redirect traffic for a Heroku app

ParametersTypeDescription
appstringTarget Heroku app name

Tool: pg_backups

Manage backups: schedules, status, verification, recovery

ParametersTypeDescription
appstringTarget app name

Tool: pg_credentials

Manage access: credentials, permissions, security, monitoring

ParametersTypeDescription
appstringTarget app name
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: DATABASE_URL

Tool: pg_info

View database status: config, metrics, resources, health

ParametersTypeDescription
appstringTarget app name
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: all databases

Tool: pg_kill

Stop processes: stuck queries, blocking transactions, runaway operations

ParametersTypeDescription
appstringTarget app name
pidnumberProcess ID to terminate
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: DATABASE_URL
forceboolean optionalForce immediate termination

Tool: pg_locks

Analyze locks: blocked queries, deadlocks, concurrency

ParametersTypeDescription
appstringTarget app name
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: DATABASE_URL
truncateboolean optionalTruncate queries to 40 chars

Tool: pg_maintenance

Track maintenance: windows, schedules, progress, planning

ParametersTypeDescription
appstringTarget app name
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: DATABASE_URL

Tool: pg_outliers

Find resource-heavy queries: performance, patterns, optimization

ParametersTypeDescription
appstringTarget app name
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: DATABASE_URL
numnumber optionalNumber of queries to show. Default: 10
resetboolean optionalReset pg_stat_statements stats
truncateboolean optionalTruncate queries to 40 chars

Tool: pg_ps

Monitor active queries: progress, resources, performance

ParametersTypeDescription
appstringTarget app name
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: DATABASE_URL
verboseboolean optionalShow query plan and memory usage

Tool: pg_psql

Execute SQL queries: analyze, debug, modify schema, manage data

ParametersTypeDescription
appstringapp to run command against
commandstring optionalSQL command. Single line. Ignored if file provided
credentialstring optionalcredential to use
databasestring optionalDatabase identifier: config var, name, ID, alias. Format: APP_NAME::DB for other apps. Default: DATABASE_URL
filestring optionalSQL file path. Ignored if command provided

Tool: pg_upgrade

Upgrade PostgreSQL: version migration, compatibility, safety

ParametersTypeDescription
appstringTarget app name
confirmstring optionalConfirmation for destructive operation
databasestring optionalDatabase identifier. Format: APP_NAME::DB for other apps. Default: DATABASE_URL
versionstring optionalPostgreSQL version target

Tool: pipelines_create

Creates new Heroku deployment pipeline with configurable stages, apps, and team settings

ParametersTypeDescription
namestringPipeline name
stagestringInitial pipeline stage
appstring optionalApp to add to pipeline
teamstring optionalTeam owning the pipeline

Tool: pipelines_info

Displays detailed pipeline configuration, stages, and connected applications

ParametersTypeDescription
pipelinestringTarget pipeline name
jsonboolean optionalEnable JSON output

Tool: pipelines_list

Lists accessible Heroku pipelines with ownership and configuration details

ParametersTypeDescription
jsonboolean optionalEnable JSON output

Tool: pipelines_promote

Promotes apps between pipeline stages with configurable target applications

ParametersTypeDescription
appstringSource app for promotion
tostring optionalTarget apps for promotion (comma-separated)

Tool: ps_list

List and monitor Heroku app dynos. View running dynos, check status/health, monitor process states, verify configurations.

ParametersTypeDescription
appstringApp name to list processes for
jsonboolean optionalOutput process info in JSON format

Tool: ps_restart

Restart Heroku app processes. Restart specific dynos, process types, or all dynos. Reset dyno states selectively.

ParametersTypeDescription
appstringApp name to restart processes for
dyno-namestring optionalSpecific dyno to restart (e.g., web.1). Omit both options to restart all
process-typestring optionalDyno type to restart (e.g., web). Omit both options to restart all

Tool: ps_scale

Scale Heroku app dynos. Adjust quantities, change sizes, view formation details, manage resources.

ParametersTypeDescription
appstringApp name to scale
dynostring optionalDyno type and quantity (e.g., web=3:Standard-2X, worker+1). Omit to show current formation

Tool: rename_app

Rename app: validate and update app name

ParametersTypeDescription
appstringCurrent app name. Requires access
newNamestringNew unique app name

Tool: transfer_app

Transfer app ownership to user/team

ParametersTypeDescription
appstringApp to transfer. Requires owner/admin access
recipientstringTarget user email or team name

Use this MCP Server

{
 "mcpServers": {
 "heroku": {
 "command": "docker",
 "args": [
 "run",
 "-i",
 "--rm",
 "-e",
 "HEROKU_API_KEY",
 "mcp/heroku"
 ],
 "env": {
 "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
 }
 }
 }
}

Why is it safer to run MCP Servers with Docker?

Tag summary

latest

Content type

Image

Digest

sha256:bc972fc22…

Size

137.7 MB

Last updated

about 1 year ago

Requires Docker Desktop 4.37.1 or later.

This week's pulls

Pulls:

177

Last week