Table of Contents [expand]
最終更新日 2025年07月24日(木)
Heroku MCP サーバーは現在、開発の初期段階にあります。実装の強化と改良を継続していくなかで、利用可能な機能とツールが進化する可能性があります。このプロジェクトの将来を形づくるため、皆さまのフィードバックと貢献をお待ちしております。
Heroku MCP サーバー STDIO モードは、大規模言語モデル (LLM) と Heroku プラットフォーム間のやり取りを容易にするために設計された特殊なモデルコンテキストプロトコル (MCP) 実装です。このサーバーは、LLM が Heroku プラットフォームのリソースを読み取り、管理、操作できるようにする強力なツールと機能のセットを提供します。この実装により、Claude Desktop、Cursor、Windsurf などの AI 搭載アプリケーションは Heroku と直接連携できるようになります。
ユースケースとメリット
Heroku MCP サーバーを使用すると、さまざまなコア開発者ワークフローを改善できます。
- アプリのライフサイクル管理: エージェントがアプリケーションのデプロイ、スケーリング、再起動、ログの表示、監視を処理できるようにします。
- データベース操作: Heroku Postgres データベースでのアクションを有効にします。
- アドオン管理: エージェントが利用可能なアドオンを検出し、アプリにリソースをアタッチまたはデタッチできるようにします。
- スケーリングとパフォーマンス: アプリケーションリソースのインテリジェントなスケーリングを容易にします。
Heroku MCP サーバーはオープンソースであり、GitHub で入手できます。
Heroku MCP サーバーは、Common Runtime、Cedar Private、Shield Spaces、Fir Private Spaces で動作します。
仕組み
Heroku MCP サーバーは、Heroku CLI を使用してアクションを実行します。パフォーマンスと応答性を最大限に高めるために、サーバーは Heroku CLI を Read-Eval-Print Loop (REPL) モードで実行します。これにより、アクションごとに新しい CLI プロセスを起動する必要がなくなるため、コマンドの実行が高速化し、マルチツール操作をより効率的に行えるようになります。
Heroku MCP サーバーでは、Heroku CLI がグローバルにインストールされている必要があります (v10.8.1 以降)。正しいバージョンであることを確認するには、heroku --version を実行します。
Heroku Platform MCP サーバーを構成する
Claude Desktop、Zed、Cursor、Windsurf などのクライアントを Heroku Platform MCP サーバーで動作するように構成できます。
heroku mcp:start を使用して Heroku Platform MCP サーバーを構成する
heroku mcp:start を使用して、Heroku Platform MCP サーバーを起動します。この方法をお勧めするのは、既存の Heroku CLI 認証を利用するため、HEROKU_API_KEY 環境変数を設定する必要がないためです。heroku mcp:start コマンドは、Heroku CLI バージョン 10.8.1 以降で使用できます。
heroku mcp:start で構成すると、以下のような利点があります。
- Heroku API キーを管理したり公開したりする必要がない
- 現在の Heroku CLI 認証コンテキストを使用する
- サポートされているクライアントとシームレスに連携できる
Claude Desktop の構成例
{
"mcpServers": {
"heroku": {
"command": "heroku mcp:start"
}
}
}
Zed の構成例
{
"context_servers": {
"heroku": {
"command": {
"path": "heroku",
"args": ["mcp:start"]
}
}
}
}
Cursor の構成例
{
"mcpServers": {
"heroku": {
"command": "heroku mcp:start"
}
}
}
Windsurf の構成例
{
"mcpServers": {
"heroku": {
"command": "heroku mcp:start"
}
}
}
Cline の構成例
{
"mcpServers": {
"heroku": {
"command": "heroku mcp:start"
}
}
}
VSCode の構成例
{
"mcp": {
"servers": {
"heroku": {
"type": "stdio",
"command": "heroku",
"args": ["mcp:start"]
}
}
}
}
Trae の構成例
{
"mcpServers": {
"heroku": {
"command": "heroku mcp:start"
}
}
}
heroku mcp:start を使用する場合、サーバーは現在の Heroku CLI セッションを使用して認証するため、HEROKU_API_KEY 環境変数を設定する必要がありません。heroku mcp:start の利用をお勧めします。ただし、API キーを使用する場合は、以下の代替構成を使用できます。
npx を使用して Heroku Platform MCP サーバーを構成する
npx -y @heroku/mcp-server コマンドを使用して、Heroku Platform MCP Serverを起動することもできます。この方法では、HEROKU_API_KEY 環境変数を Heroku 認証トークンを使用して設定する必要があります。
認証
以下のいずれかの方法で Heroku 認証トークンを生成します。
Heroku CLI コマンドを使用する
heroku authorizations:createCLI で既存のトークンを使用する
heroku auth:tokenHeroku Dashboard を使用する
- アバターをクリックし、
Account Settings(アカウント設定) を選択します。 Applications(アプリケーション) タブを開きます。Authorizations(承認) の横にあるCreate authorization(承認を作成) をクリックします。
- アバターをクリックし、
トークンをコピーし、HEROKU_API_KEY として使用してHeroku MCP サーバーを構成します。
Claude Desktop の構成例
{
"mcpServers": {
"heroku": {
"command": "npx",
"args": ["-y", "@heroku/mcp-server"],
"env": {
"HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
}
}
}
}
Zed の構成例
{
"context_servers": {
"heroku": {
"command": {
"path": "npx",
"args": ["-y", "@heroku/mcp-server"],
"env": {
"HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
}
}
}
}
}
Cursor の構成例
{
"mcpServers": {
"heroku": {
"command": "npx -y @heroku/mcp-server",
"env": {
"HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
}
}
}
}
Windsurf の構成例
{
"mcpServers": {
"heroku": {
"command": "npx",
"args": ["-y", "@heroku/mcp-server"],
"env": {
"HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
}
}
}
}
Cline の構成例
{
"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>"
}
}
}
}
}
Trae の構成例
{
"mcpServers": {
"heroku": {
"command": "npx",
"args": ["-y", "@heroku/mcp-server"],
"env": {
"HEROKU_API_KEY": "<YOUR_HEROKU_AUTH_TOKEN>"
}
}
}
}
npx -y @heroku/mcp-server を使用する場合、Heroku 認証トークンを使用して HEROKU_API_KEY 環境変数を設定する必要があります
利用可能なツール
アプリケーション管理
list_apps - すべての Heroku アプリを一覧表示します。個人、共同作業者、チーム、スペース別にアプリをフィルタリングできます。get_app_info - アプリの構成、dyno、アドオンなど、アプリに関する詳細情報を取得します。create_app - リージョン、チーム、スペースの設定をカスタマイズできる新しいアプリを作成します。rename_app - 既存のアプリの名前を変更します。transfer_app - アプリのオーナーの権限を別のユーザーまたはチームに譲渡します。deploy_to_heroku -app.json 構成を使用して Heroku にプロジェクトをデプロイし、チームのデプロイ、スペース、環境の設定をサポートします。deploy_one_off_dyno - Heroku の One-off dyno のサンドボックス環境でコードまたはコマンドを実行します。ファイル作成、ネットワークアクセス、環境変数、自動クリーンアップをサポートします。スクリプト、テスト、または一時的なワークロードを実行するのに最適です。
プロセスと dyno の管理
ps_list - アプリのすべての dyno を一覧表示します。ps_scale - dyno の数をスケールしたり、dyno のサイズを変更したりします。ps_restart - 特定の dyno、プロセスタイプ、またはすべての dyno を再起動します。
アドオン
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 Inspector または VS Code の実行とデバッグ機能を使用して、サーバーを実行およびデバッグできます。
- プロジェクトルートから
npm link を使用して、プロジェクトをグローバル CLI としてリンクします。 npm run build:dev でビルドするか、npm run build:watch でファイルの変更を監視して自動的にビルドします。
MCP Inspector を使用する
コードにブレークポイントを設定せずに MCP Inspector を使用します。
# Breakpoints are not available
npx @modelcontextprotocol/inspector heroku-mcp-server
または、パッケージを特定のディレクトリにインストールした場合、または Heroku MCP サーバーでアクティブに開発している場合は、以下のようになります。
cd /path/to/servers
npx @modelcontextprotocol/inspector dist/index.js
VS Code の実行とデバッグ機能を使用する
コード内の完全に機能するブレークポイントを備えた VS Code の実行およびデバッグランチャーを使用します。
- 実行デバッグを見つけて選択します。
- ドロップダウンから
MCP Server Launcher(MCP サーバーランチャー) というラベルの構成を選択します。 Run/Debug(実行/デバッグ) ボタンを選択します。
VS Code / Cursor デバッグの設定
ブレークポイントを使用してローカルデバッグを設定するには、次の手順を実行します。
Heroku 認証トークンを VS Code ユーザー設定に保存します。
Cmd/Ctrl+Shift +P で、Command Palette(コマンドパレット) を開きます。Preferences: Open User Settings (JSON) と入力します。- 次のスニペットを追加します。
json { "heroku.mcp.authToken": "your-token-here" }
.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"] } ] }.vscode/tasks.json を作成します。{ "version": "2.0.0", "tasks": [ { "type": "npm", "script": "build:watch", "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$tsc"] } ] }(任意) TypeScript ファイルにブレークポイントを設定します。
F5 キーを押すか、
Run and Debug(実行とデバッグ) サイドバーを使用します。
デバッガーは起動前に TypeScript ファイルを自動的にビルドします。