【爆速15分】MCPサーバーでMCPサーバーを作る!「いい感じにアレしとくアプリ」開発秘話
LT中止の絶望から生まれた奇跡。Claude DesktopとClaude Codeで実現した究極のvibe coding体験記

【爆速15分】MCPサーバーでMCPサーバーを作る!「いい感じにアレしとくアプリ」開発秘話
岩盤浴でほかほかしていた気持ちが一瞬で冷め切った7月最終日の夕方。60週目のLTイベントが急遽中止になった瞬間から、この物語は始まる。
絶望からの大逆転劇
毎週欠かさず続けてきたLT登壇。記念すべき60週目を目前にして、まさかの中止通知。しかし諦めるわけにはいかない。年末年始に大爆死したYouTube LIVEのリベンジマッチとして、とんでもない企画を緊急開催することにした。
「2時間でAIツールを駆使してお題をもとにvibeコーディングしてデプロイまで行い、最後の30分でスライドを作ってLTをするYouTube LIVE」
Xでお題を募集すると、続々と集まる無茶振りの数々。順調に2つのお題を消化し、21時のスライド作成開始まで残り15分。最後にもう一度ルーレットを回した瞬間、運命のお題が表示された。
一瞬脳がフリーズしてしまった。残り15分でこれをどう実装するのか。
MCPサーバーでMCPサーバーを作るという禁断の技
絶望的な状況の中、ふと閃いた。Claude DesktopにはMCPサーバーとして「Claude Code」を登録している。そして今必要なのもMCPサーバー。つまり…
MCPサーバーを使ってMCPサーバーを作ればいい。
この入れ子構造の実装に挑戦することにした。YouTube LIVEは止められない。視聴者が見守る中、一か八かの賭けに出た。
// 実際に生成されたコードの一部
const randomElements = {
folders: [
'秘密の花園',
'迷子の思い出',
'月曜日の憂鬱',
'金曜日の解放感',
'開かずの間',
'なんとなく大事そう'
],
actions: [
'createRandomFolder',
'createArtFolder',
'renameRandomFile',
'hideSecretFile',
'createTimeCapule'
]
};
15分で完成した奇跡のアプリ
Claude Codeは期待を裏切らなかった。コードを一行も書くことなく、対話だけで以下の機能を持つMCPサーバーが完成した:
実装された7つのランダムアクション
- ランダムフォルダ作成: 「月曜日の憂鬱」「金曜日の解放感」などの詩的な名前のフォルダを生成
- ランダムファイル作成: 俳句、運勢、買い物メモなどを自動生成
- ファイル整理: 画像ファイルを「見つけた宝物」フォルダに避難
- ファイルリネーム: スクリーンショットを「たぶん重要.png」などに改名
- デスクトップ美術館: ASCIIアートの現代アート作品を展示
- 秘密ファイル作成:
.secret_treasure.txt
という隠しファイルを生成 - タイムカプセル: 1年後の自分へのメッセージを作成
生成されるコンテンツの例
// 俳句
デスクトップに
散らばるファイル
夏の空
// 買い物メモ
- 牛乳
- パン
- 整理整頓の本
- やる気(売ってたら)
- 時間(これも売ってたら)
// デスクトップ哲学
「完璧に整理されたデスクトップは、
使われていないデスクトップである」
- 誰か偉い人(たぶん)
謎のHTML UI実装事件
最も笑えたのは、Claude Codeが勝手にHTML UIを実装してきたことだ。「アプリ」と依頼したからか、見た目は動的に動く立派なWebインターフェースが完成。しかし、このMCPサーバーはClaude Desktop経由でしか使えない。結局UIは全く使われることなく、ただそこに存在している。
なぜ実装したのか、AIに聞いても答えは返ってこない。
実戦投入の結果
完成したMCPサーバーをClaude Desktopに登録して実行。驚くべきことに、一発で完璧に動作した。
第1回実行:デスクトップ美術館の開館
✨ いい感じにアレしておきました!
🎨 「デスクトップ美術館」を開館しました!芸術作品も展示済みです
デスクトップに突如現れた美術館フォルダ。中にはASCIIアートの現代アート作品が鎮座していた。
第2回実行:スクリーンショットの運命
✨ いい感じにアレしておきました!
🏷️ 「スクリーンショット_2024-08-01.png」を「たぶん重要.png」にリネームしました!
大量のスクリーンショットフォルダが一瞬で「たぶん重要.png」に。確かに重要かもしれないし、そうでもないかもしれない。
技術的な学び
一見ふざけているようで、実は重要な発見がいくつもあった。
1. MCP(Model Context Protocol)の可能性
MCPサーバーは想像以上にシンプルに実装できる。今回のような「デスクトップをいじる」程度なら、15分あれば十分だ。
2. AIによるAI開発の実現
Claude CodeでMCPサーバーを作るという入れ子構造は、AIがAIを作る未来を垣間見せてくれた。人間はアイデアを出すだけで、実装は全てAIに任せられる。
3. 締切駆動開発の威力
残り15分という極限状態が、逆に創造性を爆発させた。時間があれば「ちゃんとした」ものを作ろうとして、きっとつまらないものになっていただろう。
実装のポイント
class IikanjiServer {
async handleIikanjini(args) {
const desktopPath = args.desktopPath || path.join(os.homedir(), 'Desktop');
// ランダムなアクションを選択
const action = randomElements.actions[
Math.floor(Math.random() * randomElements.actions.length)
];
// 各アクションを実行
switch (action) {
case 'createArtFolder':
result = await this.createArtFolder(desktopPath);
break;
// ... 他のアクション
}
return {
content: [{
type: 'text',
text: `✨ いい感じにアレしておきました!\n\n${result}`,
}],
};
}
}
シンプルな構造だが、これだけでClaude Desktopから呼び出せる立派なMCPサーバーになる。
vibe codingが生み出す創造性
今回の経験で確信した。技術的な正確性や完成度を追求するより、その場のノリと勢いで作る「vibe coding」には独特の魅力がある。
- 制約が創造性を生む: 15分という時間制限が斬新なアイデアを生んだ
- 完璧を求めない: 「いい感じ」という曖昧さが、逆に面白さを生む
- 楽しさ優先: 実用性より「作っていて楽しい」を重視
まとめ:ぶっ飛んだものを作る楽しさ
「いい感じにアレしとくアプリ」は、技術的には極めてシンプルなMCPサーバーだ。しかし、その発想と実装過程、そして生み出される結果の予測不可能性が、このアプリを特別なものにしている。
LTイベントの中止という絶望から生まれたこのアプリは、締切駆動開発の可能性とAI時代の新しい開発スタイルを示してくれた。MCPサーバーはAIで作れる。そして、ぶっ飛んだものを作るのは、やっぱり楽しい。
次回あなたのデスクトップが散らかっていたら、「いい感じにアレしといて」とお願いしてみてはどうだろうか。きっと予想もしない形で、いい感じにアレしてくれるはずだ。
ただし、結果は不可逆なので、大切なファイルがある場合は要注意。でも、それもまた人生である。
実際のYouTube LIVE配信の様子はこちら。残り15分からの奇跡の開発過程をぜひご覧いただきたい。
ちなみに作ったいい感じにアレしとくMCPサーバーはこちら
ぜひお試しあれ。