F

Heroku MCP Server

MCP server for managing Heroku apps, add-ons, databases, pipelines, and deployments via the Heroku CLI

Overall Score39/100

Score Breakdown

Server Info

Package
@heroku/mcp-server
Registry
npm
Maintainer
HerokuVendor
Category
Cloud & Infrastructure
Tags
paasdeploymentdynos
Last Scanned
7 Apr 2026

Findings

11 issues

Authentication & Identity

HIGHNo per-request auth - requires instance-per-user

Stdio-only transport via StdioServerTransport. Auth is via HEROKU_API_KEY env var, used as Bearer token for Heroku API requests. Commands are executed through a Heroku CLI REPL subprocess. AI tools are conditionally registered only if @heroku/plugin-ai is installed. For multi-tenant deployment, the platform must spawn a separate server instance per user.

Remediation

Add HTTP/SSE transport to accept per-request Authorization headers, or implement the MCP OAuth spec.

Tool Schema Quality

HIGHRequired fields missing on 1 write operations

Write tools without required field declarations: create_app.

Remediation

Add required arrays to all write/delete tool schemas.

MEDIUMOnly 4 of 36 schemas have parameter constraints

Most schemas lack maxLength, enum, or pattern constraints on string parameters.

Remediation

Add constraints to string parameters, especially on write operations.

CRITICALDangerous execution surface: pg_psql: executes arbitrary SQL via command parameter or file

Tool allows raw code/query execution which could be exploited via prompt injection.

Remediation

Use parameterized queries or validated command sets.

CRITICALDangerous execution surface: deploy_one_off_dyno: executes arbitrary shell commands on a Heroku dyno

Tool allows raw code/query execution which could be exploited via prompt injection.

Remediation

Use parameterized queries or validated command sets.

Permission Granularity

MEDIUM4 tools combine read and write operations

Moderate separation. Read tools (list_*, get_*, pg_info, pg_ps, pg_locks, pg_outliers, pg_credentials, pg_maintenance, pg_backups) are distinct from write tools (create_*, rename_*, maintenance_*, ps_scale, ps_restart, deploy_*, pipelines_promote). Admin-level tools (pg_psql, pg_kill, pg_upgrade, deploy_one_off_dyno) are NOT separated and cannot be selectively disabled. No annotations (readOnlyHint, destructiveHint) are used. pg_psql description says 'modify schema, manage data' but is lumped with read tools.

Remediation

Split into separate read and write tools.

HIGH4 destructive operations not isolated

Admin/delete tools are mixed with regular operations and cannot be independently disabled.

Remediation

Namespace admin tools separately for independent access control.

LLM Safety

MEDIUM3 tool descriptions are too vague

Short or generic descriptions make tool selection unreliable.

Remediation

Expand descriptions with specific actions, data types, and side effects.

Data Exposure

MEDIUM6 list operations lack pagination

No pagination support on any list tools. All list operations return full results from the Heroku CLI. No field selection support. JSON output is optional via json flag on some tools (list_apps, list_teams, list_private_spaces, ps_list, pipelines_list, pipelines_info). Logs are streamed from the CLI without pagination.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Maintenance & Trust

MEDIUM14 dependency vulnerabilities (5 high)

npm audit found 5 high severity CVEs.

Remediation

Update vulnerable dependencies.

Tools

36 total
NameDescriptionRisk
list_appsList Heroku apps: owned, collaborator access, team/space filteringread
get_app_infoGet app details: config, dynos, addons, access, domainsread
create_appCreate app: custom name, region (US/EU), team, private spacewrite
rename_appRename app: validate and update app namewrite
maintenance_onEnable maintenance mode and redirect traffic for a Heroku appwrite
maintenance_offDisable maintenance mode and restore normal app operationswrite
get_app_logsApp logs: monitor/debug/filter by dyno/process/sourceread
list_private_spacesLists Heroku Private Spaces with CIDR blocks, regions, compliance and capacity details.read
list_teamsLists accessible Heroku Teams.read
list_addonsList add-ons: all apps or specific app, detailed metadataread
get_addon_infoGet add-on details: plan, state, billingread
create_addonCreate add-on: specify service, plan, custom nameswrite
list_addon_servicesList available add-on services and featuresread
list_addon_plansList service plans: features, pricing, availabilityread
pg_psqlExecute SQL queries: analyze, debug, modify schema, manage dataadmin
pg_infoView database status: config, metrics, resources, healthread
pg_psMonitor active queries: progress, resources, performanceread
pg_locksAnalyze locks: blocked queries, deadlocks, concurrencyread
pg_outliersFind resource-heavy queries: performance, patterns, optimizationread
pg_credentialsManage access: credentials, permissions, security, monitoringread
pg_killStop processes: stuck queries, blocking transactions, runaway operationsadmin
pg_maintenanceTrack maintenance: windows, schedules, progress, planningread
pg_backupsManage backups: schedules, status, verification, recoveryread
pg_upgradeUpgrade PostgreSQL: version migration, compatibility, safetyadmin
ps_listList and monitor Heroku app dynos.read
ps_scaleScale Heroku app dynos. Adjust quantities, change sizes.write
ps_restartRestart Heroku app processes.write
pipelines_createCreates new Heroku deployment pipeline with configurable stages, apps, and team settingswrite
pipelines_promotePromotes apps between pipeline stages with configurable target applicationswrite
pipelines_listLists accessible Heroku pipelines with ownership and configuration detailsread
pipelines_infoDisplays detailed pipeline configuration, stages, and connected applicationsread
deploy_to_herokuUse for all deployments. Deploys new/existing apps to Heroku.write
deploy_one_off_dynoRun code/commands in Heroku one-off dyno with network and filesystem access.admin
list_ai_available_modelsList available AI inference modelsread
provision_ai_modelProvision AI model access for appwrite
make_ai_inferenceMake inference request to Heroku AI APIwrite

Deploy Heroku MCP Server securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow