[{"data":1,"prerenderedAt":343},["ShallowReactive",2],{"content-/when-mcp-is-worth-it-in-claude-code":3,"all-pages-for-dir":341,"og-image-/when-mcp-is-worth-it-in-claude-code":342},{"id":4,"title":5,"body":6,"category":322,"description":323,"extension":324,"meta":325,"navigation":326,"ogImage":327,"path":328,"project_name":329,"published":330,"publishedAt":331,"seo":332,"stem":333,"tags":334,"todo":339,"unpublished":330,"updatedAt":327,"__hash__":340},"pages/2026-03/2026-03-26/when-mcp-is-worth-it-in-claude-code.md","Claude Code CLI環境でMCPは必要か？Chrome DevTools MCPを例に考える",{"type":7,"value":8,"toc":306},"minimark",[9,14,23,26,31,39,42,46,49,112,115,119,122,127,133,137,140,165,169,172,182,185,188,195,256,260,272,276,290,293,300],[10,11,13],"h1",{"id":12},"claude-code-cli環境でmcpは必要か","Claude Code CLI環境でMCPは必要か？",[15,16,17,18,22],"p",{},"Claude Code（CLI版）を使っていて、ふと疑問が浮かんだ。CLIから直接",[19,20,21],"code",{},"curl","やCLIツールでAPIを叩けるのに、MCP（Model Context Protocol）サーバーを間に挟む意味はあるのか。",[15,24,25],{},"答えは「場合による」。Chrome DevTools MCPを例に、使い分けの基準を整理する。",[27,28,30],"h2",{"id":29},"mcpの役割を誤解していた","MCPの役割を誤解していた",[15,32,33,34,38],{},"MCPは「ブラウザ環境のClaude Webがローカルリソースにアクセスできないから存在する代替手段」ではない。",[35,36,37],"strong",{},"LLMがツールとして構造的に呼び出せる標準インターフェースを提供するプロトコル","だ。",[15,40,41],{},"Claude Webでのリモートアクセス用途は確かにユースケースの一つだが、本質はそこではない。",[27,43,45],{"id":44},"cli環境でmcpが不要なケース","CLI環境でMCPが不要なケース",[15,47,48],{},"REST APIやCLIツールが充実しているサービスでは、直接叩いた方が柔軟で網羅性が高い。",[50,51,52,68],"table",{},[53,54,55],"thead",{},[56,57,58,62,65],"tr",{},[59,60,61],"th",{},"サービス",[59,63,64],{},"直接アクセス手段",[59,66,67],{},"MCPを使わない理由",[69,70,71,86,99],"tbody",{},[56,72,73,77,83],{},[74,75,76],"td",{},"GitHub",[74,78,79,82],{},[19,80,81],{},"gh"," CLI",[74,84,85],{},"全APIをカバー。MCPは一部のみラップ",[56,87,88,91,96],{},[74,89,90],{},"Google Cloud",[74,92,93,82],{},[19,94,95],{},"gcloud",[74,97,98],{},"同上",[56,100,101,104,109],{},[74,102,103],{},"一般的なREST API",[74,105,106,108],{},[19,107,21],{}," / 専用CLI",[74,110,111],{},"1リクエストで完結。MCPは薄いラッパーに過ぎない",[15,113,114],{},"MCP側がAPIの全機能を網羅していないことが多く、「MCPにはないけどAPIには存在する機能」にぶつかる。直接叩く方が制約が少ない。",[27,116,118],{"id":117},"chrome-devtools-mcpが有利な理由","Chrome DevTools MCPが有利な理由",[15,120,121],{},"Chrome DevTools Protocol（CDP）は、REST APIとは性質が異なる。",[123,124,126],"h3",{"id":125},"_1-ステートフルなプロトコル","1. ステートフルなプロトコル",[15,128,129,130,132],{},"CDPはWebSocket接続を維持し、セッション管理が必要。",[19,131,21],{},"で1リクエスト投げて終わりではない。ページの選択状態、接続の維持、イベントの購読など、状態を持ち続ける必要がある。",[123,134,136],{"id":135},"_2-プロトコルが複雑","2. プロトコルが複雑",[15,138,139],{},"CDPには数百のドメインとメソッドがある。正しいシーケンスで呼ばないと動かない。たとえば、スクリーンショットを撮るだけでも：",[141,142,143,147,150,156,162],"ol",{},[144,145,146],"li",{},"WebSocket接続を確立",[144,148,149],{},"ターゲット（タブ）を選択",[144,151,152,155],{},[19,153,154],{},"Page.enable"," でページイベントを有効化",[144,157,158,161],{},[19,159,160],{},"Page.captureScreenshot"," を呼ぶ",[144,163,164],{},"Base64エンコードされた画像をデコード",[123,166,168],{"id":167},"_3-mcpが状態管理を吸収してくれる","3. MCPが状態管理を吸収してくれる",[15,170,171],{},"MCP経由なら、この複雑さがすべて隠蔽される：",[173,174,179],"pre",{"className":175,"code":177,"language":178},[176],"language-text","mcp__chrome-devtools__new_page(url: \"http://localhost:3000\")\nmcp__chrome-devtools__take_screenshot()\nmcp__chrome-devtools__click(selector: \"#submit-btn\")\n","text",[19,180,177],{"__ignoreMap":181},"",[15,183,184],{},"接続管理、セッション追跡、データのエンコード/デコードをMCPサーバーが処理する。自前でWebSocketクライアントを書く必要がない。",[27,186,187],{"id":187},"判断基準",[15,189,190,191,194],{},"MCPを使うかどうかは、",[35,192,193],{},"対象プロトコルの性質","で判断できる。",[50,196,197,210],{},[53,198,199],{},[56,200,201,204,207],{},[59,202,203],{},"判断軸",[59,205,206],{},"MCPなし（直接アクセス）",[59,208,209],{},"MCPあり",[69,211,212,223,234,245],{},[56,213,214,217,220],{},[74,215,216],{},"プロトコル",[74,218,219],{},"ステートレス（REST）",[74,221,222],{},"ステートフル（WebSocket等）",[56,224,225,228,231],{},[74,226,227],{},"1回のリクエストで完結するか",[74,229,230],{},"する",[74,232,233],{},"しない",[56,235,236,239,242],{},[74,237,238],{},"CLIツールの充実度",[74,240,241],{},"高い",[74,243,244],{},"低い・存在しない",[56,246,247,250,253],{},[74,248,249],{},"認証管理",[74,251,252],{},"シンプル（トークン等）",[74,254,255],{},"OAuth等で面倒",[123,257,259],{"id":258},"mcpが不要","MCPが不要",[261,262,263,266,269],"ul",{},[144,264,265],{},"REST APIに対応するCLIツールが存在する",[144,267,268],{},"1回のHTTPリクエストで完結する",[144,270,271],{},"APIの全機能を使いたい",[123,273,275],{"id":274},"mcpが有利","MCPが有利",[261,277,278,284,287],{},[144,279,280,283],{},[35,281,282],{},"ステートフルなプロトコル","（CDP、LSP等）で状態管理が必要",[144,285,286],{},"認証フロー（OAuth）をMCPに任せたい",[144,288,289],{},"自前でクライアントを実装するコストが高い",[27,291,292],{"id":292},"まとめ",[15,294,295,296,299],{},"「CLIなのにMCP使うの？」という疑問は自然だが、MCPの価値はAPI呼び出しの代行ではなく、",[35,297,298],{},"複雑なプロトコルの状態管理を吸収すること","にある。Chrome DevTools MCPは、その恩恵が分かりやすい典型例だ。",[15,301,302,303,305],{},"逆に、",[19,304,81],{},"で事足りるGitHub操作にMCPを挟むのは、ただの間接層が増えるだけで得るものがない。",{"title":181,"searchDepth":307,"depth":307,"links":308},2,[309,310,311,317,321],{"id":29,"depth":307,"text":30},{"id":44,"depth":307,"text":45},{"id":117,"depth":307,"text":118,"children":312},[313,315,316],{"id":125,"depth":314,"text":126},3,{"id":135,"depth":314,"text":136},{"id":167,"depth":314,"text":168},{"id":187,"depth":307,"text":187,"children":318},[319,320],{"id":258,"depth":314,"text":259},{"id":274,"depth":314,"text":275},{"id":292,"depth":307,"text":292},"dev","Claude CodeのCLI環境では直接APIを叩けるのに、なぜMCPサーバーを使うのか。REST APIとステートフルなプロトコルの違いから、MCPが有利なケースと不要なケースを整理する","md",{},true,null,"/when-mcp-is-worth-it-in-claude-code","claude-code-tools",false,"2026-03-26T00:00:00.000Z",{"title":5,"description":323},"2026-03/2026-03-26/when-mcp-is-worth-it-in-claude-code",[335,336,337,338],"MCP","Claude Code","Chrome DevTools Protocol","API","memo","uT_qxlyDVL-qP-ciScunkjcVVOctjcpGOxgiBZntYe8",[],"https://log.eurekapu.com/og/blog/when-mcp-is-worth-it-in-claude-code.png?v=2026-03-26T00%3A00%3A00.000Z&title=Claude%20Code%20CLI%E7%92%B0%E5%A2%83%E3%81%A7MCP%E3%81%AF%E5%BF%85%E8%A6%81%E3%81%8B%EF%BC%9FChrome%20DevTools%20MCP%E3%82%92%E4%BE%8B%E3%81%AB%E8%80%83%E3%81%88%E3%82%8B&author=Kei%20Komatsu&sig=edf59351d4e2c14b",1782528821200]