Skip to Content

Mastraサーバーの作成

開発中または Mastra アプリケーションをデプロイする際、エージェント、ワークフロー、およびその他の機能を API エンドポイントとして公開する HTTP サーバーとして実行されます。このページでは、サーバーの動作を設定およびカスタマイズする方法について説明します。

サーバーアーキテクチャ

MastraはHonoを基盤となるHTTPサーバーフレームワークとして使用しています。mastra buildを使用してMastraアプリケーションをビルドすると、.mastraディレクトリにHonoベースのHTTPサーバーが生成されます。

サーバーは以下を提供します:

  • 登録されたすべてのエージェント用のAPIエンドポイント
  • 登録されたすべてのワークフロー用のAPIエンドポイント
  • カスタムAPIルートのサポート
  • カスタムミドルウェアのサポート
  • タイムアウトの設定
  • ポートの設定
  • ボディリミットの設定

追加のサーバー動作の追加については、ミドルウェアカスタムAPIルートのページを参照してください。

サーバー設定

Mastraインスタンスでサーバーのporttimeoutを設定できます。

import { Mastra } from "@mastra/core"; export const mastra = new Mastra({ server: { port: 3000, // デフォルトは4111 timeout: 10000, // デフォルトは30000(30秒) }, });

カスタムCORS設定

Mastraでは、サーバーのCORS(クロスオリジンリソース共有)設定をカスタマイズすることができます。

import { Mastra } from '@mastra/core'; export const mastra = new Mastra({ server: { cors: { origin: ['https://example.com'], // 特定のオリジンを許可、または'*'ですべてを許可 allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], allowHeaders: ['Content-Type', 'Authorization'], credentials: false, } } });

デプロイメント

Mastraは標準的なNode.jsサーバーにビルドされるため、Node.jsアプリケーションを実行するあらゆるプラットフォームにデプロイできます:

  • クラウドVM(AWS EC2、DigitalOcean Droplets、GCP Compute Engine)
  • コンテナプラットフォーム(Docker、Kubernetes)
  • Platform as a Service(Heroku、Railway)
  • 自己ホスト型サーバー

ビルド

アプリケーションをビルドします:

# 現在のディレクトリからビルド mastra build # またはディレクトリを指定 mastra build --dir ./my-project

ビルドプロセス:

  1. エントリーファイル(src/mastra/index.tsまたはsrc/mastra/index.js)を特定
  2. .mastra出力ディレクトリを作成
  3. ツリーシェイキングとソースマップを使用してRollupでコードをバンドル
  4. Hono HTTPサーバーを生成

すべてのオプションについてはmastra buildを参照してください。

サーバーの実行

HTTPサーバーを起動します:

node .mastra/output/index.mjs

ビルド出力用のテレメトリを有効にする

ビルド出力のインストルメンテーションを次のように読み込みます:

node --import=./.mastra/output/instrumentation.mjs .mastra/output/index.mjs

サーバーレスデプロイメント

MastraはCloudflare Workers、Vercel、Netlifyでのサーバーレスデプロイメントもサポートしています。

セットアップ手順については、サーバーレスデプロイメントガイドをご覧ください。