MastraServer
MastraServer 抽象クラスは、すべてのサーバーアダプターの基底クラスです。Hono または Express 以外のフレームワーク用アダプターを作成するには、このクラスを拡張します。
インポートインポートへの直接リンク
import { MastraServer } from '@mastra/server/server-adapter'
型パラメーター型パラメーターへの直接リンク
MastraServer<TApp, TRequest, TResponse>
| パラメーター | 説明 |
|---|---|
TApp | フレームワークのアプリ型(例:Hono、Application) |
TRequest | フレームワークのリクエスト型 |
TResponse | フレームワークのレスポンス/コンテキスト型 |
コンストラクターコンストラクターへの直接リンク
constructor(options: MastraServerOptions<TApp>)
オプションオプションへの直接リンク
app:
TApp
フレームワークのアプリインスタンス
mastra:
Mastra
Mastra のインスタンス
prefix?:
string
= ''
ルートパスのプレフィックス(例:
/api/v2)openapiPath?:
string
= ''
OpenAPI 仕様を配信するパス
bodyLimitOptions?:
BodyLimitOptions
リクエストボディのサイズ制限
streamOptions?:
StreamOptions
= { redact: true }
ストリームの秘匿化設定
customRouteAuthConfig?:
Map<string, boolean>
ルートごとの認証オーバーライド
tools?:
Record<string, Tool>
サーバーで利用可能な Tool
taskStore?:
InMemoryTaskStore
A2A(Agent-to-Agent)操作用のタスクストア
mcpOptions?:
MCPOptions
サーバーレス環境向けの MCP トランスポートオプション
抽象メソッド抽象メソッドへの直接リンク
アダプターでは、次のメソッドを実装する必要があります。
registerContextMiddleware()registercontextmiddlewareへの直接リンク
すべてのリクエストに Mastra コンテキストを付加します。
abstract registerContextMiddleware(): void
付加するコンテキスト:
mastra- Mastra のインスタンスrequestContext- リクエストスコープのコンテキストtools- 利用可能な ToolabortSignal- リクエストのキャンセルシグナル
registerAuthMiddleware()registerauthmiddlewareへの直接リンク
初期化時にアダプターの認証フックを実行します。公式アダプターでは、ルートごとに認証を適用する場合、このメソッドを何もしない実装にできます。
abstract registerAuthMiddleware(): void
registerRoute()registerrouteへの直接リンク
フレームワークに単一のルートを登録します。
abstract registerRoute(
app: TApp,
route: ServerRoute,
options: { prefix?: string }
): Promise<void>
getParams()getparamsへの直接リンク
リクエストからパラメーターを抽出します。
abstract getParams(
route: ServerRoute,
request: TRequest
): Promise<{
urlParams: Record<string, string>;
queryParams: Record<string, string>;
body: unknown;
}>
sendResponse()sendresponseへの直接リンク
ルートの種類に応じてレスポンスを送信します。
abstract sendResponse(
route: ServerRoute,
response: TResponse,
result: unknown
): Promise<unknown>
stream()streamへの直接リンク
ストリーミングレスポンスを処理します。
abstract stream(
route: ServerRoute,
response: TResponse,
result: unknown
): Promise<unknown>
インスタンスメソッドインスタンスメソッドへの直接リンク
init()initへの直接リンク
すべてのミドルウェアとルートを登録してサーバーを初期化します。
async init(): Promise<void>
次の順序で呼び出します。
registerContextMiddleware()registerAuthMiddleware()registerRoutes()
registerRoutes()registerroutesへの直接リンク
すべての Mastra ルートを登録します。
async registerRoutes(): Promise<void>
getApp()getappへの直接リンク
フレームワークのアプリインスタンスを取得します。
getApp<T = TApp>(): T
parsePathParams()parsepathparamsへの直接リンク
ルートの Zod スキーマを使用してパスパラメーターを検証します。
async parsePathParams(
route: ServerRoute,
params: Record<string, string>
): Promise<Record<string, unknown>>
parseQueryParams()parsequeryparamsへの直接リンク
ルートの Zod スキーマを使用してクエリパラメーターを検証します。
async parseQueryParams(
route: ServerRoute,
params: Record<string, string>
): Promise<Record<string, unknown>>
parseBody()parsebodyへの直接リンク
ルートの Zod スキーマを使用してリクエストボディを検証します。
async parseBody(
route: ServerRoute,
body: unknown
): Promise<unknown>
registerOpenAPIRoute()registeropenapirouteへの直接リンク
OpenAPI 仕様を配信するエンドポイントを登録します。
async registerOpenAPIRoute(
app: TApp,
config: OpenAPIConfig,
options: { prefix?: string }
): Promise<void>
protected メソッドprotected メソッドへの直接リンク
mergeRequestContext()mergerequestcontextへの直接リンク
複数のソース(クエリパラメーターとボディ)からのリクエストコンテキストをマージします。
protected mergeRequestContext(options: {
paramsRequestContext?: Record<string, any>;
bodyRequestContext?: Record<string, any>;
}): RequestContext
型型への直接リンク
BodyLimitOptionsbodylimitoptionsへの直接リンク
interface BodyLimitOptions {
maxSize: number
onError: (error: unknown) => unknown
}
StreamOptionsstreamoptionsへの直接リンク
interface StreamOptions {
redact?: boolean
}
MCPOptionsMCPOptionsへの直接リンク
interface MCPOptions {
serverless?: boolean
sessionIdGenerator?: () => string
}
| プロパティ | 説明 |
|---|---|
serverless | true の場合、MCP はセッション管理を行わないステートレスモードで実行されます。Cloudflare Workers や Vercel Edge などのサーバーレス環境で使用します。 |
sessionIdGenerator | セッション ID を生成するカスタム関数。 |
例例への直接リンク
import { MastraServer, ServerRoute } from '@mastra/server/server-adapter'
import type { Mastra } from '@mastra/core'
export class MyServer extends MastraServer<MyApp, MyRequest, MyResponse> {
registerContextMiddleware(): void {
this.app.use('*', (req, res, next) => {
res.locals.mastra = this.mastra
next()
})
}
registerAuthMiddleware(): void {
const auth = this.mastra.getServer()?.auth
if (!auth) return
// Register global auth middleware, or leave this empty and
// enforce auth when routes are registered.
}
async registerRoute(app, route, { prefix }) {
// Implement route registration
}
async getParams(route, request) {
return {
urlParams: request.params,
queryParams: request.query,
body: request.body,
}
}
async sendResponse(route, response, result) {
return response.json(result)
}
async stream(route, response, result) {
// Implement streaming
}
}
関連項目関連項目への直接リンク
- サーバーアダプター:アダプターの使用方法
- カスタムアダプター:カスタムアダプターの作成
- createRoute():カスタムルートの作成