つまずきポイント
command not found
エラーが出たら、npx
が使えることを確認: which npx
既存のNode.jsプロジェクトにHatago MCP Hubを統合し、30分以内に実運用レベルのセットアップを完了します。このガイドは最短経路で価値を体験できるよう設計されています。
このガイドを完了すると:
Node.jsバージョン確認
node --version # v20.0.0以上が必要
プロジェクトディレクトリ確認
pwd # 既存プロジェクトのルートにいることを確認ls package.json # package.jsonが存在することを確認
グローバル権限確認(オプション)
npm config get prefix # グローバルインストール先を確認
# プロジェクトへのインストールnpm install --save-dev @himorishige/hatago-mcp-hub
# package.jsonにスクリプトを追加
npm pkg set scripts.mcp="hatago serve"npm pkg set scripts.mcp:dev="hatago serve --tags dev --watch"npm pkg set scripts.mcp:prod="hatago serve --tags production"
期待する出力:
added 15 packages in 3s
失敗時: EACCES
エラーが出たら、sudo
なしでインストールできる場所を確認
# プロジェクトへのインストールpnpm add -D @himorishige/hatago-mcp-hub
# package.jsonにスクリプトを追加pnpm pkg set scripts.mcp="hatago serve"pnpm pkg set scripts.mcp:dev="hatago serve --tags dev --watch"pnpm pkg set scripts.mcp:prod="hatago serve --tags production"
# プロジェクトへのインストールyarn add -D @himorishige/hatago-mcp-hub
# package.jsonにスクリプトを追加(手動編集が必要)
設定ファイル作成
npx @himorishige/hatago-mcp-hub init --mode stdio
環境変数ファイル作成
cat > .env.local << 'EOF'# Hatago MCP Hub環境変数MCP_LOG_LEVEL=infoNODE_ENV=development
# APIキー(必要に応じて追加)# OPENAI_API_KEY=sk-...# GITHUB_TOKEN=ghp_...EOF
.gitignore更新
echo -e "\n# Hatago MCP Hub\nhatago-config.local.json\n.env.local" >> .gitignore
期待する出力:
✓ Created hatago-config.json✓ Added example server configuration
ローカルファイルシステムサーバーを接続して動作確認します。
設定ファイル編集
{ "$schema": "https://raw.githubusercontent.com/himorishige/hatago-hub/main/schemas/config.schema.json", "version": 1, "logLevel": "info", "mcpServers": { "filesystem-local": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "./src"], "cwd": ".", "tags": ["dev", "local", "filesystem"], "env": { "NODE_ENV": "${NODE_ENV:-development}" } } }}
接続テスト
npm run mcp:dev
期待する出力:
🏮 Starting Hatago MCP Hub...✓ Loaded configuration✓ Starting server: filesystem-local✓ Hub ready on stdio
動作確認 別のターミナルで:
echo '{"jsonrpc":"2.0","method":"tools/list","id":1,"params":{}}' | npx @himorishige/hatago-mcp-hub serve --stdio
つまずきポイント
command not found
エラーが出たら、npx
が使えることを確認: which npx
開発・本番環境を分離する設定を追加します。
マルチ環境設定
{ "mcpServers": { "filesystem-local": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "./src"], "tags": ["dev", "local", "filesystem"] },
// 開発用モックサーバー "mock-api": { "command": "node", "args": ["./scripts/mock-server.js"], "tags": ["dev", "mock", "api"], "disabled": false },
// 本番用リモートサーバー "production-api": { "url": "https://api.production.example.com/mcp", "type": "http", "headers": { "Authorization": "Bearer ${PROD_API_TOKEN}" }, "tags": ["production", "api", "remote"], "disabled": false } }}
環境別起動テスト
# 開発環境(dev タグのみ)npm run mcp:dev
# 本番環境(production タグのみ)PROD_API_TOKEN=xxx npm run mcp:prod
アクティブサーバー確認
resources/read
で内部リソースを確認:
{ "jsonrpc": "2.0", "method": "resources/read", "id": 1, "params": { "uri": "hatago://servers" } }
セットアップが正しく完了したことを確認します。
#!/usr/bin/env node
const { spawn } = require('child_process');const readline = require('readline');
async function verifyHatago() { console.log('🔍 Hatago MCP Hub検証開始...\n');
const tests = [ { name: 'サーバー一覧取得', request: { jsonrpc: '2.0', method: 'resources/read', id: 1, params: { uri: 'hatago://servers' } } } ];
const hatago = spawn('npx', ['@himorishige/hatago-mcp-hub', 'serve', '--stdio'], { stdio: ['pipe', 'pipe', 'pipe'] });
const rl = readline.createInterface({ input: hatago.stdout, crlfDelay: Infinity });
let testIndex = 0;
rl.on('line', (line) => { try { const response = JSON.parse(line); console.log(`✅ ${tests[testIndex].name}: 成功`); console.log(` 結果: ${JSON.stringify(response.result, null, 2)}\n`);
testIndex++; if (testIndex < tests.length) { hatago.stdin.write(JSON.stringify(tests[testIndex].request) + '\n'); } else { console.log('🎉 すべての検証が完了しました!'); hatago.kill(); process.exit(0); } } catch (e) { console.error(`❌ エラー: ${e.message}`); console.error(` 応答: ${line}`); hatago.kill(); process.exit(1); } });
// 最初のテスト実行 hatago.stdin.write(JSON.stringify(tests[0].request) + '\n');}
verifyHatago().catch(console.error);
実行:
node scripts/verify-hatago.js
期待する出力:
🔍 Hatago MCP Hub検証開始...
✅ サーバー一覧取得: 成功 結果: { "servers": ["filesystem-local", "mock-api"] }
✅ ステータス確認: 成功 結果: { "status": "ready", "activeServers": 2 }
🎉 すべての検証が完了しました!
エラー | 原因 | 対処法 |
---|---|---|
ENOENT: hatago-config.json | 設定ファイルがない | npx @himorishige/hatago-mcp-hub init を実行 |
Invalid JSON | 設定ファイルの構文エラー | JSONリンターで確認 |
Environment variable not found | 環境変数未設定 | .env.local を確認、export する |
Server failed to start | サーバー起動失敗 | --verbose で詳細ログ確認 |
設定テンプレート作成
cp hatago-config.json hatago-config.example.json# 機密情報を削除してコミット
環境変数テンプレート
cp .env.local .env.example# 値を空にしてコミット
READMEに手順追加
## MCP Hub Setup
1. Install dependencies: `npm install`2. Copy config: `cp hatago-config.example.json hatago-config.json`3. Set environment: `cp .env.example .env.local`4. Edit `.env.local` with your credentials5. Start hub: `npm run mcp:dev`
チームメンバー向けドキュメント
# Hatago MCP Hub セットアップガイド
## 必要な環境変数
- `GITHUB_TOKEN`: GitHub APIアクセス用- `OPENAI_API_KEY`: OpenAI API用(オプション)
## タグの使い分け
- `dev`: 開発環境- `staging`: ステージング環境- `production`: 本番環境
## トラブルシューティング
問題が発生したら `npm run mcp:dev -- --verbose` で詳細ログを確認
以下がすべて完了していることを確認:
おめでとうございます!基本的なセットアップが完了しました。
タグフィルタリング
環境ごとのサーバー管理
リモートサーバー接続
HTTP / SSE の接続
設定の継承
共通設定の再利用