[{"data":1,"prerenderedAt":465},["ShallowReactive",2],{"content-/2026-07-14-diary":3,"all-pages-for-dir":463,"og-image-/2026-07-14-diary":464},{"id":4,"title":5,"body":6,"category":444,"concepts":445,"description":446,"extension":447,"meta":448,"navigation":396,"ogImage":445,"path":449,"project_name":450,"published":451,"publishedAt":452,"seo":453,"stem":454,"tags":455,"todo":445,"unpublished":451,"updatedAt":461,"__hash__":462},"pages/2026-07/2026-07-14/diary-2026-07-14.md","2026年7月14日の開発日記 - MCPハンズオン講座の実装とAIベンダー戦略記事5本",{"type":7,"value":8,"toc":428},"minimark",[9,14,18,22,29,32,37,40,46,64,74,77,81,84,88,119,127,129,133,136,140,151,159,161,165,168,172,183,191,193,196,199,361,363,366,380,382,385,405,407,410],[10,11,13],"h1",{"id":12},"_2026年7月14日の開発日記","2026年7月14日の開発日記",[15,16,17],"p",{},"朝のXで「OpenAIの開発者がClaude Codeの中で自社最新モデルを動かす手順を聞いている」という話題が流れてきて、そこからAIベンダー戦略の対話が転がり続けた。気づけば公開記事5本。さらにその考察が「自作APIをMCP化するハンズオン講座を作る」という実装に接続して、計画書のCodexレビュー4往復からultracodeでの実装・検証まで1日で走り切った。裏ではeurekapu-nuxt4のデザインシステム講座を丸一日磨き込み、Live2Dの計画も確定させた（うえで保留と判断した）。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-07/2026-07-14/timeline-2026-07-14.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-自作apimcp化ハンズオン講座の実装journal-mcp-tutorial","1. 自作API→MCP化ハンズオン講座の実装（journal-mcp-tutorial）",[15,38,39],{},"午前のMCP vs APIの考察から「ミニマムな自作APIを作ってMCPサーバー化する一連のチュートリアル講座」（税理士・会計士向け）を作ると決めた。計画書をCodexレビュー4往復で固めてからultracodeに実装させ、FastAPIのミニ仕訳帳API＋MCPサーバーの教材リポジトリと講座記事が1日で形になった。素のAPI直叩きとMCPツール経由の2経路で仕訳登録の再現テストを繰り返し、ホワイトリスト外の勘定科目が両経路とも同じ止まり方をすることまで確認した。",[15,41,42],{},[43,44,45],"strong",{},"主な成果:",[47,48,49,53,61],"ul",{},[50,51,52],"li",{},"教材リポジトリ journal-mcp-tutorial（FastAPI ミニ仕訳帳API＋MCPサーバー、X-API-Keyヘッダー認証）",[50,54,55,56],{},"講座記事の公開: ",[57,58,60],"a",{"href":59},"/journal-api-mcp-tutorial","自作APIをMCP化するハンズオン講座",[50,62,63],{},"2経路×2依頼文の検証セッションで挙動一致を確認、14分割コミットで整理",[15,65,66,69,70],{},[43,67,68],{},"詳細:"," ",[57,71,73],{"href":72},"/journal-mcp-handson-build","自作APIをMCPサーバー化するハンズオン講座を作った日",[75,76],"hr",{},[33,78,80],{"id":79},"_2-aiベンダー戦略の考察と記事執筆mdx-playground","2. AIベンダー戦略の考察と記事執筆（mdx-playground）",[15,82,83],{},"Claude Codeハーネス上で他社モデルが動く仕組み（サブスク枠内・規約の非対称性）、OpenAIのApp Server／アプリストア戦略、「データがスイッチングコストになる」説への反論まで対話で掘り、記事5本とSVG図解18枚に落とした。MCP＝APIのラップという自分の理解は、クラウド会計ソフトのOSS実装を解剖して「手書き15ツール＋実行時検証」という設計を確認するところまで進んだ。",[15,85,86],{},[43,87,45],{},[47,89,90,96,102,113],{},[50,91,92],{},[57,93,95],{"href":94},"/gpt-56-sol-claude-code-harness","GPT-5.6 SolをClaude Codeハーネスで動かす話の記事",[50,97,98],{},[57,99,101],{"href":100},"/openai-app-server-japan-tax","OpenAIのApp Server戦略の記事",[50,103,104,108,109],{},[57,105,107],{"href":106},"/mcp-agent-app-connection","MCPとAPIの関係を整理した記事","・",[57,110,112],{"href":111},"/freee-mcp-anatomy","MCPサーバー実装解剖の記事",[50,114,115],{},[57,116,118],{"href":117},"/kyoyo-savoring-vs-stimulus","教養と刺激についての記事",[15,120,121,69,123],{},[43,122,68],{},[57,124,126],{"href":125},"/ai-vendor-strategy-writing","AIベンダー戦略を対話で掘って記事5本を書いた日",[75,128],{},[33,130,132],{"id":131},"_3-デザインシステム基礎講座のブラッシュアップeurekapu-nuxt4","3. デザインシステム基礎講座のブラッシュアップ（eurekapu-nuxt4）",[15,134,135],{},"講座を自分で読み直しては「実物がない箇所」を潰していった。同じ健康管理アプリをターゲット別（高齢者/若い女性/企業向け）に組み分けた比較モックアップ、講座自身を題材にした9ステップ実践のランディングページ（ヘッダー固定＋スクロールスパイ付き）、章扉画像15枚、全体目次のハンバーガーメニューまで積み上げた。夕方に見つけた本文センタリングずれは原因特定と修正まで済ませ、約30ページの一括検証は明日に回した。",[15,137,138],{},[43,139,45],{},[47,141,142,145,148],{},[50,143,144],{},"ターゲット別比較モックアップ、9ステップ実践LP、実カラー列、章扉画像15枚",[50,146,147],{},"ハンバーガーメニュー実装、チャプター目次の開閉仕様を全ページ統一",[50,149,150],{},"UIデザイン原則のGOOD/BADコンテンツをアクセシビリティ章に移植",[15,152,153,69,155],{},[43,154,68],{},[57,156,158],{"href":157},"/design-system-course-refinement","デザインシステム基礎講座を磨き込んだ一日",[75,160],{},[33,162,164],{"id":163},"_4-ai生成キャラを動かす実装とlive2d計画mdx-playground","4. AI生成キャラを動かす実装とLive2D計画（mdx-playground）",[15,166,167],{},"前日生成したキャラ設定画（No.1 ミコ）に擬似リグのモーションを実装させ、表情切り替えのバグと座標ズレを潰した。動かし方3系統を比較して「Live2D正攻法」に決定し、Codexレビュー3周で計画を確定。ただしCubism Editor習得などの負担を見て、着手は保留と判断して記録を残した。",[15,169,170],{},[43,171,45],{},[47,173,174,177,180],{},[50,175,176],{},"擬似リグのモーション実装（/blog/unpublished で確認できる状態に）",[50,178,179],{},"Live2D正攻法の詳細計画確定: 調査・計画・実装計画（いずれも未公開）",[50,181,182],{},"Cubism SDK/Coreのライセンス論点を整理、work/live2d/ を .gitignore に追加",[15,184,185,69,187],{},[43,186,68],{},[57,188,190],{"href":189},"/live2d-motion-session","AI生成キャラを動かす — Live2D正攻法の計画確定と保留の判断",[75,192],{},[15,194,195],{},"このほか、朝の定例チェーン（/make-diary）で前日日記の生成と決算・統計データの更新（TSMCの推定値、韓国輸出統計）を回した。",[19,197,198],{"id":198},"今日の試行錯誤",[200,201,202,224],"table",{},[203,204,205],"thead",{},[206,207,208,212,215,218,221],"tr",{},[209,210,211],"th",{},"#",[209,213,214],{},"テーマ",[209,216,217],{},"試したこと",[209,219,220],{},"結果",[209,222,223],{},"気づき",[225,226,227,245,261,277,294,311,328,344],"tbody",{},[206,228,229,233,236,239,242],{},[230,231,232],"td",{},"1",[230,234,235],{},"講座データ反映",[230,237,238],{},"TSを修正しても画面が変わらない → 生成JSONの再生成を挟む",[230,240,241],{},"解決",[230,243,244],{},"ビルド時生成物はソース修正だけでは反映されない。データフローを最初に確認する",[206,246,247,250,253,256,258],{},[230,248,249],{},"2",[230,251,252],{},"wrangler更新",[230,254,255],{},"pnpm update wrangler が途中で止まる → devサーバーのファイルロックを疑って停止",[230,257,241],{},[230,259,260],{},"Windowsではdevサーバーがファイルを掴んだままパッケージ更新を止める",[206,262,263,266,269,272,274],{},[230,264,265],{},"3",[230,267,268],{},"表示検証",[230,270,271],{},"DevToolsのresizeが効かない → デバイスエミュレーションに切り替え",[230,273,241],{},[230,275,276],{},"レスポンシブ確認は emulate で行う",[206,278,279,282,285,288,291],{},[230,280,281],{},"4",[230,283,284],{},"AIベンダー考察",[230,286,287],{},"GPT-5.6 SolはAPI従量課金と予想して質問",[230,289,290],{},"予想が覆る",[230,292,293],{},"サブスク枠内で使える設計。OpenAIの囲い込み戦略の一部と理解した",[206,295,296,299,302,305,308],{},[230,297,298],{},"5",[230,300,301],{},"MCP理解",[230,303,304],{},"「MCP＝APIの機械的ラップ」の理解でOSS実装を解剖",[230,306,307],{},"理解を更新",[230,309,310],{},"実物は手書き15ツール＋実行時検証。ツール設計こそが本体",[206,312,313,316,319,322,325],{},[230,314,315],{},"6",[230,317,318],{},"MCP講座検証",[230,320,321],{},"API直叩きとMCP経由の2経路×2依頼文で仕訳登録テスト",[230,323,324],{},"成功",[230,326,327],{},"正常系だけでなく「止まり方」まで両経路で一致することを確認できた",[206,329,330,333,336,339,341],{},[230,331,332],{},"7",[230,334,335],{},"キャラモーション",[230,337,338],{},"擬似リグで表情が切り替わらない → 拡大表示で座標ズレを特定させて調整",[230,340,241],{},[230,342,343],{},"まぶた・口のような細部は拡大して座標を合わせる",[206,345,346,349,352,355,358],{},[230,347,348],{},"8",[230,350,351],{},"Live2D導入判断",[230,353,354],{},"3系統（Live2D/ニューラルレンダリング/image-to-video）を比較",[230,356,357],{},"計画確定→保留",[230,359,360],{},"視線追従できるのはLive2Dだけ。ただし習得コストを見てから着手を決める",[75,362],{},[19,364,365],{"id":365},"今日の学び",[47,367,368,371,374,377],{},[50,369,370],{},"MCPサーバーの価値はAPIを機械的にラップすることではなく、エージェントが誤用しにくいツール設計（数を絞る・実行時検証を入れる）に宿る",[50,372,373],{},"OpenAIとAnthropicの規約の非対称性（他社ハーネスでの利用を許すか）は、計算資源の在庫量と市場シェアの戦略から読み解ける",[50,375,376],{},"講座・教材は「実物」（LP・モックアップ・実カラー表示）を置いた瞬間に説得力が跳ねる。抽象論のページには実例を足す",[50,378,379],{},"ビルド時生成物（JSON）を挟むデータフローでは、ソースを直しただけで安心しない",[75,381],{},[19,383,384],{"id":384},"明日やること",[47,386,389,399],{"className":387},[388],"contains-task-list",[50,390,393,398],{"className":391},[392],"task-list-item",[394,395],"input",{"disabled":396,"type":397},true,"checkbox"," デザインシステム講座の本文センタリング修正を約30ページで一括検証してコミット",[50,400,402,404],{"className":401},[392],[394,403],{"disabled":396,"type":397}," Live2Dは保留のまま（Cubism Editor習得の負担を見て再判断）",[75,406],{},[19,408,409],{"id":409},"関連記事",[47,411,412,416,420,424],{},[50,413,414],{},[57,415,73],{"href":72},[50,417,418],{},[57,419,126],{"href":125},[50,421,422],{},[57,423,158],{"href":157},[50,425,426],{},[57,427,190],{"href":189},{"title":429,"searchDepth":430,"depth":430,"links":431},"",2,[432,433,440,441,442,443],{"id":21,"depth":430,"text":21},{"id":31,"depth":430,"text":31,"children":434},[435,437,438,439],{"id":35,"depth":436,"text":36},3,{"id":79,"depth":436,"text":80},{"id":131,"depth":436,"text":132},{"id":163,"depth":436,"text":164},{"id":198,"depth":430,"text":198},{"id":365,"depth":430,"text":365},{"id":384,"depth":430,"text":384},{"id":409,"depth":430,"text":409},"diary",null,"自作APIをMCP化するハンズオン講座を計画から実装・検証まで一気に作った日。朝のXの話題からAIベンダー戦略を掘って記事5本を公開し、デザインシステム講座の磨き込みとLive2D計画の確定・保留判断まで並走した。","md",{},"/2026-07-14-diary","daily-log",false,"2026-07-14T00:00:00.000Z",{"title":5,"description":446},"2026-07/2026-07-14/diary-2026-07-14",[456,457,458,459,460],"日記","MCP","Claude Code","デザインシステム","Live2D","2026-07-16T00:00:00.000Z","0lj8U0bIIcCxHNmLF1l4rpkafwqP8p3BYq7hOLZBw9c",[],"https://log.eurekapu.com/og/blog/2026-07-14-diary.png?v=2026-07-16T00%3A00%3A00.000Z&title=2026%E5%B9%B47%E6%9C%8814%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20MCP%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3%E8%AC%9B%E5%BA%A7%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%A8AI%E3%83%99%E3%83%B3%E3%83%80%E3%83%BC%E6%88%A6%E7%95%A5%E8%A8%98%E4%BA%8B5%E6%9C%AC&author=Kei%20Komatsu&sig=0b2b9b84996e5b57",1784186908120]