0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCP公式サンプルのお天気MCPサーバーを国内のお天気APIにしてみた

Last updated at Posted at 2025-06-15

概要

ばたばたしているうちに、もうだいぶ前になってしまったが、MCP(Model Context Protocol)公式のUser Guideを参考にMCPサーバーを作ったときのメモが残っていたので参考までに記録を残しておく。とはいえ学習目的でたいしたことはやっていないので、もう少し丁寧な説明サイトを見る事をお勧めする。。

公式ガイドを参考にMCPサーバーを作ってみた

基本的には、Quickstartの内容を、各自の環境にあわせて実装していくだけで、大まかな構成がわかるようになっている
Model Context Protocol: User Guide

ここでは、開発環境は以下を使っている

  • Node.js
  • Typescript
  • Windows

ただ、ユーザーガイドにも記載があるが、完全なソースコードはgithubにあがっているので、ただ動かすだけならこちらをビルドするのが手っ取り早い
github - modelcontextprotocol / quickstart-resources

ユーザーガイドでうまく動作しない細かなところをgithubを参考に調整することで、多少の問題が出ても解消できる
私の環境では、weather-server-typescriptをcloneして、そのまま動作することを確認している

MCP Clientも、Cloude Desctopを使うことで、サンプルどおり簡単にMCPサーバーに接続してMCP経由で天候情報を取得することができた

Windowsだと、デバッグの時などにMCPサーバーを接続しなおしたいときに、プロセスをいちいちkillしないと更新されなくて少々面倒だった

国内のお天気APIに改変してみた

サンプルではWeatherAPIを使っていて、USの天候情報に限定されているため、国内のAPIで改変した
お天気APIは天気予報 API(livedoor 天気互換)というサービスが2025年5月時点で無料だったので試しに使わせていただいた
(助かりました。ありがとうございました。)
このサービスでは、地点定義表の地域IDを使うことで、その地域の天気予報をJSONで取得できる

例:東京都の天気の場合

get-forecastの情報取得元APIをこのサービスにすることで、そのMCPサーバー経由でMCPクライアントから天気予報を取得できるようになる

ちなみに、改変自体はClineさんにお願いして、5分ほどで完了
readme.mdなど気になる内容もあるが、ひとまずそのままにしておく。。
ざっと動作は確認したが、未レビューの内容を多く含むため、参考にする際は必ず事前に自身でレビューするよう気を付けてほしい。

結果

Claude DesktopをMCPクライアントとして、作成したMCPサーバーのget-forecastへ接続して明日の福岡の天気予報を取得してみたのがこちら
mcp-weather-claudedesktop.gif
念のため、ちゃんと取得できているか、元のAPIサイトの検索結果も確認
mcp-weather-tenkiyohoapi.gif

なお、もともとのWeatherAPI版ではget-alersという警報を取得するツールも定義されていたが、これは削除した。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?