Heroku平台MCP服务器

Heroku平台MCP服务器是一个专为大型语言模型(LLMs)设计的协议实现,用于与Heroku平台资源进行无缝交互,提供安全、认证的资源管理工具。

  • by heroku
  • TypeScript
  • 本地部署
  • 82 星标
  • 更新于
在 GitHub 查看 heroku/heroku-mcp-server

使用说明

heroku mcp服务器

Heroku平台MCP服务器适用于公共运行时、Cedar专用和Shield空间以及Fir专用空间。

先决条件

在Heroku上部署

概述

Heroku平台MCP服务器是一种专门的模型上下文协议(MCP)实现,旨在促进 大型语言模型(LLM)和Heroku平台之间的无缝交互。此服务器提供了一组强大的 使LLM能够读取、管理和操作Heroku平台资源的工具和功能。

主要特点:

  • 通过LLM驱动的工具与Heroku平台资源直接交互
  • 利用Heroku CLI对Heroku平台API进行安全和经过身份验证的访问
  • Heroku平台交互的自然语言界面

注:Heroku平台MCP服务器目前处于早期开发阶段。随着我们不断加强和完善 在实施过程中,可用的功能和工具可能会不断发展。我们欢迎反馈和贡献,以帮助塑造 这个项目的未来。

注: 这 Heroku平台MCP服务器 要求 Heroku CLI将在全球范围内安装(v10.8.1+)。通过运行以下命令确保您拥有正确的版本 heroku --version.

配置Heroku平台MCP服务器

您可以配置Claude Desktop、Zed、Cursor、Windsurf和其他客户端,使其与Heroku平台MCP服务器协同工作。

配置Heroku平台MCP服务器 heroku mcp:start

使用 heroku mcp:start 启动Heroku平台MCP服务器。我们推荐这种方法,因为它利用了您现有的 Heroku CLI身份验证,因此您不需要设置 HEROKU_API_KEY 环境变量。这 heroku mcp:start 命令在Heroku CLI 10.8.1及更高版本中可用。

使用配置有几个好处 heroku mcp:start:

  • 无需管理或公开Heroku API密钥
  • 使用当前的Heroku CLI身份验证上下文
  • 与受支持的客户端无缝协作

示例配置 克劳德桌面:

{
  "mcpServers": {
    "heroku": {
      "command": "heroku mcp:start"
    }
  }
}

示例配置 泽德:

{
  "context_servers": {
    "heroku": {
      "command": {
        "path": "heroku",
        "args": ["mcp:start"]
      }
    }
  }
}

示例配置 光标:

{
  "mcpServers": {
    "heroku": {
      "command": "heroku mcp:start"
    }
  }
}

示例配置 帆板运动:

{
  "mcpServers": {
    "heroku": {
      "command": "heroku mcp:start"
    }
  }
}

示例配置 克莱恩:

{
  "mcpServers": {
    "heroku": {
      "command": "heroku mcp:start"
    }
  }
}

示例配置 VSCode:

{
  "mcp": {
    "servers": {
      "heroku": {
        "type": "stdio",
        "command": "heroku",
        "args": ["mcp:start"]
      }
    }
  }
}

示例配置 崔:

{
  "mcpServers": {
    "heroku": {
      "command": "heroku mcp:start"
    }
  }
}

注: 当你使用 heroku mcp:start,服务器使用您当前的Heroku CLI会话进行身份验证,因此您不会 需要设置 HEROKU_API_KEY 环境变量。我们建议您使用 heroku mcp:start,但如果你愿意的话 使用API密钥,您可以使用下面的备用配置。

配置Heroku平台MCP服务器 npx -y @heroku/mcp-server

您还可以使用以下命令启动Heroku平台MCP服务器 npx -y @heroku/mcp-server 命令。此方法需要 你设置 HEROKU_API_KEY 环境 Heroku变量 授权令牌.

生成 HEROKU_API_KEY

使用以下方法之一生成Heroku授权令牌:

  • 使用Heroku CLI命令:

      heroku authorizations:create
    
  • 使用CLI中的现有令牌

      heroku auth:token
    

    复制令牌并将其用作您的 HEROKU_API_KEY 在以下步骤中。

  • 在你的 Heroku仪表板:

    1. 选择您的头像,然后选择 账户设置.
    2. 打开“应用程序”选项卡。
    3. 旁边 授权,单击 创建授权.

示例配置 克劳德桌面:

{
  "mcpServers": {
    "heroku": {
      "command": "npx",
      "args": ["-y", "@heroku/mcp-server"],
      "env": {
        "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
      }
    }
  }
}

示例配置 泽德:

{
  "context_servers": {
    "heroku": {
      "command": {
        "path": "npx",
        "args": ["-y", "@heroku/mcp-server"],
        "env": {
          "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
        }
      }
    }
  }
}

示例配置 光标:

{
  "mcpServers": {
    "heroku": {
      "command": "npx -y @heroku/mcp-server",
      "env": {
        "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
      }
    }
  }
}

示例配置 帆板运动:

{
  "mcpServers": {
    "heroku": {
      "command": "npx",
      "args": ["-y", "@heroku/mcp-server"],
      "env": {
        "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
      }
    }
  }
}

示例配置 克莱恩:

{
  "mcpServers": {
    "heroku": {
      "command": "npx",
      "args": ["-y", "@heroku/mcp-server"],
      "env": {
        "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
      }
    }
  }
}

示例配置 VSCode:

{
  "mcp": {
    "servers": {
      "heroku": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "@heroku/mcp-server"],
        "env": {
          "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
        }
      }
    }
  }
}

示例配置 崔:

{
  "mcpServers": {
    "heroku": {
      "command": "npx",
      "args": ["-y", "@heroku/mcp-server"],
      "env": {
        "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
      }
    }
  }
}

注: 当你使用 npx -y @heroku/mcp-server,您必须设置 HEROKU_API_KEY 环境变量与您的 Heroku授权令牌。

可用工具

应用程序管理

  • list_apps -列出所有Heroku应用程序。您可以按个人、合作者、团队或空间筛选应用程序。
  • get_app_info -获取有关应用程序的详细信息,包括其配置、dynos和附加组件。
  • create_app -创建一个新的应用程序,为地区、团队和空间提供可定制的设置。
  • rename_app -重命名现有应用程序。
  • transfer_app -将应用程序的所有权转移给另一个用户或团队。
  • deploy_to_heroku -使用 app.json 配置,支持团队部署,私有 空间和环境设置。
  • deploy_one_off_dyno -在Heroku一次性dyno的沙盒环境中执行代码或命令。支持文件 创建、网络访问、环境变量和自动清理。非常适合运行脚本、测试或临时 工作量。

流程与Dyno管理

  • ps_list -列出应用程序的所有dynos。
  • ps_scale -向上或向下缩放dynos的数量,或调整dynos的大小。
  • ps_restart -重新启动特定的dynos、流程类型或所有dynos。

附加组件

  • list_addons -列出所有应用程序或特定应用程序的所有附加组件。
  • get_addon_info -获取特定插件的详细信息。
  • create_addon -为应用程序提供新的附加组件。

维护和日志

  • maintenance_on -为应用程序启用维护模式。
  • maintenance_off -禁用应用程序的维护模式。
  • get_app_logs -查看应用程序日志。

管道管理

  • pipelines_create -创建新管道。
  • pipelines_promote -将应用程序推广到管道的下一阶段。
  • pipelines_list -列出可用管道。
  • pipelines_info -获取详细的管道信息。

团队与空间管理

  • list_teams -列出你所属的团队。
  • list_private_spaces -列出可用空间。

PostgreSQL数据库管理

  • pg_psql -对Heroku PostgreSQL数据库执行SQL查询。
  • pg_info -显示详细的数据库信息。
  • pg_ps -查看活动查询和执行详细信息。
  • pg_locks -查看数据库锁并识别阻塞事务。
  • pg_outliers -识别资源密集型查询。
  • pg_credentials -管理数据库凭据和访问权限。
  • pg_kill -终止特定的数据库进程。
  • pg_maintenance -显示数据库维护信息。
  • pg_backups -管理数据库备份和计划。
  • pg_upgrade -将PostgreSQL升级到较新版本。

调试

您可以使用 MCP检查员 或 VS代码运行和调试功能 到 运行并调试服务器。

  1. 使用以下命令将项目链接为全局CLI npm link 从项目根开始。
  2. 建立 npm run build:dev 或监视文件更改并自动生成 npm run build:watch.

使用MCP检查器

使用代码中没有断点的MCP检查器:

# Breakpoints are not available
npx @modelcontextprotocol/inspector heroku-mcp-server

或者,如果您将软件包安装在特定目录中,或者正在Heroku MCP服务器上积极开发:

cd /path/to/servers
npx @modelcontextprotocol/inspector dist/index.js

使用VS代码运行和调试功能

使用VS代码 运行和调试启动器 与完全 代码中的函数断点:

  1. 找到并选择运行调试。
  2. 选择标记为“”的配置MCP Server Launcher”在下拉列表中。
  3. 选择运行/调试按钮。

VS代码/光标调试设置

要设置带有断点的本地调试,请执行以下操作:

  1. 将您的Heroku身份验证令牌存储在VS Code用户设置中:

    • 打开命令面板(Cmd/Ctrl+Shift+P)。
    • 类型 Preferences: Open User Settings (JSON).
    • 添加以下代码段:
    {
      "heroku.mcp.authToken": "your-token-here"
    }
    
  2. 创建或更新 .vscode/launch.json:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "node",
          "request": "launch",
          "name": "MCP Server Launcher",
          "skipFiles": ["<node_internals>/**"],
          "program": "${workspaceFolder}/node_modules/@modelcontextprotocol/inspector/bin/cli.js",
          "outFiles": ["${workspaceFolder}/**/dist/**/*.js"],
          "env": {
            "HEROKU_API_KEY": "${config:heroku.mcp.authToken}",
            "DEBUG": "true"
          },
          "args": ["heroku-mcp-server"],
          "sourceMaps": true,
          "console": "integratedTerminal",
          "internalConsoleOptions": "neverOpen",
          "preLaunchTask": "npm: build:watch"
        },
        {
          "type": "node",
          "request": "attach",
          "name": "Attach to Debug Hook Process",
          "port": 9332,
          "skipFiles": ["<node_internals>/**"],
          "sourceMaps": true,
          "outFiles": ["${workspaceFolder}/dist/**/*.js"]
        },
        {
          "type": "node",
          "request": "attach",
          "name": "Attach to REPL Process",
          "port": 9333,
          "skipFiles": ["<node_internals>/**"],
          "sourceMaps": true,
          "outFiles": ["${workspaceFolder}/dist/**/*.js"]
        }
      ],
      "compounds": [
        {
          "name": "Attach to MCP Server",
          "configurations": ["Attach to Debug Hook Process", "Attach to REPL Process"]
        }
      ]
    }
    
  3. 创建 .vscode/tasks.json:

    {
      "version": "2.0.0",
      "tasks": [
        {
          "type": "npm",
          "script": "build:watch",
          "group": {
            "kind": "build",
            "isDefault": true
          },
          "problemMatcher": ["$tsc"]
        }
      ]
    }
    
  4. (可选)在TypeScript文件中设置断点。

  5. 按F5或使用 Run and Debug 侧边栏。

注意:调试器在启动之前会自动构建TypeScript文件。

环境变量

Heroku平台MCP服务器支持以下环境变量:

HEROKU_API_KEY

您的Heroku授权令牌。需要使用Heroku平台进行身份验证。

MCP_SERVER_REQUEST_TIMEOUT

命令执行超时(毫秒)。如果未设置,则默认为15000(15秒)。

具有自定义超时的示例配置:

{
  "mcpServers": {
    "heroku": {
      "command": "npx",
      "args": ["-y", "@heroku/mcp-server"],
      "env": {
        "HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>",
        "MCP_SERVER_REQUEST_TIMEOUT": "30000"
      }
    }
  }
}