Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-6514 — mcp-remote exposed to OS command injection | Kitploit
ツール/GitHubGitHub/cyberency/cve-2025-6514
Vulnerability AnalysisWeb SecurityCommand and ControlUtilities & FrameworksAuthenticationAPI Security
GitHubcyberency/cve-2025-6514

CVE-2025-6514

mcp-remote exposed to OS command injection

リポジトリを見る
719ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

mcp-remote

ローカル(stdio)サーバーのみをサポートするMCPクライアントを、認証サポート付きでリモートMCPサーバーに接続します:

注:これは動作する概念実証(proof-of-concept)ですが、実験的 と見なすべきです。

なぜこれが必要なのか?

これまでのところ、世の中のMCPサーバーの大半はstdioトランスポートを使用してローカルにインストールされています。これにはいくつかの利点があります:ユーザーが実行許可を付与しているため、クライアントとサーバーの両方が暗黙的に相互を信頼できます。APIキーなどの秘密情報の追加は環境変数を使って行え、マシンの外に出ることはありません。また、npx や uvx を利用することで、ユーザーは明示的なインストール手順を省略できます。

しかし、_ウェブに移せる_ソフトウェアのほとんどが実際に_ウェブに移された_のには理由があります:単一のデプロイですべてのユーザーに更新をプッシュできれば、バグの発見・修正や新機能の反復開発がはるかに簡単になるからです。

最新のMCP 認可仕様 により、ユーザーのラップトップでコードを実行すること_なく_、MCPサーバーを世界と共有する安全な方法が実現しました。いや、少なくとも、人気のあるMCP クライアント がすべて対応していれば、そうなっているはずです。大半はstdioのみ対応で、HTTP+SSEを_サポートしている_クライアントも、必要なOAuthフローにはまだ対応していません。

そこで登場するのが mcp-remote です。選択したMCPクライアントがリモートの認可済みサーバーをサポートするようになれば、これを削除できます。それまでの間は、この一行を追加して、使いたいMCPクライアントに合わせてください!

使用方法

最も人気のあるMCPクライアント(Claude Desktop、Cursor、Windsurf)はすべて、以下の設定形式を使用します:

root@kitploit:~
{
  "mcpServers": {
    "remote-example": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse"
      ]
    }
  }
}

カスタムヘッダー

認証をバイパスする場合、またはリモートサーバーへのすべてのリクエストにカスタムヘッダーを送信する場合は、--header CLI引数を渡します:

root@kitploit:~
{
  "mcpServers": {
    "remote-example": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse",
        "--header",
        "Authorization: Bearer ${AUTH_TOKEN}"
      ],
      "env": {
        "AUTH_TOKEN": "..."
      }
    },
  }
}

注: Cursor と Claude Desktop(Windows)には、npx を呼び出す際に args 内のスペースがエスケープされず、値が壊れてしまうバグがあります。次のようにして回避できます:

root@kitploit:~
{
  // rest of config...
  "args": [
    "mcp-remote",
    "https://remote.mcp.server/sse",
    "--header",
    "Authorization:${AUTH_HEADER}" // note no spaces around ':'
  ],
  "env": {
    "AUTH_HEADER": "Bearer <auth-token>" // spaces OK in env vars
  }
},

フラグ

  • npx でエラーが発生する場合は、mcp-remote パッケージのインストールを自動承認するために、最初の引数として -y を追加することを検討してください。
root@kitploit:~
      "command": "npx",
      "args": [
        "-y"
        "mcp-remote",
        "https://remote.mcp.server/sse"
      ]
  • npx に常に mcp-remote の最新版を確認させるには、@latest フラグを追加します:
root@kitploit:~
      "args": [
        "mcp-remote@latest",
        "https://remote.mcp.server/sse"
      ]
  • OAuthリダイレクトで mcp-remote が待ち受けるポート(デフォルトは 3334)を変更するには、サーバーURLの後に追加の引数を指定します。指定したポートが利用できない場合、開いているポートがランダムに選択されることに注意してください。
root@kitploit:~
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse",
        "9696"
      ]
  • OAuthコールバックURLとして mcp-remote が登録するホスト(デフォルトは localhost)を変更するには、--host フラグを追加します。
root@kitploit:~
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse",
        "--host",
        "127.0.0.1"
      ]
  • 信頼できるプライベートネットワークでのHTTP接続を許可するには、--allow-http フラグを追加します。注:これは、トラフィックが傍受されない安全なプライベートネットワークでのみ使用してください。
root@kitploit:~
      "args": [
        "mcp-remote",
        "http://internal-service.vpc/sse",
        "--allow-http"
      ]
  • 詳細なデバッグログを有効にするには、--debug フラグを追加します。これにより、認証プロセス、接続、トークン更新に関するタイムスタンプ付きの詳細なログが ~/.mcp-auth/{server_hash}_debug.log に書き込まれます。
root@kitploit:~
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse",
        "--debug"
      ]
  • mcp-remote の送信HTTP(S)プロキシを有効にするには、--enable-proxy フラグを追加します。有効にすると、mcp-remote は一般的な環境変数(例:HTTP_PROXY、HTTPS_PROXY、NO_PROXY)からプロキシ設定を使用します。
root@kitploit:~
    "args": [
      "mcp-remote",
      "https://remote.mcp.server/sse",
      "--enable-proxy"
    ],
    "env": {
      "HTTPS_PROXY": "http://127.0.0.1:3128",
      "NO_PROXY": "localhost,127.0.0.1"
    }
  • リモートサーバーから特定のツールを無視するには、--ignore-tool フラグを追加します。これにより、指定したパターンに一致するツールが tools/list レスポンスから除外され、tools/call リクエストもブロックされます。* によるワイルドカードパターンをサポートします。
root@kitploit:~
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse",
        "--ignore-tool",
        "delete*",
        "--ignore-tool",
        "remove*"
      ]

複数の --ignore-tool フラグを指定して、さまざまなパターンを無視できます。例:

  • delete* - "delete" で始まるすべてのツールを無視します(例:deleteTask、deleteUser)
  • *account - "account" で終わるすべてのツールを無視します(例:getAccount、updateAccount)
  • exactTool - 「exactTool」という正確な名前のツールのみを無視します
  • OAuthコールバックのタイムアウト(デフォルトは 30 秒)を変更するには、秒単位の値を指定して --auth-timeout フラグを追加します。これは、サーバー側の認証プロセスに時間がかかる場合に便利です。
root@kitploit:~
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse",
        "--auth-timeout",
        "60"
      ]

トランスポート戦略

MCP Remote は、MCPサーバーへの接続時にさまざまなトランスポート戦略をサポートしています。これにより、Server-Sent Events(SSE)とHTTPトランスポートのどちらを使用するか、またどの順序で試行するかを制御できます。

--transport フラグでトランスポート戦略を指定します:

root@kitploit:~
npx mcp-remote https://example.remote/server --transport sse-only

利用可能な戦略:

  • http-first(デフォルト):まずHTTPトランスポートを試行し、HTTPが404エラーで失敗した場合はSSEにフォールバックします
  • sse-first:まずSSEトランスポートを試行し、SSEが405エラーで失敗した場合はHTTPにフォールバックします
  • http-only:HTTPトランスポートのみを使用し、サーバーがサポートしていない場合は失敗します
  • sse-only:SSEトランスポートのみを使用し、サーバーがサポートしていない場合は失敗します

静的OAuthクライアントメタデータ

MCP Remote は、mcp-remote のデフォルトを使用する代わりに、静的なOAuthクライアントメタデータを提供することをサポートしています。 これは、特定のクライアント/ソフトウェアIDやスコープを期待するOAuthサーバーに接続する場合に便利です。

--static-oauth-client-metadata フラグを使用して、クライアントメタデータをJSON文字列または @ 接頭辞付きのファイルパスとして指定します:

root@kitploit:~
npx mcp-remote https://example.remote/server --static-oauth-client-metadata '{ "scope": "space separated scopes" }'
# uses node readfile, so you probably want to use absolute paths if you're not sure what the cwd is
npx mcp-remote https://example.remote/server --static-oauth-client-metadata '@/Users/username/Library/Application Support/Claude/oauth_client_metadata.json'

静的OAuthクライアント情報

仕様 に従い、 サーバーには OAuth動的クライアント登録 のサポートが推奨されていますが、必須ではありません。

このようなサーバーに対して、MCP Remote は代わりに静的なOAuthクライアント情報を提供することをサポートしています。 これは、事前登録されたクライアントを必要とするOAuthサーバーに接続する場合に便利です。

--static-oauth-client-info フラグを使用して、クライアント情報をJSON文字列または @ 接頭辞付きのファイルパスとして指定します:

root@kitploit:~
export MCP_REMOTE_CLIENT_ID=xxx
export MCP_REMOTE_CLIENT_SECRET=yyy
npx mcp-remote https://example.remote/server --static-oauth-client-info "{ \"client_id\": \"$MCP_REMOTE_CLIENT_ID\", \"client_secret\": \"$MCP_REMOTE_CLIENT_SECRET\" }"
# uses node readfile, so you probably want to use absolute paths if you're not sure what the cwd is
npx mcp-remote https://example.remote/server --static-oauth-client-info '@/Users/username/Library/Application Support/Claude/oauth_client_info.json'

Claude Desktop

公式ドキュメント

Claude Desktop にMCPサーバーを追加するには、以下の場所にある設定ファイルを編集する必要があります:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

まだ存在しない場合は、Settings > Developer で有効にする必要があるかもしれません。

設定ファイルの変更を反映するには、Claude Desktop を再起動します。 再起動後、入力ボックスの右下隅にハンマーアイコンが表示されるはずです。

Cursor

公式ドキュメント。設定ファイルは ~/.cursor/mcp.json にあります。

バージョン 0.48.0 以降、Cursor は認証なしのSSEサーバーを直接サポートしています。MCPサーバーが公式のMCP OAuth認可プロトコルを使用している場合は、引き続き "command" サーバーを追加して mcp-remote を呼び出す必要があります。

Windsurf

公式ドキュメント。設定ファイルは ~/.codeium/windsurf/mcp_config.json にあります。

リモートMCPサーバーの構築

有効なOAuthクライアントとして動作することを含む、リモートMCPサーバーの構築とデプロイの手順については、以下のリソースを参照してください:

  • https://developers.cloudflare.com/agents/guides/remote-mcp-server/

特に、以下を参照してください:

  • https://github.com/cloudflare/workers-oauth-provider Cloudflare Workers でMCP準拠のOAuthサーバーを定義するため
  • https://github.com/cloudflare/agents/tree/main/examples/mcp agents フレームワークを使用して McpAgent を定義するため

これらのサーバーのテストについて詳しくは、以下も参照してください:

  • https://developers.cloudflare.com/agents/guides/test-remote-mcp-server/

共有したいリソースを他にもご存知ですか?このReadmeに追加してPRを送ってください!

トラブルシューティング

~/.mcp-auth ディレクトリをクリアする

mcp-remote はすべての認証情報を ~/.mcp-auth(または MCP_REMOTE_CONFIG_DIR が指す場所)に保存します。問題が続く場合は、次を実行してみてください:

root@kitploit:~
rm -rf ~/.mcp-auth

その後、MCPクライアントを再起動します。

Nodeのバージョンを確認する

インストールされているNodeのバージョンが 18以上 であることを確認してください。Claude Desktop は、他の場所に新しいバージョンがインストールされていても、システムのNodeバージョンを使用します。

Claudeを再起動する

claude_desktop_config.json を変更するときは、Claudeを完全に再起動すると役立つことがあります

VPN証明書

VPNの背後にいる場合は問題が発生する可能性があります。NODE_EXTRA_CA_CERTS 環境変数を設定してCA証明書ファイルを指すようにしてみてください。claude_desktop_config.json を使用している場合、次のようになります:

root@kitploit:~
{
 "mcpServers": {
    "remote-example": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse"
      ],
      "env": {
        "NODE_EXTRA_CA_CERTS": "{your CA certificate file path}.pem"
      }
    }
  }
}

ログを確認する

  • Claude Desktopのログをリアルタイムで追跡する
  • MacOS / Linux:
    tail -n 20 -F ~/Library/Logs/Claude/mcp*.log
  • WSL上のbash:
    tail -n 20 -f "C:\Users\YourUsername\AppData\Local\Claude\Logs\mcp.log"
  • Powershell:
    Get-Content "C:\Users\YourUsername\AppData\Local\Claude\Logs\mcp.log" -Wait -Tail 20

デバッグ

デバッグログ

複雑な問題、特にトークン更新や認証の問題をトラブルシューティングするには、--debug フラグを使用します:

root@kitploit:~
"args": [
  "mcp-remote",
  "https://remote.mcp.server/sse",
  "--debug"
]

これにより、接続と認証プロセスの各ステップに関するタイムスタンプ付きの完全な情報を含む詳細なログが ~/.mcp-auth/{server_hash}_debug.log に作成されます。トークン更新の問題、ラップトップのスリープ/復帰の問題、認証の問題が発生した場合は、サポートを求める際にこれらのログを提供してください。

認証エラー

/callback URLによって返される次のエラーが発生した場合:

root@kitploit:~
Authentication Error
Token exchange failed: HTTP 400

rm -rf ~/.mcp-auth を実行して、ローカルに保存された状態とトークンをクリアできます。

"クライアント"モード

コマンドラインで次を実行します(MCPサーバーからではなく):

root@kitploit:~
npx -p mcp-remote@latest mcp-remote-client https://remote.mcp.server/sse

これにより、認可フロー全体が実行され、リモートURLのツールとリソースの一覧表示が試行されます。rm -rf ~/.mcp-auth を実行した後にこれを試して、古い認証情報が問題かどうかを確認してください。そうでない場合は、MCPクライアントのログよりも、これらのログで問題がより明確になるはずです。

ツールをダウンロード