2025年12月アーカイブ

  1. 1. はじめに
  2. 2. DifyでエージェントとMCPサーバーを使ってみよう
  3.  2-1. MCPサーバーの設定
  4.  2-2. エージェントチャットでMCPサーバーを使う
  5.  2-3. ワークフローでエージェントとMCPサーバーを使う
  6. 3. まとめ
  7. 4. Difyのそれは極めて個人的な考察

1. はじめに

ブログをご覧の皆さまこんにちは。エンジニアの小川です。

前回の記事ではDifyの基本操作について解説しました。
今回はDifyでエージェントとMCPサーバーを使用して外部サービスと連携する方法を紹介します。

当ブログでは、これまでMCP(Model Context Protocol)について以下の記事で紹介してきました。
MCPサーバーやエージェントの基本概念については、こちらをご参照ください。

実体験でわかったMCPサーバー・クライアントの役割と導入メリット

2. DifyでエージェントとMCPサーバーを使ってみよう

2-1. MCPサーバーの設定

それではまずDifyから接続するMCPサーバーの設定を行っていきましょう。
今回使用するMCPサーバーは、以前も紹介したGitHubの公式MCPサーバーを使用していきます。

ヘッダーメニューにある「ツール」を選択し、ツール画面にある「MCP」タブを押下します。

tool mcp view

MCPサーバー画面が表示されたら「MCPサーバー(HTTP)を追加」ボタンを押下します。

するとMCPサーバーの設定画面が表示されますので、情報を入力していきます。

mcp setting view

サーバーURL: https://api.githubcopilot.com/mcp/ 名前とアイコン: GitHub MCP (※何でも可) サーバー識別子: github-mcp (※何でも可) ヘッダー:  ヘッダー名: Authorization  ヘッダー値: Bearer <Github Personal Access Token>

※「認証」からGithubのOAuth2を使用して認証することも可能ですが、今回は簡単なのでPersonal Access Tokenを使用します。
※ 設定している権限の詳細は割愛します。

上記のように入力したら、「保存」ボタンを押下して設定を保存します。

接続が成功したらMCPサーバー内のツール一覧が表示されます。

mcp server list

これでMCPサーバーの登録が完了しました!

次にエージェントを使用する為の設定を行いましょう。
ヘッダーメニューにある「プラグイン」を選択し、プラグイン画面にある「マーケットプレイスを探索する」タブを押下します。
次に「エージェント戦略」を選択し、「Dify Agent Strategies」の「インストール」ボタンを押下します。

add plugin

「Dify Agent Strategies」はDifyのワークフローでのエージェント機能で使用するためのプラグインで、Difyにエージェント戦略を追加します。
個人的にこれなぜ最初から標準で入れていないのか謎なのですが、ともあれ、これでエージェントを使用する準備が整いました。

2-2. エージェントチャットでMCPサーバーを使う

それでは実際にDifyからMCPサーバーに接続し、外部サービスと連携してみましょう。

まずはすぐに試せるDifyのエージェントチャットでMCPサーバーを使用していきます。
ダッシュボードに戻り、「最初から作成」から「エージェント」を選択します。

menu

agent chat

エージェント画面が表示されました!

ではエージェントを使ってMCPサーバーに接続する設定を行っていきましょう。
画面右上にあるモデル選択ドロップダウンメニューを押下し、使用するモデルを選択します。今回は前回と同様に一定量まで無料枠で使用できる「Gemini 2.5 Flash」を使用します。

次にプロンプトに以下を入力します。

      貴方はGithubリポジトリ「McpBlogSample」の管理者です。

      [McpBlogSampleリポジトリ]
      https://github.com/t-ogawa-dev/McpBlogSample

      ユーザから与えられたリポジトリへの指示を適切に行ってください。
    
最後に画面下にある「ツール」右にある「+」ボタンを押下し、「MCP」タブを選択します。
すると先程設定した「GitHubMCP」サーバーが表示されていますので、こちらを押下すると、MCPサーバー内のツールが表示されます。

全て登録しても構いませんが、今回はひとまずIssue関連のみ登録します。

登録するツール一覧:
・list_issues
・issue_read
・issue_write

※豆情報: ツールを個別に登録すると最大10までですが、「すべてを追加する」ボタンを押すと制限を超えてMCP内の全てのツール(GitHubだと40)を登録することもできます。

agent tool list

これでエージェントチャットでMCPサーバーを使用する準備が整いました。

では実際にエージェントチャットでMCPサーバーを使用してみましょう。
今回対象とするプロジェクトは、以前の記事で使用したGitHubリポジトリ「McpBlogSample」です。

github project

次にチャット欄に以下の指示を入力してみましょう。

      新しいIssue「デザインを赤基調から緑基調に変更」を作成してください。
      またコメント欄には必要と思われる内容を記載してください。
    
さて、エージェントはどのように動作するでしょうか

dify agent chat
エージェントの動き

github issue
作成されたIssue

Issueが作成されましたね!

以上の様に、エージェントの「ツール」にはMCPサーバーから取得したツールを登録することで、MCPサーバーを介してDifyのエージェントが外部サービスと連携できるようになりました。
またこの「ツール」はMCPに限らず、Difyの標準ツールやプラグイン、カスタム機能等で追加したDify上のツールも同じ様にエージェントで使用することが可能です。

次はワークフローでMCPサーバーを使用する方法を紹介します。

2-3. ワークフローでエージェントとMCPサーバーを使う

次にワークフローでMCPサーバーを使用する方法を紹介します。

ダッシュボードに戻り、「最初から作成」から「ワークフロー」を選択します。この辺りは前回記事で行っておりますので説明は割愛します。

前回は「LLM」ブロックを使用しましたが、今回は「エージェント」ブロックを使用します。

agent block description

「エージェント」ブロックをワークフローキャンバスにドラッグ&ドロップし、ブロックを押下して設定画面を開きます。

画面右側にある「エージェンティック戦略」ドロップダウンメニューを押下すると、「Agent」がリスト内に表示されています。この「Agent」が先に追加した「Dify Agent Strategies」プラグインによって追加されたエージェント戦略です。
ここから「Agent」→「Function Calling」と選択します。

agent block function calling selection

次にモデル選択ドロップダウンメニューを押下し、使用するモデルを選択します。もちろん「Gemini 2.5 Flash」を使用していきます。

次に下部にあるツールセクションから、エージェントチャットと同様にMCPサーバーから取得したツールを登録していきます。
今回は以下を設定します。

・issue_read

agent block setting image

次にエージェントブロックの「INSTRUCTIONS」にエージェントの役割を入力します。

      あなたは GitHub リポジトリ「McpBlogSample」の管理者兼メンテナーです。

      対象リポジトリ:
      https://github.com/t-ogawa-dev/McpBlogSample

      ユーザーから渡された Issue ID の Issue情報を取得し、
      内容を要約してください。
    

次にQUERYに、ユーザ入力で入力させるIssue IDを指定します。
      Issue ID: {{input.issue_id}} ←※ 「/」を入力すると変数選択メニューが表示されますので、そこから選択する
    

setting image



これでエージェントブロックの設定は完了です。早速テスト実行してみましょう!



workflow
ワークフロー全体図

result
ワークフロー実行結果

ワークフローが正常に完了しましたね!
以上の様に、ワークフロー内のエージェントブロックでMCPサーバー内のツールを使用することで、Difyのワークフローから外部サービスと連携できるようになりました。

もっと複雑なことをさせたければ、エージェンティック戦略で「ReAct」を使用することで、ツールの呼び出しと結果の活用を組み合わせて、より複雑なタスクを実行可能です。

[エージェンティック戦略の違い]
Function Calling: LLMが必要なツールを選択して呼び出し、結果を一度に処理
ReAct: 思考→行動→観察のサイクルを繰り返し、段階的に問題を解決

要は「Function Calling」はツールを呼び出して結果を得るというシンプルな処理に適しており、「ReAct」は何度も推測しながらツールを複数回呼び出してその結果を活用しながらタスクを進めることに適した用途になっています。

react description 各エージェンティック戦略イメージ。Geminiさんに依頼したらめっちゃ分かりやすいイラスト作ってくれました。

しかしやらせたいことがはっきりと決まっている場合、「ReAct」で都度推測させて処理させるよりは、「Function Calling」ブロックを複数組み合わせて使用する方が安定して動作する様に思います。

また以前の「公式GitHub MCPサーバーを使ってみた」で紹介した様な「Issueからコード作成」をやらせてみた所、プロジェクトファイルを取得してはLLMに渡して解析させて...、といったことを行っているのでトークン使用量が膨大になります(なりました(泣))
こういった場合はVS CodeやCursor等のコード特化型エージェントを使用した方が効率的ですので、用途に応じて使い分けると良いでしょう。

以上、DifyでエージェントとMCPサーバーを使用する方法の紹介でした。

3. まとめ

今回はDifyでエージェントとMCPサーバーを使用して外部サービスと連携する方法を紹介しました。

DifyでMCPサーバーを使用すると、サーバー内のツール一覧を目で見て直接確認することができたり、Difyのエージェントやワークフローと簡単に連携できる等、非常に便利です。

またこれらのワークフローはDifyのAPI経由で実行することも可能な為、他のシステムやアプリから呼び出して自動化することも可能です。以前は無かったスケジュール機能も実装され、かなり用途は広がってきている印象です。

一方で今回の様なプログラミング周りを自動化する用途に関してはあまり向いていないと思います。まぁそもそもDifyでコーディングを自動化する意味があるのか?という根本的な疑問もあります。
今回は前回のMCPサーバーの紹介時と比較しやすい様にということでGitHubのMCPサーバーを例として使用しましたが、プログラミングするならIDE上で実行すればいいですし、また今ならGitHub画面上でCopilotを実行してIssueの内容を元にコードを生成させることも可能になってきています。正直Difyで動かすメリットは無さそうです。うーん選定ミス

この様にAIを使用するにあたって、これをさせるのにはどのツールを使用するのが最適か?というのは非常に重要なポイントになってきます。別にどれでも頑張ればできなくはないのですが、その「できなくはない」のお陰で無理に動かそうとしてしまい、結果的に無駄なコストや時間を浪費してしまうことも多々あります。
ですのでAIツールを使用する際は、「これをさせるのに最適なツールは何か?」を常に意識して選定していきたいですね。

4. Difyのそれは極めて個人的な考察

今回紹介したDifyですが、使っていて楽しく、また非常に可能性を感じるツールだとは思いました。
ただし一方でMCPもDifyも出たての技術ということもあり、今は進化の過程にあると感じます。

Difyのワークフローの機能としては、標準のブロックだけでは対応が難しい箇所があり、その為拡張プラグイン/ツールとの組み合わせを前提とした設計になっている印象です。とはいえコードブロックを使用してPythonコード等を使って処理させることも可能ですので、現時点では一定のプログラミング知識があると、活用の幅は広がりそうです。

Dify内のマーケットプレースではコミュニティが作成した拡張プラグイン/ツールが充実していますが、特にサードパーティ製のツール等については、メンテナンス状況やセキュリティ面を考慮した上での選定が重要です。

MCP関連機能に関しても、MCPは本来「tool」「prompt」「resource」の3つのコンポーネントで構成されるプロトコルですが、Difyで対応しているのは現状「tool」のみです。「prompt」「resource」は恐らくDifyでは使われていません。
またエージェントでMCPサーバーのツールを使用する際には、使用するツールを手動で登録する必要があります。
「どのツールを使用するか」を人間が選択することには、以下のようなメリットとデメリットがあります。

メリット:
・トークン量を減らしてコストを抑えられる
・「必要以上のことをさせない」という規制を付けられる為、意図しない操作を防げる

デメリット:
・どのツールが必要かを人間が正しく認識して選択する必要がある
・タスクに応じて都度ツールを追加・削除する手間がかかる

個人的な考えとして、コスト管理や安全性の観点から現状の手動選択方式も理解はできますが、やはり理想的には使用するMCPサーバーを登録しておくだけで、LLM側で最適なツールを自動選択してくれる事が最終目的地なのではないかと思います。ここは特に今後の進化に期待したい所です。

個々の機能に関しては上記の様に感じることはありますが、しかしDifyは単なるワークフローツールでなく「AI機能を使う為のプラットフォーム」を称していることからも、今回紹介したワークフロー/エージェント/MCPサーバー連携は1つの側面であり、他にもRAG(情報検索)機能等の紹介していない機能も搭載されています。
目的をしっかりと定めた上で、Difyが得意不得意なこと、他のツールとの組み合わせなどを考えて構築し、必要な機能を呼び出して使用していくことで、例えば自社開発のシステムにAI機能と連携させたい時等に十分に活用できるのではないかと思います。

以上、個人的な考察でした。今後もっとDifyが面白いツールに進化していくことを期待しています。

dify last image

  1. 1. はじめに
  2. 2. Difyとは
  3. 3. Difyの基本操作
  4.  3-1. Difyの種類
  5.  3-2. アカウント作成
  6.  3-3. シンプルなワークフローを作ってみる
  7. 4. Dify実践: LLMとの連携
  8.  4-1. 初期設定(LLM設定)
  9.  4-2. ワークフローでLLMを使ってみる
  10. 5. まとめ

1. はじめに

山根さん「小川くん、Difyディフィって知ってる?」
ボク「海賊王になるやつですかね」
山根さん「じゃあ調べてブログ書いてね。」
ボク「はい。」

そんなやり取りがあったとか無かったとか



ブログをご覧の皆さまこんにちは。エンジニアの小川です。

今回はAIツール「Dify」について、入門編として基本的な使い方を解説します。

2. Difyとは

Dify公式サイト
https://www.dify.ai/

Difyとは、プログラミング知識がなくてもAIアプリケーションを開発できるオープンソースのプラットフォームです。
大規模言語モデル(LLM)を利用し、チャットボットやコンテンツ生成ツールなどを直感的な操作(ノーコード/ローコード)で開発できます。
(Google 要約より引用)

まとめるとDifyはAIアプリケーションを簡単に作成できるプラットフォームです。
GUIで操作できるため、プログラミングの知識がなくてもAIツールを作成できます。

ええそうです。ごくごく簡単なものであれば。

実際はコードを書かないといけない場面が多々ありますし、そもそもやりたいことのワークフローの設計自体が難しいケースもあります。

つまりは謳われている程には「プログラミング知識がなくても良い」ことはなく、あった方が断然良いかと思われます。まぁ「ノーコード」を名乗るサービスの多くは大体そんな感じかと思いますが。

一方で経験がある方からすると、DifyはLLMを使ったアプリケーションをとても手軽に作成できる便利なツールと言えます。

そこで本記事では、Difyの基本的な使い方と、LLMやMCPサーバーとの連携方法について、2部構成で紹介します。

・はじめてのDify - エージェント&ワークフロー実践: 第1部 入門編
・はじめてのDify - エージェント&ワークフロー実践: 第2部 応用編


本記事は主に

 ・初級〜中級エンジニアの方
 ・Difyを初めて使う方
 ・DifyでLLMを使ったアプリケーションを作成したい方
 ・DifyとMCPサーバーの連携に興味がある方

を対象としています。

3. Difyの基本操作

3-1. Difyの種類

Difyには大きく分けて2つの提供形態があります。

Dify Cloud:Dify社が提供するクラウドサービス
Dify Self-Hosted:Difyのオープンソースコードを自分で構築・ホスティングする

今回はCloud版を使用します。Self-Hosted版はGitHubでコードが公開されていますので、興味がある方はそちらも試してみてください。実際に使ってみましたが、Docker経験者であればとても簡単に構築できるかと思います。

またEnterprise版もありますが、こちらは大規模組織向けの有料プランとなっており、今回は割愛します。

3-2. アカウント作成

まずはDifyのアカウントを作成します。
特に難しい点はありません。

Dify公式サイト(https://www.dify.ai/)にアクセスし、画面右上の「Get Started」ボタンをクリックします。

dify login

GitHubアカウント、Googleアカウント、またはメールアドレスで登録/ログインできます。

dify top

ログイン後、Difyのダッシュボード画面が表示されます。

3-3. シンプルなワークフローを作ってみる

それでは実際にワークフローを作成してみましょう。
画面内のメニューにある「最初から作成」リンクを押下します。

dify top menu

作成内容の選択画面が表示されます。
ここでは「ワークフロー」を選択し、アプリ名とアプリ説明を入力して「作成する」ボタンを押下します。

dify new menu

現在(2025/11/26)の最新バージョン(v1.10.0)では、開始ノードを選択する機能が追加されていました。
今回は「ユーザー入力」を選択します。

dify select start

開始ノードが作成され、ワークフロー編集画面が表示されます。

dify start

次にワークフローのキャンバス上で右クリックし、表示されるメニューから「ブロックを追加」を選択します。
次に「HTTPリクエスト」を選択します。

dify right clieck menu

次にワークフローのキャンバス上で右クリックし、表示されるメニューから「ブロックを追加」を選択します。
次に「HTTPリクエスト」を選択すると、マウスにHTTPリクエストブロックが追従しますので、それをキャンバス内に配置します。

http request menu.

この中に通信したい先を設定していきます。
今回は例として「livedoor 天気予報API(https://weather.tsukumijima.net/)」を使用しましょう。

API欄でメソッドを「GET」に設定し、URL欄にはAPIのエンドポイントを入力します。
次にこのAPIでは「city」というクエリパラメータが必要となりますが、折角なのでこちらは実行時にユーザが入力できる様にしていきます。

まず「ユーザー入力」ブロックを選択し、「入力フィールド」横の「+」ボタンを押下します。

dify user input block

押下すると入力フィールドが追加されますので、以下に設定します。

 ・フィールドタイプ: 短文
 ・変数名:input_city
 ・ラベル名: input_city
 ・最大長: 48(デフォルト)
 ・初期値: 130010(東京)
 ・必須: チェック有り

input menu

入力できたら次は入力ブロックとHTTPリクエストブロックを接続します。
ユーザー入力ブロックにマウスオーバーすると、右側に小さな丸が表示されますので、それをドラッグしてHTTPリクエストブロックに接続します。
これでユーザが入力した値をHTTPリクエストブロックで使用できる様になります。

次にHTTPリクエストブロックを選択し、「パラメータ」フィールドに以下を設定します。
入力欄で「/」を最初に入力すると、変数を指定できる様になります。

 ・キー: city (文字列を入力)
 ・値: input_city (変数から設定)


これでユーザが入力した都市IDがHTTPリクエストのクエリパラメータとして設定されます。

dify http request block setting

最後に結果を出力するための「出力」ブロックを追加します。
先程と同様にキャンバス上で右クリックし、表示されるメニューから「ブロックを追加」から「出力」を選択して配置します。
配置したら先程と同様にHTTPリクエストブロックと出力を接続します。
接続したら、出力ブロックを選択し、「出力内容」フィールドに以下を設定します。

 ・result: {{HTTPリクエスト.body}}

これでHTTPリクエストのレスポンスボディが出力される様になります。

dify output block

それでは最後に「テスト実行」ボタンを押下して動作確認をしてみましょう。 入力欄は初期値か、または
全国の地点定義表から都市IDを参照して入力してください。

test run input

実行すると実行結果が表示されます。
正常に動作していれば指定した都市の天気予報データがJSON形式で表示されます。

dify result output

以上でシンプルなワークフローの作成と実行が完了です。

4. Dify実践: LLMとの連携

ワークフローの基本操作が理解できたところで、次はDifyのコア機能と言えるLLMとの連携を試してみましょう。

4-1. 初期設定(LLM設定)

まずは使用するLLMの設定を行います。

ヘッダーのアカウントメニューから「設定」を選択します。

dify-1-image15.webp

次に設定メニューから「モデルプロバイダー」を選択します。
すると使用できるLLMを提供するサービス一覧が表示されます。

今回は「Gemini」を使用しますので、「Gemini」カードにマウスオーバーし、「インストール」ボタンを押下します。

ここで注意してほしいのが、インストールしたモデルプロバイダーはアンインストールできません(謎仕様)。
その為無駄にインストールしない様に注意してください。「消させろー!」ってなります(なりました)。

model list

インストールが完了したら、次にAPIキーを設定します。
「Gemini」カードの「セットアップ」ボタンを押下し、表示されたモーダル内にGeminiのAPIキーを入力します。
APIキーが正しければ使用できるモデル一覧が表示される様になります。
※GeminiのAPIキーの取得方法については本記事では割愛します。公式ドキュメント等を参照してください。

install complete インストール完了時の表示

setup complete Geminiセットアップ画面

setup gemini セットアップ完了時のGeminiサービス内モデル一覧

以上でLLMを使う準備ができました!

4-2. ワークフローでLLMを使ってみる

それでは実際にLLMを使ったワークフローを作成してみましょう。
先程作成したワークフロー編集画面に戻り、キャンバス上で右クリックし、表示されるメニューから「ブロックを追加」を選択します。
次に「LLM」を選択してLLMブロックをワークフロー内に配置します。

dify-1-image20.webp

配置したら先程と同様にLLMブロックを編集します。
「AIモデル」欄に先程セットアップしたGeminiモデルを選択します。
今回は一定量まで無料枠で使用できる「Gemini 2.5 Flash」を選択します。

また今回やりたいこととして、現在のワークフローでは1次細分区定義表内の都市IDを入力させていますが、ここからいちいちIDを調べるのは面倒です。
そこでLLMに都市名から都市IDを調べてもらい、そのIDを使用して天気予報APIに問い合わせる様にしてみましょう。

SYSTEMプロンプト欄には以下を設定します。

https://weather.tsukumijima.net/primary_area.xml に定義されている、入力された地名に一番近い1次細分区域の都市IDを取得してください

USERプロンプト欄には先頭に「/」を入力し、変数選択モードに切り替えた上で、「input_city」変数を選択して設定します。

最後にこのLLMブロックの実行結果を見る為、出力ブロックにLLMブロックを接続し、出力変数にLLMブロックの出力「text」を設定します。
全ての設定ができましたら、「テスト実行」ボタンを押下して動作確認をしてみましょう。

dify test

実行すると実行結果が表示されます。
正常に動作していれば指定した都市名に対応する都市IDが表示されますが、余計なテキストが大量に含まれてしまっていますね。

dify test result 1

この結果を天気予報のAPIにそのまま渡してもエラーになってしまいます。
そこでLLMブロックのSYSTEMプロンプトを以下の様に修正してみましょう。
「出力形式を明示的に指定する」ことで、LLMの出力をコントロールします。

https://weather.tsukumijima.net/primary_area.xml に定義されている、入力された地名に一番近い一次細分区域の都市IDを取得してください。
出力は都市IDのみとし、他のテキストは一切含めないでください。

そして再度「テスト実行」ボタンを押下して動作確認をしてみます。

dify test result 2

しっかりIDのみが取得できていますね!
あとはLLMブロックの出力をHTTPリクエストブロックのパラメータに設定すれば、都市名から天気予報を取得できるワークフローが完成します。

dify work flow compete 完成したワークフロー

dify result complete 最終実行結果

ばっちり東京の天気情報が取得できましたね!
以上でLLMを使ったワークフローの作成と実行が完了です!

5. まとめ

本記事ではDifyの基本的な使い方と、LLMとの連携方法について紹介しました。

Difyはノーコード/ローコードでAIアプリケーションを作成できる便利なツールですが、ご覧の通りある程度のプログラミング知識が必要となるかと思います。
更に複雑なことをやろうとすると、通常のブロックだけでは実現できず、コードブロックを使用してJavaScriptやPythonで処理を書く必要が出てきます。

また今回は触れていませんでしたが、今回のワークフローの場合、LLMが返す都市IDが不正確な場合があり、その場合は天気予報APIからエラーが返ってしまいます。
こういったケースに対応するには、エラーハンドリングやリトライ処理を実装するなどの工夫が必要となってきます。AIによる不確実性を考慮した設計が求められる点は、他のLLM連携ツールと同様です。
ちなみに今回は数回の試行の内、1回謎のIDを出力していました。

しかしプログラムを理解している人が、複数サービスのAPIを組み合わせてAIアプリケーションを手軽に作成するツールとしては非常に有用であるとは感じます。
以前も「Yahoo Pipes」の様な複数のAPIを組み合わせることができるマッシュアップサービスが数多くありましたが、そのAI対応版でしょうか。
※残念ながらYahoo Pipesは2015年にサービス終了しました。当時は「マッシュアップ」という言葉と共に流行ったんですけど一緒に廃れましたね。

また冒頭に出てきましたが、少し前までスケジュールトリガ機能がありませんでしたが、現在では実装された模様ですので、より多様なユースケースに対応できる様になっているかと思います。
今後もDifyの機能追加や改善が進むことが期待されますので、興味がある方は是非試してみてください。

次回は「DifyとMCPサーバーの連携」について紹介します。

     
  1. 1. はじめに
  2. 2. OSS MCPサーバーを使ってみよう
  3.  2-1. 準備フェーズ
  4.   ①OSS MCPサーバーをGitHubからダウンロード
  5.   ②OSS MCPサーバーを構築
  6.   ③VS CodeにMCPサーバー情報を設定
  7.   ④動きませんでした。そしてその対策。
  8.  2-2. 実行フェーズ
  9.   ①Agentを実行しよう
  10.   ②実行ログを見て、通信の動きを確認しよう
  11. 3. まとめ
  12. 4. MCPサーバーのそれは極めて個人的な考察

1. はじめに

ブログをご覧の皆さまこんにちは。エンジニアの小川です。

前回の記事ではZapier社が提供するSaaS型のMCPサーバーのVS Codeでの使用方法をご紹介しました。
本記事ではOSSとして公開されているMCPサーバを使用するケースをご紹介します。

以前の記事で紹介しましたが、OSSのMCPサーバーは以下で公開されています。

AI Base : https://mcp.aibase.com/ja/explore

mcp-use3-image1.webp (※他にもあるかもしれませんが、今のところここしか見つけられていません)

今回はこちらで公開されているGoogle スプレッドシート連携のMCPサーバーを使用してみます。

2. OSS MCPサーバーを使ってみよう

この項では以下の流れを行っていきます。

[準備フェーズ]
①OSS MCPサーバーをGitHubからダウンロード
②OSS MCPサーバーを構築
③VS CodeにMCPサーバー情報を設定

[実行フェーズ]
①Agentを実行しよう
②実行ログを見て、通信の動きを確認しよう

2-1. 準備フェーズ

①OSS MCPサーバーをGitHubからダウンロード

まずは使用したいMCPサーバーをGitHubからダウンロードします。今回はこちらを使用したいと思います。

Googlesheet MCP

Google Sheets MCP Page

画面右上にあるGitHubアイコンをクリックするとGitHubリポジトリに移動しますので、ローカルにプロジェクトをダウンロードします。

ちなみにこちらが良い物かどうかはこの時点では分かりません。この時点でできることは、評価とDL数、それと説明文内に使いたい機能がありそうなのを選ぶしかできません。
できればDocker上で動作するものを選ぶと比較的楽ですが、対応しているものはあまり多くないようです。ただDockerFile/compose.yamlが入っていても動かないものもあります。落とし穴ばかりですね...。


今回紹介しているMCPサーバーは、このブログ用に構築してみた3番目に試した物になります。先に試した2つはREADMEが滅茶苦茶で止めました。(※ファイル構成/起動方法がREADMEの内容と全く違うという...。)
ちなみにこちらのプロジェクトも元のままではVS Codeで動きませんでしたので、少し手を加えています。READMEにはCursorの説明が記載されていてるので、もしかしたらCursorならそのまま動くのかもしれません。

また念の為、使用前にはコードをチェックしておきましょう。悪意のあるコードが混入している可能性もゼロではありません。

copilot check! 良かった

②OSS MCPサーバーを構築

それではプロジェクトに添付のマニュアルに従ってMCPサーバーを構築していきます。
Pythonの実行環境は整っている前提で進めます。

1. 使用するPythonライブラリをインストールします。

pip install google-auth-oauthlib google-auth-httplib2 google-api-python-client curl -LsSf https://astral.sh/uv/install.sh | sh ※ ← 書いていませんが実行にはuvのインストールが必要です

2. Google Cloud Platformでプロジェクトとサービスアカウントを作成し、「APIとサービス」からGoogle スプレッドシートAPIの権限設定を行った後、「IAMと管理」からcredentials.jsonをダウンロードします。

gcp top
GCPの詳細説明は割愛していますが、ここが一番大変かも。

3. credentials.jsonをプロジェクトのルートに配置します。

vs code directory

4. Googleスプレッドシートを開き、共有設定でサービスアカウントのメールアドレスを追加します。

google spread sheet sharing setting

5. 以下のコマンドを実行してMCPサーバーをインストール

uv run mcp install main.py

ここまでで一旦MCPサーバーの構築は完了です。
早速ドキュメントに記載していない手順もありましたが、恐らくこれで良い・・・ハズです。

③VS CodeにMCPサーバー情報を設定

前々回の記事で作成した .vscode/mcp.jsonファイルに記載します。記載の内容はREADMEに書いてある通りです。

{ "mcpServers": { "GoogleSheets": { "command": "python", "args": [ "main.py" ] } } }

今までと書き方が変わっていますね。今まではHTTPで接続していましたが、今回は直接Pythonのコマンドで実行する形になっています。
これでVS CodeからMCPサーバーに接続できるようになります。なっているはずです...!

④動きませんでした。そしてその対策。

結論がタイトルになってしまいましたが、残念ながら動きませんでした。ほんとこんなのばっかり

ここでログに出ているエラーをGitHub Copilotと相談しながら行った対応を以下に記載します。
このMCPサーバーは使う予定がない方はスキップしてください。

1.vscode/mcp.jsonを修正します

{ "servers": { "GoogleSheets": { "command": "/Users/xxxxx/.local/bin/uv", # ← ここをuvコマンドのパスに変更 "args": [ # ← ここを以下に変更 "--directory", "/Users/xxxxx/project/mcp-sever-google-sheets", "run", "main.py" ] } } }

2.main.pyを修正します

# main.pyの末尾に以下を追加 if __name__ == "__main__": mcp.run()

3. 起動はREADMEの起動コマンドでなく、IDEのMCPサーバー起動ボタン、またはAgentが実行時に自動で起動して使用します

mcp-use3-image9.webp

以上でMCPサーバーの修正が完了です。
これでVS CodeからMCPサーバーに接続できるようになります。

ちなみにこの修正はあくまで私の環境で動かすためのものであり、他の環境で動作する保証はありません。もしかしたらCursor環境では動くのかもしれません。

そういうの止めて欲しいですけど...。

2-2. 実行フェーズ

①Agentを実行しよう

それでは実際にAgentを実行してみましょう。
まずは試験的に、Googleスプレッドシートにデータを追加する依頼を実行します。

agent start

実行した所、どのスプレッドシートにデータを追加するかの指示が不足している旨のエラーが発生しました。
そこで対象のスプレッドシートのURLを渡して再度実行します。

agent execution result

登録に成功しました!

ログを見ると途中思っていたより手間取っていますが、無事にMCPサーバーを使用してGoogleスプレッドシートにデータを追加することができました。

実際にスプレッドシートを確認してみます。

spread sheet view

登録されているのを確認できました!次はシート内のデータを読み込んでみます

mcp-use3-image13.webp

正しく読み込みが確認できましたね!

それでは次は少し複雑なことをやらしてみましょう。
こちらのサイトで配布されている日次セールス レポート フォームを使用して、対象のデータを取得させてみます

report view

mcp-use3-image15.webp
全体読み込みはOK

mcp-use3-image16.webp
細かな内容の指定もOK

レポートの表の内容も正しく認識できていますね!

以上でMCPサーバーを使用したGoogleスプレッドシートの読み書きができることが確認できました。

ただ途中で発生した問題として、実は何度かAgent内の学習データを消してスクリーンショット撮影用にと最初からやり直しをしていたのですが、

 ・スプレッドシートへの書き込みに失敗する様になってしまい、何度も繰り返した結果、「送信するパラメータが分かりません」とAgentが途中で処理を諦めた
 ・書き込んだデータの前後に変な記号が入っていた。

等と、同じ命令文でも挙動が安定しませんでした。
これらはもしかしたらMCPサーバー側の問題かもしれませんし、Agent側の問題かもしれません。
このあたりやはりAIによる不確実性が否めず、信用性の面で課題がありそうです。

②実行ログを見て、通信の動きを確認しよう

最後に実行時のログを見てみましょう。
元のプロジェクトではログの出力が全く行われていなかったため、main.pyにログ出力のコードを追加してみます。
以下が実行時のログになります。

「シートのデータを読み込んでください」:初回実行時のログ

2025-11-21 14:24:09,137 - INFO - MCP Server starting... 2025-11-21 14:24:09,148 - INFO - Processing request of type ListPromptsRequest 2025-11-21 14:24:09,148 - INFO - Processing request of type ListToolsRequest 2025-11-21 14:24:09,149 - INFO - Processing request of type CallToolRequest 2025-11-21 14:24:09,149 - INFO - Tool called: list_spreadsheets ... 2025-11-21 14:24:18,226 - INFO - Retrieved 23 rows from シート1 2025-11-21 14:24:18,226 - INFO - Response data: Response: 25 lines, 1324 characters 2025-11-21 14:24:18,226 - INFO - === MCP Response: get_sheet_content - Success - Response: 25 lines, 1324 characters ===

連続して2回目実行時のログ

2025-11-21 14:25:18,285 - INFO - Processing request of type CallToolRequest 2025-11-21 14:25:18,285 - INFO - === MCP Request: get_sheet_content - spreadsheet_id: 14EJcg_Bb54kkgVm67FHM94eqM7IQoSQrDBsJUvSPSxc, sheet_title: シート1 === ...

VS Codeの「New Chat」を押下し、チャット欄を初期の状態にして再度データ読み込みを実行

2025-11-21 14:38:54,588 - INFO - Processing request of type CallToolRequest 2025-11-21 14:38:54,588 - INFO - === MCP Request: list_spreadsheets === 2025-11-21 14:38:54,588 - INFO - Tool called: list_spreadsheets ...

ログを見ると、MCPサーバーがどのように動いているかが分かります。
1回目の実行時にはMCPサーバーが起動し、

・ListPromptsRequest
・ListToolsRequest

を行ってMCPサーバー内のpromptやツールの一覧を取得し、

・CallToolRequest

でツールの呼び出しを行っていることが分かります。

2回目の実行時にはList情報を保持している為か、CallToolRequestのみが処理されており、その後get_sheet_contentを実行してシート情報を取得しています。
3回目、今度はチャット履歴を消して再度実行した際には、CallToolRequestのみが処理されていますが、その後はlist_spreadsheetsでスプレッドシート一覧を取得しようとしています。list_spreadsheetsは1回目と同じ挙動です。

ここから分かることは、AgentとMCPサーバーは状態を保持しますが、チャット履歴を消すと一部消えるデータと消えないデータがあることが分かります。

・MCPツールListやPrompt List - 消えていない
・取得対象のスプレッドシートID - 消えている

これはVS Code内のチャット別に保持しているデータ、LLMとの会話セッションで保持しているデータによるものかと思われます。
またこれらはMCPクライアント(Agent)の設計によるものかと思われますので、詳細に探るのは難しいです。また使用するMCPクライアントによって挙動が変わる可能性があります。

3. まとめ

以上、OSSのMCPサーバーを使用してGoogleスプレッドシートにデータを読み書きする方法をご紹介しました。

OSSのMCPサーバーはSaaS型のMCPサーバーと比べて、
・使いたいサービス別にMCPサーバーが必要になる。
・自分でサーバーを構築する必要がある。
・動作が不安定な場合/そもそも動かないケースがあり、信頼性に乏しい。
・開発言語がC#/Go/Java/TypeScript(JavaScript)/Python/Rustなど多岐に渡る為、環境構築の為には各言語別の知識が求められる。

といったデメリットがありますが、

・自分でサーバーを構築するため、セキュリティ面で安心できる。
・自分でサーバーを構築するため、カスタマイズが可能。 (とはいえ今回の様な強制カスタマイズ必須はメリットではないけれど)

といったメリットもあります。

どちらを使用するかは、使用する用途や環境によって異なりますが、
セキュリティ面で不安がある場合や、外にデータを極力出したくない場合(基本外部のLLMサービス使っておいて何をという話ですけど)には
カスタマイズが必要な場合はOSSのMCPサーバーを使用する、または参考に自作するというのはありかと思います。
3つのパターンの比較を表にすると以下になります。

項目 公式 SaaS(Zapier) OSS
導入難易度
コスト 無料 有料 無料(※但しサーバー料金除く)
カスタマイズ性/拡張性
対応サービス サービス提供企業特化 多数のSaaS 実装次第
保守・運用 提供企業が管理 提供企業が管理 自己管理
信頼度

4. MCPサーバーのそれは極めて個人的な考察

MCPサーバーの導入方法3部作、いかがでしたでしょうか?

正直な所、現時点でのOSSのMCPサーバーはあまりお勧めできません。
今回の流れを見て頂いた通り、ドキュメントは滅茶苦茶、動かそうとしてもコードに手を加えなければいけない等、ヒッジョーに扱いづらいです。ダウンロードするプロジェクトが次から次へとこんな感じで、何度PCの前で雄叫びをあげたか分かりません。こんなハズじゃなかった。歴史がボクに問いかける。

趣味や個人利用の範囲であればよいですが、そのままの使用は業務利用には向かないかと思います。あくまでソースの参考程度に留めておくのが良いかと思います。

ただしこれが今後apache foundationのような大きな組織,コミュニティがベースのMCPサーバーをOSSとして公開し、継続的にメンテナンスされるようになれば話は変わってくるかと思いますので今後に期待したい所です。

しかし今回3種のMCPサーバーをガッツリと触ってみて思ったのは、MCP自体は非常に面白い技術であり、LLMと外部サービスを繋ぐ上で非常に有用であるとは感じました。
例えば今後開発するシステム内に、APIだけでなくMCP機能も合わせて組み込むことで、LLMを使用した柔軟な操作が可能になる等、応用範囲は広いかと思います。

今後もっと使いやすくなり、エンジニアぐらいしか使わないVS Code等のIDE以外からも簡単に使用できるようになれば、一般利用がもっと進むと思います。

最後までお読みいただきありがとうございました。



はじめに

今年もラスベガスにて、世界最大級のクラウドカンファレンス「AWS re:Invent 2025」が開催されました。
本記事では、KeyNoteで発表されたセキュリティ関連のアップデートをご紹介します。


新サービス:AWS Security Agent

新しいサービス『AWS Security Agent』が発表されました。 AWS Security Agent は"Frontier Agents" の一部である、セキュリティ支援エージェントで、以下の3つの機能を主軸として機能します。

  • 設計レビュー
    • 設計ドキュメントの内容を解析して潜在リスクを指摘
  • コードレビュー
    • コードの変更を検知して脆弱性や安全でない実装をチェック
  • オンデマンド ペネトレーションテスト
    • 必要なタイミングで自動的に本格的な攻撃シミュレーションを実行

これにより、専門的なセキュリティ知識がなくても早期にリスクを発見し、適切な修正策を得ることができます。
さらに、従来は外部委託や高度な専門家が必要だったペネトレーションテストも迅速に実行できるため、開発スピードを落とさず高いセキュリティ品質を維持できます。
まさに"自律的に動く仮想セキュリティエンジニア"として、SecDevOps の実践を大きく後押しする存在です。


GuardDuty Extended Threat DetectionでECSクラスターとEC2のグループが対象に

GuardDutyはAWS上のリソースをモニタリングして不正アクセスや異常通信などの脅威を検出できるサービスです。
今回のアップデートにより、ECSクラスターとEC2のグループに対して拡張脅威検出(Extended Threat Detection)を適用できるようになりました。
拡張脅威検出とは、検出結果を個々のものとしてバラバラに見るのではなく、関連のある検出結果を紐づけて1つのイベントとしてまとめてくれる機能です。
拡張脅威検出は昨年2024年のre:Inventにて発表された機能で、今回のアップデートでECSクラスターとAuto Scaling GroupなどのEC2グループも対象になりました。


新Security Hubの一般提供開始

Security HubはGuardDuty、InspectorなどのAWSセキュリティサービスの検出結果を一元管理できるサービスです。
2025年6月に行われたAWS re:Inforce 2025にて、CSPMの領域がSecurity Hub CSPMとして分離され、環境内の脅威やリスクを分析する機能が新たなSecurity Hubとなり、プレビュー版が発表されていました。
今回のアップデートで一般提供開始された主な機能は以下です。

  • ダッシュボード
  • ニアリアルタイムリスク分析


CloudWatchでサードパーティのログ収集が可能に

CloudWatch は主に AWS リソースやアプリケーションのログ/メトリクス/アラームを収集・可視化するためのサービスです。
今回のアップデートにより、サードパーティアプリケーションのログ収集が容易にできるようになりました。
従来はサードパーティアプリケーションのログを収集するには自前でETLを構築する必要がありましたが、マネージドにサードパーティアプリケーションのログ収集が可能になりました。
他にも、以下の機能が追加されています。

  • ログ種別による絞り込み
  • S3テーブルとの統合


さいごに

AWS re:Invent 2025でもAIサービスのアップデートが中心であったように、生成AIや自動化技術が急速に進化する今、私たちを取り巻くデジタル環境はこれまで以上に複雑になっています。それにともない、脅威も高度化しています。
セキュリティは「後回しにする機能」ではなく、ビジネスの継続と信頼を支える"基盤"そのものです。技術が進歩するほど、その恩恵を最大化するには、同じ速度でセキュリティを進化させ続けることが欠かせません。

AUCではSREでセキュリティも含めたクラウド支援を行なっております。
是非お問い合わせください。


はじめに

今年もラスベガスにて、世界最大級のクラウドカンファレンス「AWS re:Invent 2025」が開催されました! 今回はなんといっても、「AI・AIエージェントの利活用」がすべてのアップデートの中心にある印象でした。

その壮大なビジョンが注目を集める一方で、それらを根底から支えるデータ基盤、すなわちデータベースとストレージの領域においても、ビジネスに直接的なインパクトを与える極めて重要なアップデートも多数発表されました。 KeyNoteの最後のたった10分の中での駆け足の発表ではありましたが、見逃せない内容です!

本記事では、re:Invent 2025で発表されたデータベースおよび広義のデータ保管・活用に関連する重要な新機能やサービスを速報として分かりやすく解説していきます!


re:Invent 2025から読み解くAWSデータ戦略の全体的な方向性

今回のre:Invent2025のKeyNoteで大きな軸であった「AIエージェント」は、アクセスできるデータの質と量、そして速さによって賢さや使い勝手が大きく変わります。

今回のデータベース・ストレージ関連の発表は、「AI 時代にふさわしい"データ活用基盤"をクラウド側で包括的に再設計する」ものだったように感じます。

全体を俯瞰すると、今年のトレンドは以下の3つであるように感じました。

  • エンタープライズ規模への対応力向上

    オンプレミスで稼働する巨大なデータベースや、日々増大し続けるデータレイク。これらの大規模ワークロードをクラウドへ移行・運用する際の障壁を取り除くための容量制限の大規模な緩和が行われました。

    • RDS for SQL Server/Oracleのストレージ容量が64TBから256TBへと4倍に拡張
    • S3の最大オブジェクトサイズが5TBから50TBへと10倍に増加
  • AI/MLワークロードのサポート強化

    膨大なデータがクラウドに集約されたことで、それらがAI/MLワークロードに不可欠な「燃料」となります。今回の発表の目玉は、この燃料を最大限に活用し、生成AIアプリケーション、特にRAG(Retrieval-Augmented Generation)の構築を容易かつ低コストにする機能強化でした。

    • S3 Vectorsの一般提供開始(GA)
    • OpenSearch のベクトルインデックス作成のGPUアクセラレーション
    • S3 Tablesのクロスリージョンレプリケーション対応
    • OpenSearch ベクトルインデックス作成の10倍高速化
  • 徹底したコスト最適化と運用効率化

    「大規模データ活用」と「AIワークロード」を経済的に成立させるうえで、コスト最適化は不可欠です。

    • Database Savings Plans の導入による統合的コスト削減
    • S3 Tables のインテリジェント階層化
    • RDS for SQL Server のコア数指定によるライセンス費用削減

これら3つのトレンドにより、「大規模化 → AI対応 → コスト最適化」の好循環が期待できます。


データベース関連の主要発表概要

各サービスがどのような課題を解決し、どのようなお客様にメリットをもたらすのかをまとめてみました。


サービス名 概要 解決する課題 主な対象顧客
RDS for SQL Server/Oracle ・ストレージ最大容量を64TBから256TBに拡張
・IOPSとIO帯域幅も4倍に向上
大規模なオンプレミスデータベースの移行困難性や、クラウド上でのスケーラビリティの限界 大規模なSQL ServerやOracleデータベースをオンプレミスで運用している企業
RDS for SQL Server ・インスタンスのvCPU数を指定可能に
・SQL Server Developer Editionをサポート
Microsoft SQL Serverの高額なCPU単位のライセンスコスト、開発・テスト環境のコスト SQL Serverのライセンスコストを最適化したい企業
Database Savings Plans ・データベースエンジン、サービスをまたがる節約プラン。最大35%のコスト削減。 データベースエンジンごとにコミットメントを管理する複雑さと、コスト削減機会の逸失 複数のAWSデータベースサービス(RDS, Aurora, DynamoDBなど)を利用している企業
S3 & S3 Tables ・最大オブジェクトサイズが50TBに! データレイク用のデータなど、巨大な単一ファイルの扱い 大規模なデータレイクや分析基盤を運用している企業
S3 Tables ・S3 Tablesのインテリジェント階層化対応
・クロスリージョンレプリケーションに対応
データの利用頻度に応じたストレージコスト管理自動化
DR構成が複雑、データがないリージョンからのクエリが遅く一貫したパフォーマンスが得られない
大規模なデータレイクや分析基盤を運用している企業
グローバル企業のマルチリージョン分析・サービス運用、DR対策
S3 Vectors ・ベクトルデータをS3にネイティブに保管、クエリが可能に。 生成AI/RAGアプリケーションにおけるベクトルデータ管理のコストと複雑性 生成AIやセマンティック検索アプリケーションを開発・運用する企業
Amazon OpenSearch Service ・ベクトルインデックス作成時にGPUアクセラレーションを利用可能に。
インデックス作成が10倍高速化、コストは1/4に。
大量のベクトルデータに対するインデックス作成の遅さと高コスト S3 Vectorsと連携し、低レイテンシーなベクトル検索を必要とする開発者
EMR Serverless Storage EMR Serverlessクラスタのローカルストレージをプロビジョニング・管理する必要がなくなった。 ビッグデータ処理におけるストレージ管理のオーバーヘッド EMR Serverlessを利用してビッグデータ処理の運用を簡素化したい企業


各発表の重要ポイントをブレイクダウン

1. データベース移行とコスト最適化 (RDS)

1.1. ストレージ容量と性能の飛躍的向上

RDS for SQL Server/Oracle の最大ストレージ容量が64TB → 256TBに拡張され、IOPS・IO帯域幅も4倍に向上。オンプレ移行の最大障壁だったサイズ制限がほぼ解消されました。

1.2. RDS for SQL Serverライセンスコストの削減

  • RDS for SQL Serverの一部インスタンスタイプにてvCPU数の任意指定が可能に!

    これまでは「CPUはそこまでいらないけど、メモリは確保したい/ネットワーク帯域は欲しい」といった場合、十分な容量を持つインスタンスタイプを選択し(自動的にvCPU数も多くなる)、 そのインスタンスタイプのvCPU数に応じたライセンス費用を支払う必要がありました。

    今回の発表により、選択するインスタンスタイプはそのままで、vCPU数を適正に絞ることで、SQL Serverライセンス費用を抑えることができるようになりました。

    RDS_vCPU.webp

  • Developer Editionサポートにより、ライセンス無料の開発環境をAWS上で実現可能に!


2. AI時代のデータ活用を加速 (S3 & OpenSearch)

2.1. ベクトルデータ管理の革新

プレビュー版として注目を集めていたS3 VectorsがGA(一般提供開始)となりました。
S3 Vectorsは、生成AIの頭脳となるベクトルデータを、多くの開発者が使い慣れた信頼性の高くコストの低いS3に保存・クエリできる機能です。

従来はベクトルの保管は専用のデータベースの構築・運用が必要でした。
例えば Pinecone(商用 SaaS)、Milvus(OSS だがクラスタ管理が必須)、Weaviate(SaaS/OSS)といったサービスの利用が考えられますが、常時稼働サーバーの費用、スケール・容量の管理、障害対応などのコストが発生していました。

S3 Vectors では、データベースそのものを維持する必要がなく、「S3 ベクトルバケット」に保存するだけでよいため、企業はデータの活用だけに集中できます。
これにより、AI導入の初期コストと運用負担が大幅に下がり、AWSは「最大90%のコスト削減が可能」、とうたっています。
初期投資を少なく機械学習・AI性能向上に挑戦できるチャンスですね!

2.2. 高速なベクトル検索基盤

OpenSearch Serviceでは、ベクトルインデックス作成時にGPUアクセラレーションが利用可能になり、処理速度が10倍高速化し、コストは1/4に抑制されるように改善が入りました。

上述のS3 Vectorsの低コストなデータストアと、OpenSearch Serviceの高速な検索エンジンを組み合わせることで、最先端のAI検索アプリケーションの構築が、より多くの開発者にとって現実的なものになりそうですね。


3. データベースコストの統合的管理 (Savings Plans)

3.1. Database Savings Plans

もともとコンピューティング向けの「Savings Plans」は存在していましたが、今回はデータベースサービス横断の「Database Savings Plans」がでました!

Database Savings PlansはRDS、Aurora、DynamoDBなど、複数のAWSデータベースサービスにまたがって適用可能な購入節約オプションです。
1年または3年の期間で一定の利用量をコミットすることで、オンデマンド料金と比較して最大35%のコスト削減を実現できます。

従来はエンジンごとにリザーブドインスタンスなどを購入し個別の最適化が必要でしたが、Database Savings Plansによりコミットメント管理が大幅に簡素化されます。
利用状況の変動にも柔軟に対応しやすく、予測可能で継続的なコスト削減が容易になったことが大きなメリットです。


まとめ

AWSのデータ戦略は「AI対応」「大規模化」「コスト最適化」の3つに集約されています。これらの進化は、ビジネスを次のステージへ進める強力な武器となります。

  • オンプレ巨大DBの移行

    本記事では取り扱っていませんが、インフラ・アプリケーション全般や権限管理に対するセキュリティ強化の機能も今回のre:inventにて複数発表されています。
    容量の問題やセキュリティ上の懸念で、データベースのクラウド移行を見送っている場合、これを期に再考してみるのはいかがでしょうか。(大規模でなくてももちろん大歓迎です!)

  • 生成AIを活用した新サービス開発や社内業務効率化

    S3 VectorsとOpenSearchにより、インフラに大きく投資をせずにPoCをやってみることが可能になりました。社内のデータを活用して、RAG / AI 検索基盤構築を試してみたいという場合の参入障壁が大きく下がったのでこれを期に取り組んでみるのはいかがでしょうか。

  • クラウドTCOの最適化

    Database Savings Plans などの新機能でTCO削減が現実的になりました。
    現在の利用状況を分析し、最適なプランを適用することで実現可能なコスト削減に取り組むのはいかがでしょうか。

当社では、データベース移行・最適化、データレイク構築、AI検索基盤、コスト最適化など幅広くご支援可能です。ぜひお気軽にご相談ください。

目次



はじめに

      はじめまして、インフラエンジニアの伊達です。

      2025年12月1日から12月5日(現地時間)にかけて、ラスベガスにてAWSのre:Inventが開催されました。

      そこで発表された新情報をキャッチアップしていこうと思います。



新情報

      現地時間12月2日 AM8時からのAWS CEOのMatt氏の基調講演にて多数の新情報の発表がありました。

      ここでは特に、コンピューティング関連に注目してみます。


EC2 インスタンスタイプ

X8i カスタムのIntel Xeon 6プロセッサ、メモリ50%増
X8aedz AMD Epycプロセッサ、3TBのメモリ
C8a 最新のAMD Epycプロセッサをベースにして30%のパフォーマンス向上
C8ine カスタムのIntel Xeon 6プロセッサ、Nitro v6カード、高速ネットワーク
M8azn 最大5GHz、最高のCPUクロック
M3 Ultra Mac 最新のAppleハードウェア
M4 Max Mac 最新のAppleハードウェア

      執筆時点ではまだ公式のインスタンスタイプ一覧にも載せられていないようです。

      最新の性能に合わせた高機能タイプが追加されたという感じですね。



Lambda

Lambda durable functions 状態管理や、エラーハンドリングと自動修復を備えた長期稼働ワークロードの構築が容易に

      Lambdaのdurable functionsは、基調講演内ではあまり詳細が語られませんでしたが、既に公式サイトには載っており、最大で1年間実行できるとのこと。

      複数の定時実行処理のほとんどをLambdaで作っているのに一つだけ15分で完了しない可能性があるというだけでAWS Batchで作っているというような構成のちょっとしたモヤモヤを解消できそうです。

      今までだったらLambdaで作ろうなどとは考えもしなかった用途での活用にも期待できそうです。




      また、AIのパートでの発表でしたがGPUの新しいインスタンスも。

GPU(EC2)

P6e GB300 [NVL72] NVIDIAの最新のGB300 NVL72システム



      そして、コンピューティングからはズレますが、AIではBedrockの新しいモデルが多数導入されるとのことでした。

Bedrock 新オープンウェイトモデル

Google Gemma
MiniMax M2
NVIDIA Nemotron
Mistral AI Mistral Large 3
Ministral 3 [3B, 8B, 14B]
Amazon Nova 2 (Lite, Pro, Sonic)
Nova 2 Omni



まとめ

      これらはいずれも既存のEC2やLambda、Bedrockの中の話なので新しいサービスではないですが、使い方の選択肢が増えることで今まで諦めていたことができるようになったり、より効率的に最適な環境で行えるようになったりといったことがありそうです。

    既存システムの構成を見直すよいきっかけかもしれません。


  • はじめに
  • 基本の確認:MCPサーバーとは何か?
  • AWS MCP Serverの核心機能
  • AWS MCP Server:何が嬉しい?!

  • はじめに

    Amazon Web Services(AWS)が2025年11月30日に「AWS MCP Server」をプレビュー版として公開しました!

    参照:AWS announces a preview of the AWS MCP Server

    「本番VPC作っておいて。」とAIエージェントに指示を出せば、AWSコンソールやCLIを触ることなく適切な設定で本番VPCがデプロイされる・・・ころころと変わる画面仕様やAPI仕様にエンジニアが右往左往する時代はもう終わり!!そんな未来が近づいているのかもしれません。

    「AWS MCP Server」は、自然言語を通じてAIアシスタントやエージェントに対し指示を出すと、安全にベストプラクティスに従った形に整形された状態でAWS APIを呼び出すことを可能にした、リモートMCPサーバーです。

    この記事では、AWSを利用する開発者、インフラエンジニア、そして技術的な意思決定者の皆様向けにAWS MCP Serverの機能と利点をざっくり解説していきます。

    基本の確認:MCPサーバーとは何か?

    AWS MCP Serverを理解するためには、まずその基盤技術である「MCP(Model Context Protocol)」および「MCPサーバー」の基本概念を整理する必要があります。

    MCPとは、「AIモデルが外部のツールやサービスと連携するための共通規格(プロトコル)」です。

    MCPの仕組みや導入メリット・デメリットに関して確認したい、という方は当社のこちらのブログ記事をぜひご覧ください。

    参照:実体験でわかったMCPサーバー・クライアントの役割と導入メリット

    AWS MCP Serverの核心機能

    「はじめに」で触れた通り、「AWS MCP Server」は、自然言語を通じてAIアシスタントやエージェントに対し指示を出すと、安全にベストプラクティスに従った形に整形された状態でAWS APIを呼び出すことを可能にした、リモートMCPサーバーです。

    実は元々「AWS Knowledge MCP」(知識を呼び出すためのMCPサーバー) および AWS API MCP(機能を呼び出すためのMCPサーバー)が存在していましたが、今回の「AWS MCP Server」により、ひとつの窓口(リモートMCPサーバー)で「知識の呼び出し」と「機能の呼び出し」を行えるようになります。

    AWS MCP Serverでは、以下の3つの機能が提供されています。


    • エージェントSOP(Agent SOPs)

    AIエージェント用の「標準作業手順書」の意味です。

    エージェントSOPが用意されていることで、AIアシスタントがAWSのベストプラクティスとセキュリティガイドラインに従って、複雑な複数ステップのタスクを完了できるようになります。

    ただ「AIエージェントがAWSのAPIを呼び出せる」だけでは「安全」とは言えません。自然言語の指示に従って無限の可能性の中からAIアシスタントがどのAPIを使うか勝手に判断するのではなく、エージェントSOPという、十分に検証された、信頼できる選択肢の中から最適なものを選択することで、セキュアでベストプラクティスに沿ったAWS上のリソース構築・運用を行うことができます。

    用意されているエージェントSOPの例としては本番環境対応VPN(マルチAZサブネットとNATゲートウェイを備えた構成)作成ワークフローやモニタリング(CloudWatchアラームとSNS)設定、Amplifyを利用したWebアプリケーションの構築・デプロイなどの例があげられていました。

    詳しくは公式ドキュメントをご参照ください。

    具体的にこうしたい、という指示ができない場合、エージェントに現在利用可能なツール(ワークフロー)を使って計画を立てて、と依頼して対話型で設計を検討することもできるそうです。心強い!

    また、どんなSOPが用意されているのかもエージェントに聞いて確認することができます。


    • ナレッジツール(Knowledge Tools)

    本番環境におけるAIの「ハルシネーション(誤った情報をそれっぽく回答してくるやつのこと)」リスクを低減させるための重要な機能です。

    最新のAWS公式ドキュメント、APIリファレンス、リージョン別のサービス提供状況などをリアルタイムで検索・参照することで、AIの応答の正確性を向上させます。参照元が確実であることから、安心度がアップしますね。


    • APIツール(API Tools)

    自然言語による指示を、適切なAWS APIコールへと変換し実行する機能です。セキュリティ・ガバナンスの点で最も重要なのが、AWS APIコールは対象のAWSアカウントのIAM認証情報を用いて実行される点です。AWS APIコールは当然CloudTrailに記録され証跡が残りますし、実行できる権限を最小権限の原則に従い制限しておくことで、安全にAIエージェントを利用することができます。


    AWS MCP Server:何が嬉しい?!

    AWSサービスは、増えたり統合されたり廃止になったりと目まぐるしく変化しています。毎日のように新情報がリリースされ、ベストプラクティスもどんどん更新されます。開発者は大量のブラウザタブを開きながらドキュメントを読み漁り、「この構成で本当に安全?」「最新のガイドラインと合ってる?」と不安を抱えつつ設計を進めなくてはいけませんでした。調べる、比べる、検証する......その繰り返しで、実装より調査に時間が吸い取られることも多いのではないでしょうか。(私はそうです・・・)

    そんな長年の悩みに対して、AWS MCP Serverはとても心強い存在になりそうです。「こういう仕組みを作りたいんだけど」と自然言語で相談すると、AIアシスタントが最新のAWSドキュメントを横断検索し、関連サービスを整理し、適切な設計方針までまとめてくれます。必要であれば具体的なAPI操作も実行してくれて、作業が一つの画面の中で完結します。人間側は適宜承認するだけでよく、迷いながら進めていたAWS設計が一気にクリアになります。

    すべてが完全自動になるわけではないかもしれませんが、「とにかく情報を追うのが大変」「正解がどれか自信が持てない」といったこれまでの大きな悩みが、かなり軽くなる未来は感じられると思います。まだPreview版のためか、re:Inventのキーノートでは触れられませんでしたが、今後のAWS管理を大きく変える可能性のある機能と感じます。ぜひ活用していきたいですね!

    最後の最後に・・・怠惰な私の願望としては、もはやMCPサーバーを呼び出すためのセットアップすら面倒なので、マネジメントコンソール上でCloudFormationあたりにチャットウィンドウが用意されていて、そこから相談や作成指示ができたりしたらもっと嬉しいです!!



    はじめに

    今年もラスベガスにて、世界最大級のクラウドカンファレンス「AWS re:Invent 2025」が開催されました。
    今年のre:InventではAIに関するサービスのアップデートが中心となっており、「AWS AI Factories」という新サービスが発表されました。
    生成AIがビジネスのあらゆる領域に浸透する一方で、企業が直面している課題は「どのように安全かつ継続的に AI を運用していくか」という点に移っています。
    この課題を解決するための新しいコンセプトが、AWS AI Factories です。

    AWS AI Factories は、AIモデルの開発・運用・継続改善を、まるで工場の生産ラインのように統合的に管理できる"AI ライフサイクル基盤"と位置づけられています。従来の AI/ML パイプラインを置き換えるものではなく、それらをさらに高度化・運用最適化した仕組みと捉えると理解しやすいかと思います。


    1. AWS AI Factories とは:AI 運用の課題をまとめて解決する新モデル

    多くの企業が PoC では成功しながら、本番運用に移せない理由がいくつかあります。
    代表的な例として、

    • モデルの更新が属人化し、継続改善できない
    • データの扱いにガバナンスが追いつかない
    • セキュリティ・監査要件に対応できない
    • 複数部門での AI 利活用が標準化されていない
    • ツールやプロセスが分断し、効率が悪い

    この"AI運用の壁"を取り払うために設計されているのがAWS AI Factories です。


    2. AWS AI Factories を構成する要素

    AWS AI Factories は、以下のような要素で構成されます。

    ● データ管理(Data Factory)
    データの収集、前処理、品質管理を自動化し、モデル改善につながるデータ基盤を整備。

    ● モデル運用(Model Factory)
    モデル学習、評価、デプロイ、ドリフト検知を自動化し、継続的な高品質運用を実現。

    ● ガバナンス & セキュリティ(Guard Factory)
    アクセス管理、監査ログ、コンプライアンスチェックなど、企業が求める統制を一元化。

    ● 利活用フロント(App Factory)
    開発者・業務ユーザーが AI/アプリを安全に利用できる環境を整え、現場でのスピード活用を後押し。


    これらの要素が連携することで、AIの価値を継続的に引き出せる"循環型AI基盤"が構築されます。


    3. AWS AI Factories がもたらす企業メリット

    ① AIの運用を標準化し、スケール可能にする
    企業全体で同じ基盤を使うことで、部門ごとにバラバラだった AI 活用を統合できる。

    ② 安全性・コンプライアンスを担保
    生成AI導入の最大の懸念であるデータ漏えい・アクセス管理・監査要求に対応しやすい。

    ③ 継続的改善(Continuous Learning)が自動化
    データ流入 → モデル改善 → 再デプロイまでのサイクルが回り続け、AIが常に最新状態を保つ。

    ④ 業務部門でも AI 活用が可能に
    ローコード化/プロンプト管理/アプリ統合により、エンジニア不足でもAI活用が進む。


    さいごに

    生成AIが進化を続ける一方で、企業が求められるのは単なる技術導入ではなく「どうAIを安全かつ継続的に運用し、価値を最大化するか」です。AWS AI Factories はまさにその解答となるアーキテクチャです。
    AIは一度導入して終わりではなく、改善を続けることで真価を発揮します。AWS AI Factories は、AIを企業の"当たり前の基盤"として育てるための仕組みであり、今後のAI戦略を考える上で重要な役割を担うことが予測されます。

    1. 1. はじめに
    2. 2. Zapier MCPサーバーを使ってみよう
    3.  2-1. 準備フェーズ
    4.   ①Zapierでアカウントを作成
    5.   ②ZapierでMCPサーバーを構築
    6.   ③VS CodeにMCPサーバー情報を設定
    7.  2-2. 実行フェーズ
    8.   ①Agentを実行しよう
    9.   ②Zapierの実行履歴(History)を確認しよう
    10. 3. まとめ

    1. はじめに

    ブログをご覧の皆さまこんにちは。エンジニアの小川です。

    前回の記事ではGitHubが提供する公式のMCPサーバーを使用したMCPサーバーのVS Codeでの使用方法をご紹介しました。

    本記事ではZapier社が提供するSaaS型のMCPサーバを使用するケースをご紹介します。

    Zapier MCPサーバーは、GitHub MCPとは異なり「コード不要」で外部サービスのAPIを扱えるのが最大の特徴です。利用者はトークン等の接続情報を設定するだけでMCPサーバーとして扱える点が大きなメリットです。

    本記事は主にVS Code、またGitHub Copilot、Claude Code等のAIエージェントの使用経験があるエンジニアの方を対象としています。

    2. Zapier MCPサーバーを使ってみよう

    この項では以下の流れを行っていきます。

    [準備フェーズ]
    ①Zapierでアカウント作成
    ②ZapierでMCPサーバーを構築
    ③VS CodeにMCPサーバー情報を設定

    [実行フェーズ]
    ①Agentを実行しよう
    ②Zapierの実行履歴(History)を確認しよう

    2-1. 準備フェーズ

    ①Zapierでアカウント作成

    まずはZapierのアカウントを作成します。https://zapier.com/mcpにアクセスしてSign upからアカウント作成画面に遷移しますので、サイト内の記載の通りに作成します。

    Zapier top

    アカウントが作成できたら早速ログインします。
    ここで注意していただきたいのが、ヘッダーのLoginボタンからログインを行うと別のサービス画面に遷移しますので、https://zapier.com/mcpのTOP画面の「Start Building」からログインしてください。いやほんと謎仕様...。

    zapier login

    zapier mcp top 「Start Building」から入った場合のMCPサーバー画面

    zapier main service top ヘッダーからログインした場合のZapierのメインサービス画面
    ちなみにこの画面からはMCP画面に遷移できないので、入ってしまったらやり直し。

    ②ZapierでMCPサーバーを構築

    まずは画面内にある「+ NEW MCP Server」ボタンを押下します

    NEW MCP Server Button

    モーダルが表示されるので、「MCP Client」のセレクトボックスで、MCPサーバーに接続するクライアントツールを選択し、Nameには適当な識別名を付けます。

    view mcp modal

    サイドバーに追加されたMCPサーバーを選択すると、現在のMCPサーバーの設定情報が表示されますので、こちらで「+ Add tool」ボタンを押下します。

    server settings

    追加できるWebサービス一覧が表示されます。先頭には恐らくよく使われるサービスが表示されておりますので、一覧に無い場合は検索ボックスから検索します。
    今回は「Slack」を選択します。

    web services

    Slackで使用できるTool(API)一覧画面が表示されます。この中から使いたいSlackの機能を選択します。

    zapier tool list

    Toolの選択が完了すると、サービスへの接続設定が求められます。今回はSlackを選択している為、Slackへの接続設定を行うボタンが表示されます。

    mcp slack connect

    mcp slack connect setting

    今回は合わせてGoogle Calendarも追加しました。

    mcp settings

    ③VS CodeにMCPサーバー情報を設定

    最後にVS Codeとの接続設定を行います。
    接続設定はヘッダにある「Connect」リンクを押下します。すると選択したMCP Clientへの接続設定と、接続用に発行されたURLが一部隠された状態で表示されます。

    server connect guide

    「Server URL」の右にある「Copy URL」ボタンを押下すると、クリップボードにMCPサーバーのURLがコピーされます。

    そして今度は取得したサーバーのURLを、前回の記事で作成した .vscode/mcp.jsonファイルに記載します。記載の内容は以下です。

    mcp-use2-image15.webp

    { "servers": { "zapier": { "url": "https://mcp.zapier.com/api/mcp/s/xxxx==/mcp" } } }

    以上でMCPサーバーへの接続が完了です!今回もとても簡単でしたね!

    2-2. 実行フェーズ

    ①Agentを実行しよう

    それでは早速使ってみましょう!今回GitHub Copilot Agentが連携している対象は「Slack」と「Google Calendar」の2つのサービスと連携できているハズ!です!

    今回テスト用に、Slackに「#notify」チャンネルを作成し、Googleカレンダーには「お茶を買いに行く」という日程を追加しました。

    go to buy the tea

    Slack notify Channel preview

    さて、それではCopilot Agentにお茶を買いに行く日付を調べさせて、分かったらSlackの#notifyチャンネルに通知させる動作確認を実用性はさておき行ってみたいと思います。

    vs code agent log 1 途中でSlackにメッセージを投稿して良いのか?という確認が入りますのでOKします。

    mcp-use2-image19.webp

    完了したみたいですので、Slackチャンネルを見てみます。

    view slack channel

    問題なく投稿できていますね!

    以上、とても簡単に Google Calendarから検索→Slack通知という、複数のサービスと連携した動作が実現できました!

    ②Zapierの実行履歴(History)を確認しよう

    最後にZapier側で実際にMCPサーバーがどのように動作したかを確認してみます。
    Zapier MCPサーバーの画面に戻り、ヘッダーの「History」リンクを押下します。

    header history button

    history screen

    History画面ではMCPサーバーが受け取ったリクエストが一覧で表示されています。
    ここで先程のSlack通知の際に送信されたリクエストを選択してみます。

    mcp-use2-image23.webp

    アコーディオンを展開すると、MCPサーバーが受け取ったリクエストの詳細情報が確認できます。
    ここではMCPサーバーが受け取った指示内容や、Slackに投稿するために解決したパラメータ情報、最終的な出力結果などを確認することができます。
    これにより、MCPサーバーがどのように動作したかを把握できます。

    3. まとめ

    以上、SaaS提供MCPサーバーであるZapier MCPサーバーを使って複数のサービスと連携した動作がとても簡単に実現できることを紹介しました。

    前回の公式GitHub MCPサーバーと比べ、今回のSaaS型 MCPサーバーは

    ・アプリやアプリ内のToolsの追加が画面上で簡単に行える。
    ・どういうToolが使えるかが一覧で把握できる。
    ・外部サービスの認証設定も画面上で簡単に行える。

    といったメリットがあることがわかりました。
    また今回紹介はしておりませんが、WebhookやカスタムAPIを使用して独自のサービスと連携することも可能です。

    一方でZapier MCPサーバーでは

    ・日本のサービスはあまり対応していない。
    ・社内システムなどの外部に公開されていないAPIとは連携できない。
    ・使用の都度コストがかかる(無料プランもありますが、利用制限が厳しい)。

    といった点にも注意が必要です。

    次回はOSS MCPサーバーを構築して使用する例を紹介します。

    このアーカイブについて

    このページには、2025年12月に書かれた記事が新しい順に公開されています。

    前のアーカイブは2025年11月です。

    最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。