MastraでAIエージェント開発を始める – セットアップから基本的なエージェント作成まで
Mastraフレームワークを使ったAIエージェント開発の始め方を解説。セットアップから基本的なエージェント作成までの手順を詳しく紹介し、初心者でも簡単に開発環境を整えられる方法を紹介します。
目次
最近、AIエージェントの開発に興味を持っていろいろと調べていたところ、Mastra というフレームワークを見つけました。実際にプロジェクトをセットアップして簡単なエージェントを作成してみたので、その手順をまとめておきます。
Mastraとは
Mastra は AI エージェントの開発を簡単にするフレームワークです。複数の AI プロバイダーに対応しており、メモリ機能やツール統合といったエージェント開発に欠かせない機能を備えています。
プロジェクトセットアップ
Mastra プロジェクトの作成は非常に簡単でした。まず、以下のコマンドでプロジェクトを初期化しましょう。
npm create mastra
プロジェクト名を聞かれるので、適当に入力します。
◇  What do you want to name your project?
│  my-mastra-app
依存関係のインストールが完了すると、Mastra の初期化が始まります。
◇  Project structure created
│
◇  npm dependencies installed
│
◐  Installing mastra.
Mastraの設定
初期化プロセスでは、いくつかの設定を行う必要があります。
まず、Mastra ファイルの配置場所を指定します。デフォルトの src/ で問題ありません。
◆  Where should we create the Mastra files? (default: src/)
│  src/
次に、デフォルトの AI プロバイダーを選択します。OpenAI、Anthropic、Groq、Google、Cerebras から選択できます。Amazon Bedrock は選択肢にないようでした。
◆  Select default provider:
│  ● OpenAI (recommended)
│  ○ Anthropic
│  ○ Groq
│  ○ Google
│  ○ Cerebras
API キーの設定は後回しにできるので、「Skip for now」を選択しても大丈夫です。
◆  Enter your anthropic API key?
│  ● Skip for now (default)
│  ○ Enter API key
最後に、IDE 用の Mastra ドキュメント MCP サーバーのインストールを選択できます。これも後で設定できるので、とりあえずスキップしました。
◆  Make your AI IDE into a Mastra expert? (installs Mastra docs MCP server)
│  ● Skip for now (default)
│  ○ Cursor (project only)
│  ○ Cursor (global, all projects)
│  ○ Windsurf
│  ○ VSCode
セットアップが完了すると、以下のような成功メッセージが表示されます。
◇   ───────────────────────────────────────╮
│                                          │
│                                          │
│        Mastra initialized successfully!  │
│                                          │
│                                          │
├──────────────────────────────────────────╯
│
└  
   To start your project:
    cd my-mastra-app
    npm run dev
開発サーバーの起動
プロジェクトディレクトリに移動して、開発サーバーを起動しましょう。
cd my-mastra-app
npm run dev
サーバーが起動すると、以下のような出力が表示されます。
INFO [2025-07-18 09:53:59.605 +0900] (Mastra CLI): Starting watcher...
INFO [2025-07-18 09:54:00.219 +0900] (Mastra CLI): Bundling finished, starting server...
INFO [2025-07-18 09:54:00.253 +0900] (Mastra CLI): [Mastra Dev] - Starting server...
INFO [2025-07-18 09:54:01.167 +0900] (Mastra):  Mastra API running on port http://localhost:4111/api
INFO [2025-07-18 09:54:01.168 +0900] (Mastra): 👨💻 Playground available at http://localhost:4111
これで http://localhost:4111 で Playground が利用できるようになります。
エージェントの作成
Mastra でエージェントを作成するには、src/mastra/agents ディレクトリにファイルを作成します。
例えば、EC サイト用のコマースエージェントを作成する場合は、以下のようなコードになります。
import { anthropic } from '@ai-sdk/anthropic';
import { Agent } from '@mastra/core/agent';
import { Memory } from '@mastra/memory';
import { LibSQLStore } from '@mastra/libsql';
export const commerceAgent = new Agent({
  name: 'Commerce Agent',
  instructions: `あなたは EC サイトのコマースエージェントです。以下のツールを使用してユーザーのショッピング体験をサポートしてください。
あなたの役割は商品案内、商品情報提供、購入サポート、質問対応の4つに分かれます。ユーザーが探している商品を理解し、適切な商品を提案することから始めてください。商品の詳細、価格、特徴などを分かりやすく説明し、ユーザーが商品を購入したい場合はスムーズにチェックアウトプロセスを進めます。商品や購入プロセスに関する質問には丁寧に回答してください。
行動する際は、常にユーザーのニーズを理解し、適切な商品を提案することを心がけてください。商品情報は正確に伝え、購入意欲がある場合は積極的にチェックアウトプロセスをサポートしましょう。親切で丁寧な対応を常に心がけ、不明な点があればユーザーに確認してください。
まずは商品一覧を確認し、ユーザーの要望に応じて適切なサポートを提供してください。`,
  model: anthropic('claude-3-5-sonnet-20241022'),
  memory: new Memory({
    storage: new LibSQLStore({
      url: 'file:../mastra.db', // path is relative to the .mastra/output directory
    }),
  }),
});
このエージェントは、Anthropic のモデルを使用し、メモリ機能として LibSQL を使用しています。
MCPクライアントの統合
外部の MCP サーバーと連携する場合は、MCP クライアントを設定できます。
import { MCPClient } from '@mastra/mcp';
const commerceMCP = new MCPClient({
    servers: {
        commerce: {
            url: new URL("http://localhost:8787/sse"),
        }
    },
    timeout: 10000,
})
この MCP クライアントをエージェントに統合するには、以下のようにツールを追加します。
export const commerceAgent = new Agent({
  tools: await commerceMCP.getTools(),
  // ... その他の設定
});
まとめ
Mastra を使った AI エージェント開発の基本的な流れをご紹介しました。セットアップはとても簡単で、数分でエージェントの開発環境を整えることができます。
特に印象的だったのは、設定項目がシンプルで迷うことなく進められる点でした。また、複数の AI プロバイダーに対応している点も実用的だと感じました。
今回は基本的なセットアップまでしか触れませんでしたが、実際にツールを統合したり、より複雑なエージェントを作成していく過程も今後試してみたいと思います。