Model Context Protocol(MCP)でリモートサーバーを使用する際、多くのクライアントはstdio通信しかサポートしていないため、HTTPリモートサーバーに接続するにはプロキシツールが必要です。今回は、代表的な2つのプロキシツール「mcp-remote」と「mcp-proxy」の違いと具体的な設定手順を詳しく解説します。
なぜプロキシツールが必要なのか?
MCPサーバーには2つの通信方式があります:
- stdio: 標準入出力を使用(ローカルサーバー向け)
- HTTP: ウェブAPIを使用(リモートサーバー向け)
しかし、Claude Desktop、Cline、Q CLIなどの多くのMCPクライアントはstdioのみをサポートしており、HTTPリモートサーバーに直接接続できません。
❌ 直接接続不可
MCPクライアント ──X──→ HTTPリモートサーバー
✅ プロキシ経由で接続
MCPクライアント → stdio → プロキシ → HTTP → リモートサーバー
mcp-remoteとmcp-proxyの比較
基本情報
項目 | mcp-remote | mcp-proxy |
---|---|---|
開発言語 | JavaScript (Node.js) | Python |
リポジトリ | geelen/mcp-remote | TBXark/mcp-proxy |
パッケージマネージャー | npm/npx | pip/uvx |
インストール | npx mcp-remote | uvx mcp-proxy |
設定の複雑さ | シンプル | やや詳細 |
メンテナンス状況 | 限定的 | 活発 |
機能面での違い
mcp-remote
- シンプル設計: 最小限の設定で動作
- 軽量: Node.js環境があれば即座に利用可能
- 設定項目少なめ: URL指定だけで基本的に動作
mcp-proxy
- 高い安定性: Pythonベースの堅牢な実装
- 詳細設定可能: transport typeなど細かい制御が可能
- 豊富なオプション: ログレベル、タイムアウト設定など
- AWS公式推奨: AWS Knowledge MCP Serverの公式ドキュメントで推奨
実際の設定手順
前提条件
共通
- MCPクライアント(Claude Desktop、Cursor等)がインストール済み
mcp-remote用
- Node.js 18以上がインストール済み
- npm/npxが使用可能
mcp-proxy用
- Python 3.8以上がインストール済み
- uv(推奨)またはpipが使用可能
mcp-remoteの設定手順
1. Node.js環境の確認
node --version # v18以上であることを確認
npm --version
2. MCP設定ファイル編集
Claude Desktopの場合:~/.config/claude-desktop/config.json
{
"mcpServers": {
"aws-knowledge": {
"command": "npx",
"args": [
"mcp-remote",
"https://knowledge-mcp.global.api.aws"
],
"disabled": false,
"autoApprove": ["search_documentation"]
}
}
}
3. 動作確認
Claude Desktopを再起動し、AWS関連の質問をして動作を確認します。
mcp-proxyの設定手順
1. Python/uv環境の確認
# uvがインストールされているか確認
uv --version
# uvがない場合はインストール
curl -LsSf https://astral.sh/uv/install.sh | sh
2. MCP設定ファイル編集
Claude Desktopの場合:~/.config/claude-desktop/config.json
{
"mcpServers": {
"aws-knowledge": {
"command": "uvx",
"args": [
"mcp-proxy",
"--transport",
"streamablehttp",
"https://knowledge-mcp.global.api.aws"
],
"disabled": false,
"autoApprove": ["search_documentation", "read_documentation"]
}
}
}
3. 詳細設定オプション(オプション)
{
"mcpServers": {
"aws-knowledge": {
"command": "uvx",
"args": [
"mcp-proxy",
"--transport", "streamablehttp",
"--timeout", "30",
"--log-level", "INFO",
"https://knowledge-mcp.global.api.aws"
],
"disabled": false,
"autoApprove": ["search_documentation"]
}
}
}
4. 動作確認
Claude Desktopを再起動し、AWS関連の質問をして動作を確認します。
両方を併用する場合の最適設定
異なるリモートサーバーに対して使い分ける場合:
{
"mcpServers": {
"aws-docs-local": {
"command": "uvx",
"args": ["awslabs.aws-documentation-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_DOCUMENTATION_PARTITION": "aws"
},
"disabled": false,
"autoApprove": ["read_documentation"]
},
"aws-knowledge-remote": {
"command": "uvx",
"args": [
"mcp-proxy",
"--transport", "streamablehttp",
"https://knowledge-mcp.global.api.aws"
],
"disabled": false,
"autoApprove": ["search_documentation"]
}
}
}
トラブルシューティング
よくある問題と解決法
1. プロキシツールが見つからない
# mcp-remote
npx mcp-remote --version
# mcp-proxy
uvx mcp-proxy --version
2. 接続エラー
- ネットワーク接続を確認
- ファイアウォール設定をチェック
- プロキシサーバーのURLが正しいか確認
3. 設定ファイルの場所
クライアント | 設定ファイルパス |
---|---|
Claude Desktop (Mac) | ~/Library/Application Support/Claude/claude_desktop_config.json |
Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
Claude Desktop (Linux) | ~/.config/claude-desktop/config.json |
Cursor | ~/.cursor/mcp.json |
推奨事項
どちらを選ぶべきか?
mcp-proxyを推奨する理由:
- AWS公式ドキュメントで推奨されている
- Python製で安定性が高い
- 活発にメンテナンスされている
- 豊富な設定オプション
- uvによる依存関係管理が優秀
mcp-remoteが適している場合:
- すでにNode.js環境が整っている
- シンプルな設定を好む
- 軽量なソリューションを求める
ベストプラクティス
- 設定ファイルのバックアップ: 設定変更前にバックアップを取る
- 段階的導入: まず1つのサーバーで動作確認してから追加
- autoApprove設定: よく使用するツールは自動承認に設定
- ログレベル調整: トラブル時はログレベルを上げて詳細を確認
まとめ
mcp-remoteとmcp-proxyは、どちらもMCPクライアントとHTTPリモートサーバーを橋渡しする重要なツールです。現在の推奨はmcp-proxyですが、環境や要件に応じて適切なツールを選択してください。
正しく設定すれば、Claude DesktopからAWS Knowledge MCP Serverなどの強力なリモートサーバーにアクセスでき、AI開発の生産性が大幅に向上します。
どちらのツールも無料で利用でき、オープンソースとして公開されているため、安心して導入できます。まずは今回紹介した設定例を参考に、実際に試してみることをお勧めします。
コメント