Claude Code で全国の暑さ指数を提供する MCP サーバーを作ってみたかった
はじめに
巷で噂の Claude Code なるものを私も課金して使ってみまして、その体験記になります。
Claude Code は、最近流行りの AI コーディングツールの一つで、CLIベースで操作するのが特徴的です。それ以上に、 エージェント自体がとてもよくできていて、難しい問題でも粘り強く取り組み、なんとかして動くものを作ってくれる ことが多いと感じています。他のAIコーディングツールと比べても頭一つ抜けているという印象です。
料金は、月額 20 ドルから利用可能で、私もそのプラン(Pro)を使っています。Pro プランでは、2025年6月現在、Claude Opus 4 は使えませんが、Claude Sonnet 4 を使うことができ、私にとっては十分な性能を発揮しています。
プランの詳細
始め方はこちら
すみっコぐらし風の数独を作ってもらう
まずは小手調べに、すみっコぐらし風の数独を作ってもらいました。
すみっコぐらしの数独アプリを作って下さい
プロンプトはこれだけで、あとはしばらく待っているだけです。
作成された index.html をブラウザで開くと、すみっコぐらしのキャラクターが描かれた数独のゲームが遊べるようになっていました。
ねこはいないし、とんかつは幕の内弁当になっていますが、ちゃんとそれっぽい登場人物になっているのはすごいです。というか、すみっコぐらしをこういう風に絵文字で表現できるんだなと感心しました。AIのアイデアに脱帽です。
もちろん、ゲームもきちんと動作します。
ひとこと指示だけでこれだけのものが作られてしまうのは、素直にすごいと思いました。これは期待が持てます。
全国の暑さ指数を提供する MCP サーバーを作ってもらいたかった
次に、最近急に暑くなったので、熱中症予防のために全国の暑さ指数を提供する MCP サーバーを作ってもらうことにしました。
MCP サーバーとは、生成 AI のエージェントが、外部の情報を取得して、より正確な回答を提供するためのサーバーです。
暑さ指数は、環境省のサイトから取得することができます。
結論から言えば、この取り組みはうまく行きませんでした。
1時間ほど Claude Code と格闘をして、バグの指摘など(AIパワハラ)を行いましたが、どうしてもうまく作ってもらうことができませんでした。
暑さ指数を環境省のサイトから取得するのではなく、ランダムで生成させてごまかしたり、地点と地点IDのマッピングがでたらめになっていました。
なぜこのような出力になったかというと、どうやら Claude Code が、暑さ指数電子情報提供サービスの仕様書を読み取れていなかったためだと考えられました。
この仕様書は、PDF で提供されており、私の環境の Claude Code は PDF を読み取ることができませんでした。
その結果、API で取得したデータをもとに仕様を予測してアプリを開発するという芸当を Claude 君はやっていたようです。
私なりの解決方法
PDF が読めないということであれば、読める形式に変換して与えてあげればよいのではないかと考えました。そこで、 Claude Desktop に頼んで、PDF を Markdown に変換してもらおうと考えました。
しかし、出来上がった Markdown の中身を確認したところ、表情報が読みにくくなっており、情報の質に懸念がありました。
その時、Claude Desktop に仕様書を読ませて、そのまま MCP サーバの作成まで頼んでみるという方針を思いつき、結果としてこの方法でさくっと解決することができました。
※ただし、いきなり全国は少しむずかしかったので、今回は東京だけに限定してアプリを作ってもらいました。
ソースコードの下書きを Claude Desktop に作ってもらい、それらを Claude Code にテストやリファクタリングしてもらうという進め方で、うまくいきました。
Claude Code にリファクタリングしてもらう
出来上がった MCP サーバーを Claude Code に動かしてもらいました。Claude Desktop に MCP クライアントの設定を入れ、暑さ指数を聞いてみたところ、正常に暑さ指数を教えてくれました。無事に動いていそうです。
おわりに
Claude Code を実際に触ってみた感想としては、月額 3,000 円以上の価値はめちゃくちゃあるということです。私は GitHub Copilot も年間契約していますが、Claude の Pro プランもしばらく手放せそうにないです。
また、生成 AI リーダブルなドキュメントの重要性を再認識しました。今回のように、生成 AI が仕様書を読み取れないと、うまくアプリケーションを作成できないためです。
サービスを普及させたい場合は、仕様書やリファレンスなどのドキュメントを PDF のようなバイナリファイルではなく、Markdown や HTML のようなテキスト形式で保存する方が良いと感じました。
おまけ
Gemini CLI でもやってみた
Discussion