07

API連携とWebサービス:AIをインターネットに繋ぐ

2025年7月18日
MCPAPI連携REST APIWebサービス自動化

AIが、世界中の情報にアクセスできたら

データベース連携によって、AIはあなたのローカルなデータを扱えるようになりました。しかし、現代のアプリケーションの多くは、インターネット上の様々な WebサービスAPI と連携することで成り立っています。天気予報、地図、ニュース、SNS、これらすべてがAPIを通じて情報を提供しています。

この記事では、MCPの応用編の締めくくりとして、AIを外部のAPIと連携させる 方法を解説します。これにより、AIは閉じたシステムからインターネットという広大な情報の海へと漕ぎ出し、その能力を最大限に発揮できるようになります。

APIとは?なぜ連携が重要なのか

はじめに、API(Application Programming Interface) について簡単におさらいします。APIとは、あるソフトウェアやサービスが、その機能やデータを外部のプログラムから利用するために提供している「窓口」や「呼び出し規約」のことです。

たとえば、天気予報サイトは、人間が見るためのウェブページだけでなく、プログラムが利用するための天気情報APIを提供しています。このAPIを呼び出すことで、緯度と経度を渡して、その地点の現在の気温や湿度をJSON形式で受け取ることができます。

AIをAPIと連携させることで、以下のようなことが可能になります。

  • リアルタイムな情報取得: 「東京の今の天気は?」という質問に、AIがリアルタイムで答えられるようになります。
  • 外部サービスの操作: 「この内容をTwitterに投稿して」といった指示で、AIがSNSを操作できます。
  • 複雑なワークフローの自動化: 「今日のカレンダーの予定を見て、訪問先までの交通手段を調べて、その結果をSlackで通知して」といった、複数のサービスをまたぐ複雑なタスクを実行できます。

要するに、「API連携は、AIにインターネット上の無数のサービスを『道具』として使わせるための鍵である」ということです。

ステップ1:連携するAPIを選ぶ

今回は、例として無料で利用できる公開APIである「Public APIs」の一つ、猫に関する豆知識を返すAPI(Cat Facts API)を使ってみましょう。

このAPIのエンドポイントは https://catfact.ninja/fact です。このURLにアクセスするだけで、猫の豆知識がJSON形式で返ってきます。

ステップ2:APIを呼び出すツールを作成する

次に、このAPIを呼び出し、結果を取得するMCPツール get_cat_fact を作成します。外部のAPIと通信するには、HTTPリクエストを送信するためのライブラリが必要です。Pythonでは requests、Node.jsでは axiosnode-fetch がよく使われます。

Pythonでの実装

まず、requests ライブラリをインストールします。 pip install requests

そして、ツールを実装します。

# server.py (一部抜粋) import requests def get_cat_fact(): """猫に関する豆知識をランダムに取得する""" try: response = requests.get("https://catfact.ninja/fact") # エラーがあれば例外を発生させる response.raise_for_status() # JSONのレスポンスから、factの部分だけを返す return response.json()["fact"] except requests.exceptions.RequestException as e: # ネットワークエラーなどをAIに伝える raise Exception(f"APIへのアクセスに失敗しました: {e}")

このコードのポイントは、try...except ブロックで通信エラーを適切に捕捉し、AIに失敗を伝えている点です。

ステップ3:認証が必要なAPIとの連携

多くのAPIは、誰でも自由に使えるわけではなく、APIキー などを使った認証を求められます。このようなAPIと連携する場合、APIキーの管理に注意が必要です。

APIキーをコードに直接書き込むのは、セキュリティ上非常に危険です。代わりに、環境変数 を使って管理するのが一般的な方法です。

# server.py (架空の天気APIの例) import os import requests def get_weather(city: str): """指定された都市の天気を取得する""" # 環境変数からAPIキーを読み込む api_key = os.getenv("WEATHER_API_KEY") if not api_key: raise Exception("APIキーが設定されていません") url = f"https://api.example-weather.com/v1/current?city={city}&key={api_key}" try: response = requests.get(url) response.raise_for_status() return response.json() except requests.exceptions.RequestException as e: raise Exception(f"天気APIへのアクセスに失敗しました: {e}")

このように実装することで、機密情報であるAPIキーをコードから分離し、安全にツールを運用することができます。

要するに、「認証が必要なAPIでは、APIキーを環境変数で管理し、コードに直接書き込まない」ことが鉄則です。

AIとの対話シナリオ

get_cat_fact ツールをMCPサーバーに登録すると、AIとこんな楽しい会話ができます。

あなた: 「何か面白いこと教えて」 AI: 「どのようなジャンルの情報に興味がありますか?」 あなた: 「猫について何か」 AI: ( get_cat_fact() を実行し、結果を受け取る) AI: 「豆知識です。猫は、生涯の約70%を寝て過ごすそうです。」

このように、API連携によって、AIとの対話はより豊かで、予測不能なものになります。

まとめ

今回は、MCPコースの最終回として、AIを外部APIやWebサービスと連携させる方法について学びました。

  • API連携により、AIはインターネット上のリアルタイムな情報や無数のサービスを扱えるようになる。
  • HTTPリクエストライブラリを使えば、APIを呼び出すツールを簡単に作成できる。
  • 通信エラーやAPIからのエラーを適切に処理し、AIに伝えることが重要。
  • 認証が必要なAPIでは、APIキーを環境変数で安全に管理する必要がある。

これで、MCP入門コースはすべて終了です。あなたは、MCPの基本概念から、サーバー構築、ツール作成、そしてデータベースやAPIとの連携まで、一通りの知識とスキルを身につけました。

AIにどのような道具を与え、どのようなタスクを任せるかは、あなたのアイデア次第です。このコースで得た知識を元に、あなただけの強力なAIアシスタントを育てていってください。