はじめに
3日目 では、
IBM Bob に環境構築の実行計画を書かせようとして、私はやめた
という話を書きました。
理由はシンプルです。
- 自分自身が、まだ分かっていなかった
- Try & Error をしていなかった
- 正解が、頭の中に存在していなかった
この状態で AI に計画を書かせても、返ってくるのは それっぽい文章だけです。
4日目 は、その続き。
AI は一度横に置いて、人間が手で環境を作った記録です。
最初の状態(ほぼ何も揃っていない)
正直なスタート地点は、こうでした。
- macOS(M1 / M2)
- Python は入っている(が、バージョンは気にしていない)
- Node.js は入っている(が、古い)
- Instana API Token はある
- MCP? Transport? 正直ふわっと理解
つまり、
「雰囲気でいけそう」な状態
ここから始めました。
まず Python で詰まる
最初にやったのは、mcp-instana のセットアップです。
python3 -m venv .venv
source .venv/bin/activate
pip install mcp-instana
……が、失敗。
エラーメッセージを見ると、
どうも PyO3 / pydantic-core 周りが怪しい。
ここで初めて、
Python のバージョンが効いている
と気づきました。
Python 3.14 はダメだった
調べていくと、原因ははっきりしました。
- Python 3.14
- PyO3 が未対応
- 結果、ビルドで落ちる
これは Bob に聞く前に、人間が手を動かして初めて分かった事実です。
結論はこれ。
| Python | 状態 |
|---|---|
| 3.10 | 理論上OK(未検証) |
| 3.11 | ✅ 動作確認済み |
| 3.12 | 未検証 |
| 3.13 | ✅ 動作確認済み |
| 3.14 | ❌ ダメ |
私はここで、
Python 3.11 / 3.13 に切り替える判断をしました。
Node.js でも詰まる
次は Transport 周り。
HTTP(SSE) を使うために mcp-remote を試します。
npx mcp-remote http://localhost:8080/mcp
すると警告。
Unsupported engine
required: node >= 20.18.1
current: 20.9.0
……地味だけど重要。
ここで分かったこと。
Node.js のマイナーバージョン、普通に効く
Node.js を上げる(nvm)
ここで nvm を使いました。
nvm install 20.18.1
nvm use 20.18.1
node -v
これでようやく、
- mcp-remote が動く
- HTTP(SSE) が安定する
状態に。
Instana MCP Server を HTTP(SSE) で起動
ここまで来て、やっと MCP Server を起動します。
source .venv/bin/activate
source .env
mcp-instana --transport streamable-http --port 8080
確認ポイントはこれ。
-
http://localhost:8080/mcpが応答する - エラーで即死しない
- 起動ログが静か
この時点で、「あ、これはいけるかも」 という手応えが出ました。
STDIO ↔ HTTP をつなぐ
Bob 側は STDIO 前提なので、
ここで mcp-remote の出番です。
npx mcp-remote http://localhost:8080/mcp \
--allow-http \
--header "instana-base-url: $INSTANA_BASE_URL" \
--header "instana-api-token: $INSTANA_API_TOKEN"
これが通った瞬間、
あ、道がつながった
と分かりました。
- Bob(STDIO)
- mcp-remote
- MCP Server(HTTP)
- Instana API
一本の線になった感覚です。
ここまで全部「手作業」
ここが、この 4日目 の一番大事なポイントです。
この日やったことは、
- 自動化していない
- 計画書もない
- 完璧な再現手順もない
全部、手作業です。
でも、この Try & Error があったからこそ、
- 何が前提か
- どこが壊れやすいか
- 何を IBM Bob に任せられるか
が、ようやく見えてきました。
この時点で初めて言えること
ここまでやって、やっと言えます。
「この構成なら、IBM Bob に考えさせられる」
逆に言うと、
この段階を踏まないと、IBM Bob に計画を書かせる意味がなかった
4日目 のまとめ
- Python 3.14 は地雷だった
- Node.js のマイナーバージョンは普通に効く
- Transport の理解は、動かして初めて腹落ちする
- 手作業の Try & Error は無駄じゃない
- AI の前に、人間が詰まる必要がある
これまでの投稿
1日目: なぜ Instana × IBM Bob なのか? ― Observability を「見る」から「考える」へ
2日目: IBM Bob × MCP × Instana ― なぜこの構成にしたのか、なぜ Transport で迷ったのか
3日目: IBM Bob に環境構築の実行計画を書かせようとして、私は止めた