RailwayのMCPサーバーがCLIに統合された使い方
Railway MCPサーバーは単体npmパッケージをやめ、Railway CLIに同梱されました。リモート11ツールとローカル47ツールの違い、接続方式の選び方、Claude Codeへの追加手順を扱います。
RailwayのMCPサーバーは、Railway CLIのサブコマンドrailway mcpとして提供されています。単体のnpmパッケージだった頃の設定は互換シムを通して動き続けますが、公式はCLI経由の構成への移行を案内しています。接続方式は3通りあり、選んだ方式でClaude Codeから使えるツールの数が11個から47個まで変わります。
Railway MCPサーバーとは
Railway MCPサーバーとは、AIコーディングツールからRailwayを操作できるようにする公式のMCPサーバーです。プロジェクト作成、テンプレートのデプロイ、環境の管理、変数の取得、サービスの再デプロイを依頼できます。mcp.railway.comでホストされており、既定のCLI接続ではrailway loginのログイン情報をそのまま使い回して認証します。
同様にFly.ioもflyctlにMCPサーバーを内蔵しており、Fly.ioのMCPサーバー(flyctl mcp server)の使い方で接続手順を扱っています。
3つの接続方式はどう選ぶか
railway mcpの接続方式は、ネットワークの条件とクライアントの対応状況で決まります。迷ったら、上から順に当てはめます。
状況別の接続方式
CLIを入れていて、普通にネットワークに出られる
CLI接続(既定)です。
railway mcp installで書き込まれ、railway loginの認証情報を再利用します。トークンの期限切れは自動で更新されます。CLIを使わず、クライアント側で認証したい
OAuth接続です。
railway mcp install --oauthで書き込まれ、クライアントがhttps://mcp.railway.comと直接OAuthをやり取りします。CLIは要りません。mcp.railway.comに届かない環境
ローカルサーバーです。
railway mcp install --localで書き込まれ、CLIのプロセス内でMCPサーバーが動き、Railway APIを直接叩きます。アウトバウンド制限のある社内ネットワークが該当します。
CLI接続では、railway mcpがエディターとはstdioで話し、mcp.railway.comへはHTTPSで転送します。認証情報はエディター設定ファイルに入りません。railway loginをやり直せば、エディターを再起動しなくても次のツール呼び出しから新しいログイン情報が使われます。
--oauthと--remoteを同時に指定すると--oauthが優先されます。--remoteは既定のCLI接続を指す互換用の別名で、付けても挙動は変わりません。
以前の構成との互換のためrailway mcp proxyも残っており、引数なしのrailway mcpと同じ動作をします。この形式の設定が残っていても動き続けます。railway mcp installを実行し直すと、素のrailway mcp形式に更新されます。
Claude Codeに追加する
Claude Codeの--agentの値はclaude-codeです。
railway mcp install --agent claude-code複数のツールを同時に設定するときは、--agentを繰り返します。
railway mcp install --agent claude-code --agent cursor--agentを省略すると、検出されたツールすべてに既定のCLI接続が設定されます。この処理は既存のMCPサーバー設定を消さず、Railwayのエントリだけをマージします。
claude mcp addで手動登録する
installを使わず、Claude Code側のコマンドだけで登録する方法もあります。公式ページには次の1行が載っています。
claude mcp add railway railway mcpClaude Code v2.1.289で-s projectを付けて3方式を登録すると、次のとおりになります。登録先はプロジェクトの.mcp.jsonと表示されます。
claude mcp add -s project railway -- railway mcp
# Added stdio MCP server railway with command: railway mcp to project config
claude mcp add -s project railway-local -- railway mcp local
# Added stdio MCP server railway-local with command: railway mcp local to project config
claude mcp add -s project railway-remote --transport http https://mcp.railway.com
# Added HTTP MCP server railway-remote with URL: https://mcp.railway.com to project config生成された.mcp.jsonは次の形でした。公式ページがrailway mcp install --agent claude-codeの書き込み内容として示す3パターン(command: "railway", args: ["mcp"]、args: ["mcp", "local"]、type: "http")と同じ構造です。
{
"mcpServers": {
"railway": {
"type": "stdio",
"command": "railway",
"args": ["mcp"],
"env": {}
},
"railway-local": {
"type": "stdio",
"command": "railway",
"args": ["mcp", "local"],
"env": {}
},
"railway-remote": {
"type": "http",
"url": "https://mcp.railway.com"
}
}
}stdioの2つは"env": {}が空のままです。Railwayのトークンはどこにも書かれず、railwayコマンドが実行時にログインセッションを読みます。そのためチームで.mcp.jsonをリポジトリに入れても、設定ファイルから資格情報が漏れる経路はありません。ただし各メンバーの環境に、Railway CLI 5.44.0以降とrailway loginが要ります。
リモート11ツールとローカル47ツールの違い
CLI接続とOAuth接続は、同じmcp.railway.comにつながります。ローカルサーバーだけがツールセットを別に持つので、方式の選択は「届くかどうか」に加えて「何ができるか」も変えます。
公式ページに載るツールの数
リモート(mcp.railway.com)
11ツール
CLI接続とOAuth接続で共通
ローカルサーバー
47ツール
railway mcp localで起動
CLI接続の最低バージョン
5.44.0
これ未満はローカルが起動
リモートのツールは、アカウント確認・プロジェクト操作・Feature Flag・デプロイ制御・エージェント委任の5系統です。
| 分類 | ツール名 | できること |
|---|---|---|
| アカウント | ツール名whoami | できることログイン中のアカウント情報 |
| プロジェクト | ツール名list-projects / create-project / list-services | できることプロジェクトとサービスの一覧・作成 |
| Feature Flag | ツール名list-feature-flags / get-feature-flag / set-feature-flag / delete-feature-flag | できること参照・変更・削除(変更と削除は管理者権限) |
| デプロイ | ツール名redeploy / accept-deploy | できること再デプロイ、ステージ済み変更の確定デプロイ |
| エージェント | ツール名railway-agent | できることログ分析・デバッグ・サービス設定など複数手順の操作をRailway側のAIエージェントに委任 |
ローカルサーバーは名前もスネークケース(list_projects)で、リモートのケバブケース(list-projects)とは別の実装です。内訳は次のとおりです。
| 分類 | ツール数 | 主なツール |
|---|---|---|
| プロジェクトとサービス | ツール数12 | 主なツールlist_workspaces / create_service / update_service / scale_service |
| 環境とデプロイ | ツール数5 | 主なツールcreate_environment / list_deployments / deploy |
| ドメイン | ツール数6 | 主なツールgenerate_domain / update_domain / retry_domain_certificate |
| ネットワーク | ツール数6 | 主なツールcreate_tcp_proxy / private_network_status |
| 変数・ストレージ・観測 | ツール数13 | 主なツールset_variables / create_volume / get_logs / http_error_rate |
| そのほか | ツール数5 | 主なツールwhoami / search_templates / deploy_template / docs_search / docs_fetch |
ローカルにだけあるのは、変数の読み書き(list_variables / set_variables / add_reference_variable)、ドメインとTCPプロキシの操作、バケットやボリュームの作成、ログとメトリクスの取得です。逆にFeature Flag、redeploy、accept-deploy、railway-agentはリモートにしかありません。
どちらの一覧にも相手側にないツールがあるため、「ローカルで足りなければリモートへ切り替える」使い分けになります。ステージ済み変更を確定する運用ならリモート、ドメインやボリュームまでエージェントに触らせる運用ならローカル、という分かれ方です。
公式の使用例とツール一覧のずれ
ツール名を意識しなくても、実現したい結果を自然文で伝えると該当ツールが選ばれます。公式ページの使用例は次のとおりです。
- 「このディレクトリのNext.jsアプリをRailwayにデプロイして、ドメインも割り当てて」
- 「Postgresデータベースをテンプレートからデプロイして」
- 「このプロジェクトの環境変数を取得して
.envファイルに保存して」 - 「backendサービスがデプロイ時にクラッシュする原因をRailwayエージェントで調べて」
- 「本番環境のapiサービスを再デプロイして」
- 「プロジェクトのFeature Flagを一覧して」
使用例には変数の取得やドメインの割り当てが並びますが、リモートのツール一覧に変数やドメインの専用ツールはありません。この2つの専用ツールがあるのはローカルの一覧です。例のとおりに動くかどうかは、選んだ接続方式のツールセットと突き合わせて見るのが確実です。
公式の例では、デバッグの依頼に「Railwayエージェントで」と書かれていて、railway-agentを使う例として示されています。ログ解析のように複数手順にまたがる操作にはrailway-agentを使う、という位置づけです。
単体npmパッケージの設定が残っているとき
@railway/mcp-serverというnpmパッケージは非推奨(deprecated)です。以前はスタンドアロンのTypeScript製MCPサーバーでしたが、現在は実体を含まない互換シムで、npx -y @railway/mcp-serverは内部でrailway mcpを起動するだけです。Railway CLIが入っていない環境では、移行手順を表示して終了します。
移行は3手順です。
npm版からCLI版への移行
- 1
Railway CLIを入れる、または更新する
bash <(curl -fsSL https://railway.com/install.sh) - 2
対応クライアントの設定を書き出す
railway mcp install - 3
古いエントリを自分で消す
railway mcp installは既存の設定にRailwayのエントリをマージするだけで、他のサーバーは消しません。npx -y @railway/mcp-serverを呼ぶ古いエントリは、パッケージのREADMEが「Remove old client entries」と案内しているとおり、手作業で取り除きます。
READMEにはrailway mcp install --remoteも載っていますが、現在は既定と同じCLI接続を指します。設定ファイルに直接書く次の形も載っています。
{
"mcpServers": {
"railway": {
"command": "railway",
"args": ["mcp"]
}
}
}対応エージェントとOAuth専用のクライアント
--agentに渡せる値は6種類です。エディターごとに設定ファイルの形式が異なり、railway mcp installが形式を書き分けます。
| ツール | --agentの値 |
|---|---|
| Claude Code | --agentの値claude-code |
| Cursor | --agentの値cursor |
| Factory Droid | --agentの値factory-droid |
| GitHub Copilot | --agentの値copilot |
| OpenAI Codex | --agentの値codex |
| OpenCode | --agentの値opencode |
Windsurf・Cline・Devinの3つは、CLI接続に対応せずOAuth接続だけをサポートします。公式ページのOAuthタブの設定を使います。
CLIの導入とMCP設定、認証をまとめて済ませる1行のブートストラップも用意されています。
curl -fsSL agents.railway.com | shCLIが入っていれば、railway setup agent(CLI接続)かrailway setup agent --oauth(OAuth接続)だけで同じ設定が済みます。
破壊的な操作と認証の扱い
CLI接続では、エディター設定ファイルに長期有効なRailwayの認証情報は保存されません。OAuth接続では、どのワークスペース・プロジェクトにアクセスさせるかをクライアント側で選べ、発行されるトークンは短命でRailwayのアカウント設定から取り消せます。
プロジェクトトークンでの接続は受け付けられません。課金と監査ログにユーザー本人の識別が必要なためです。
破壊的な操作にはプロトコルレベルのヒントが付き、ヒントに従うクライアントでは実行前に確認が出ます。公式はこの確認に頼りきらず、LLMが提案した内容を人間が見てから承認するよう案内しています。対象は次のとおりです。
- リモート:
redeploy/accept-deploy/railway-agent - ローカル限定:
remove_service/delete_domain/remove_tcp_proxy/remove_bucket/remove_volume
あわせて、MCPサーバーを呼べるユーザーを信頼できる範囲に限ること、本番など重要な環境では使いどころを絞ることも案内されています。ローカルサーバーは、プレビューを返したうえでconfirm: trueを要求する作りです。
よくあるつまずき
古いnpmパッケージの起動コマンドだけが残っている。互換シム経由で動作は続きますが、CLIが入っていない環境では起動時にエラーで止まります。
CLIが古く、mcp.railway.comに接続できない。既定のリモート接続にはCLI 5.44.0以降が必要です。それより古いと、代わりにローカルのin-processサーバーが起動します。ツールが想定と違うときは、まずrailway --versionを見ます。
ローカルとリモートでツールが違う。同じ操作ができるとは限りません。.mcp.jsonにmcpだけが書かれているか、mcp localが付いているかで見分けられます。
Windsurf・Cline・Devinで既定のコマンドが通らない。この3つはOAuth接続だけに対応しているため、CLI接続の設定は使えません。
まとめ
Claude Codeで使うなら、railway mcp install --agent claude-codeでCLI接続にするのが基本です。ドメインやボリューム、変数の書き込みまで任せたい場合や、mcp.railway.comに届かない環境ではローカルサーバー(47ツール)に切り替え、Feature Flagやaccept-deployが要るならリモート(11ツール)に戻します。
同じインフラ操作系のMCPサーバーとしては、Render MCPサーバーや、IaCコードの検索に使うTerraform MCPサーバーの使い方があります。MCPサーバー追加の基本操作はClaude Code MCP設定ガイドで扱っています。