メインコンテンツへ移動

サーバールート

サーバーアダプターは、server.init() を呼び出すと以下のルートを登録します。prefix オプションが設定されている場合、すべてのルートにそのプレフィックスが付きます。

Agent
Agentへの直接リンク

メソッドパス説明
GET/api/agentsすべての Agent を一覧表示
GET/api/agents/:agentIdID で Agent を取得(バージョンのクエリパラメーターをサポート)
POST/api/agents/:agentId/generateAgent のレスポンスを生成
POST/api/agents/:agentId/streamAgent のレスポンスをストリーミング
POST/api/agents/:agentId/send-messageアクティブまたはアイドル状態のスレッドにユーザーメッセージを送信
POST/api/agents/:agentId/queue-message次のスレッドターン用にユーザーメッセージをキューに追加
POST/api/agents/:agentId/signalsアクティブまたはアイドル状態のスレッドに低レベルのシグナルを送信
POST/api/agents/:agentId/threads/subscribeスレッドストリームを購読
POST/api/agents/:agentId/send-tool-approvalTool 呼び出しを承認または拒否し、スレッド購読を通じて再開
POST/api/agents/:agentId/resume-streamカスタムデータを使用して中断中の Agent ストリームを再開
GET/api/agents/:agentId/toolsAgent の Tool を一覧表示
POST/api/agents/:agentId/tools/:toolId/executeAgent の Tool を実行

Agent 取得のクエリパラメーター
Agent 取得のクエリパラメーターへの直接リンク

GET /api/agents/:agentId は、コードで定義された Agent にオーバーライドとして適用する保存済み設定のバージョンを制御するため、オプションのクエリパラメーターを受け付けます。

パラメーターデフォルト説明
status'draft' | 'published''published'解決する保存済みバージョン。draft は最新バージョンを返し、published はアクティブなバージョンを返します。
versionIdstringなし解決する特定のバージョン ID。status より優先されます。
# Get agent with active published overrides (default)
GET /api/agents/my-agent

# Get agent with latest draft overrides
GET /api/agents/my-agent?status=draft

# Get agent with a specific version's overrides
GET /api/agents/my-agent?versionId=abc123

生成リクエストのボディ
生成リクエストのボディへの直接リンク

{
messages: CoreMessage[] | string; // Required
instructions?: string; // System instructions
system?: string; // System prompt
context?: CoreMessage[]; // Additional context
memory?: { key: string } | boolean; // Memory config
resourceId?: string; // Resource identifier
threadId?: string; // Thread identifier
runId?: string; // Run identifier
maxSteps?: number; // Max tool steps
activeTools?: string[]; // Tools to enable
toolChoice?: ToolChoice; // Tool selection mode
requestContext?: Record<string, unknown>; // Request context
output?: ZodSchema; // Structured output schema
}

生成レスポンス
生成レスポンスへの直接リンク

{
text: string;
toolCalls?: ToolCall[];
finishReason: string;
usage?: {
promptTokens: number;
completionTokens: number;
};
}

Agent メッセージルート
Agent メッセージルートへの直接リンク

アクティブな Agent ループにユーザーメッセージを送信するか、アイドル状態のスレッドを起動するには、POST /api/agents/:agentId/send-message を使用します。Mastra がフォローアップ実行を開始する前にアクティブな実行を完了させる場合は、POST /api/agents/:agentId/queue-message を使用します。

どちらのルートも同じリクエストボディを受け付けます。

{
message: string | Array<TextPart | FilePart> | {
contents: string | Array<TextPart | FilePart>;
attributes?: Record<string, JSONValue>;
metadata?: Record<string, unknown>;
providerOptions?: ProviderMetadata;
};
runId?: string;
resourceId?: string;
threadId?: string;
ifActive?: {
behavior?: 'deliver' | 'persist' | 'discard';
attributes?: Record<string, string | number | boolean>;
};
ifIdle?: {
behavior?: 'wake' | 'persist' | 'discard';
streamOptions?: Omit<AgentExecutionOptions, 'messages'>;
attributes?: Record<string, string | number | boolean>;
};
}

runId を省略した場合は、resourceIdthreadId が必須です。ifIdle はスレッドを対象とするリクエストにのみ適用され、実行を対象とするリクエストには適用されません。

メッセージの送信
メッセージの送信への直接リンク

curl -X POST http://localhost:4111/api/agents/supportAgent/send-message \
-H 'Content-Type: application/json' \
-d '{
"message": {
"contents": "Show the shorter version.",
"attributes": { "sentFrom": "web" }
},
"resourceId": "user_123",
"threadId": "thread_456"
}'

メッセージのキューへの追加
メッセージのキューへの追加への直接リンク

curl -X POST http://localhost:4111/api/agents/supportAgent/queue-message \
-H 'Content-Type: application/json' \
-d '{
"message": "Also check whether the tests need updates.",
"resourceId": "user_123",
"threadId": "thread_456"
}'

どちらのルートも次のレスポンスを返します。

{
accepted: true;
runId: string;
signal?: CreatedAgentSignal;
}

購読での Tool 承認ルート
購読での Tool 承認ルートへの直接リンク

クライアントにアクティブなスレッド購読がすでにある場合は、POST /api/agents/:agentId/send-tool-approval を使用します。このルートは実行を再開し、JSON の確認応答を返します。再開されたストリームのチャンクは、POST /api/agents/:agentId/threads/subscribe を通じて配信されます。

このルートは次のリクエストボディを受け付けます。

{
resourceId: string;
threadId: string;
toolCallId: string;
approved: boolean;
requestContext?: Record<string, unknown>;
}

このルートは次のレスポンスを返します。

{
accepted: true;
runId: string;
toolCallId?: string;
}

Workflow
Workflowへの直接リンク

メソッドパス説明
GET/api/workflowsすべての Workflow を一覧表示
GET/api/workflows/run-countsWorkflow ごとに実行中および中断中の実行数を取得
GET/api/workflows/:workflowIdID で Workflow を取得
POST/api/workflows/:workflowId/create-run新しい Workflow 実行を作成
POST/api/workflows/:workflowId/start-asyncWorkflow を開始して結果を待機
POST/api/workflows/:workflowId/streamWorkflow の実行をストリーミング
POST/api/workflows/:workflowId/resume中断中の Workflow を再開
POST/api/workflows/:workflowId/resume-async非同期で再開
GET/api/workflows/:workflowId/runsWorkflow の実行を一覧表示
GET/api/workflows/:workflowId/runs/:runId特定の実行を取得

実行数のレスポンス
実行数のレスポンスへの直接リンク

/api/workflows/run-counts エンドポイントは、登録されたすべての Workflow について、runningsuspended の実行数を返します。レコードのキーには Mastra 設定にある Workflow のレジストリキーが使用され、サーバーはレスポンスを数秒間キャッシュする場合があります。

{
[workflowRegistryKey: string]: {
running: number;
suspended: number;
};
}

動的 Workflow
動的 Workflowへの直接リンク

動的 Workflow 定義(ベータ版)は JSON で表現された Workflow で、workflowDefinitions ストレージドメインを通じて永続化され、実行中のインスタンスに動的に登録されます。動的 Workflow を参照してください。

メソッドパス説明
GET/api/stored/workflows動的 Workflow 定義を一覧表示。statusauthorId で絞り込み可能
GET/api/stored/workflows/:dynamicWorkflowIdID で動的 Workflow 定義を取得
POST/api/stored/workflows定義(およびオプションのヘルパー dependencies)を upsert し、動的に登録
DELETE/api/stored/workflows/:dynamicWorkflowId動的 Workflow 定義を削除し、実行中の Workflow の登録を解除

認証済みサーバーでは、読み取りルートに stored-workflows:read 権限、書き込みルートに stored-workflows:write 権限が必要です。登録された動的 Workflow は、上記の通常の /api/workflows/:workflowId ルートを通じて実行されます。

実行作成リクエストのボディ
実行作成リクエストのボディへの直接リンク

{
resourceId?: string; // Associate run with a resource (e.g., user ID)
disableScorers?: boolean; // Disable scorers for this run
}

/start-async のリクエストボディ
request-body-for-start-asyncへの直接リンク

{
resourceId?: string; // Associate run with a resource (e.g., user ID)
inputData?: unknown;
initialState?: unknown;
requestContext?: Record<string, unknown>;
tracingOptions?: {
spanName?: string;
attributes?: Record<string, unknown>;
};
}

Workflow ストリーミングのリクエストボディ
Workflow ストリーミングのリクエストボディへの直接リンク

{
resourceId?: string; // Associate run with a resource (e.g., user ID)
inputData?: unknown;
initialState?: unknown;
requestContext?: Record<string, unknown>;
closeOnSuspend?: boolean;
}

再開リクエストのボディ
再開リクエストのボディへの直接リンク

{
step?: string | string[];
resumeData?: unknown;
requestContext?: Record<string, unknown>;
}

Tool
Toolへの直接リンク

メソッドパス説明
GET/api/toolsすべての Tool を一覧表示
GET/api/tools/:toolIdID で Tool を取得
POST/api/tools/:toolId/executeTool を実行

Tool 実行リクエストのボディ
Tool 実行リクエストのボディへの直接リンク

{
data: unknown; // Tool input data
requestContext?: Record<string, unknown>;
}

Memory
Memoryへの直接リンク

メソッドパス説明
GET/api/memory/threadsスレッドを一覧表示
GET/api/memory/threads/:threadIdスレッドを取得
POST/api/memory/threadsスレッドを作成
DELETE/api/memory/threads/:threadIdスレッドを削除
POST/api/memory/threads/:threadId/cloneスレッドを複製
GET/api/memory/threads/:threadId/messagesスレッドのメッセージを取得
POST/api/memory/threads/:threadId/messagesメッセージを追加

スレッド作成リクエストのボディ
スレッド作成リクエストのボディへの直接リンク

{
resourceId: string;
title?: string;
metadata?: Record<string, unknown>;
}

スレッド複製リクエストのボディ
スレッド複製リクエストのボディへの直接リンク

{
newThreadId?: string; // Custom ID for cloned thread
resourceId?: string; // Override resource ID
title?: string; // Custom title for clone
metadata?: Record<string, unknown>; // Additional metadata
options?: {
messageLimit?: number; // Max messages to clone
messageFilter?: {
startDate?: Date; // Clone messages after this date
endDate?: Date; // Clone messages before this date
messageIds?: string[]; // Clone specific messages
};
};
}

スレッド複製のレスポンス
スレッド複製のレスポンスへの直接リンク

{
thread: {
id: string;
resourceId: string;
title: string;
createdAt: Date;
updatedAt: Date;
metadata: {
clone: {
sourceThreadId: string;
clonedAt: Date;
lastMessageId?: string;
};
// ... other metadata
};
};
clonedMessages: MastraDBMessage[];
}

Vector
Vectorへの直接リンク

メソッドパス説明
POST/api/vectors/:vectorName/upsertVector を upsert
POST/api/vectors/:vectorName/queryVector をクエリ
POST/api/vectors/:vectorName/deleteVector を削除

Upsert リクエストのボディ
Upsert リクエストのボディへの直接リンク

{
vectors: Array<{
id: string
values: number[]
metadata?: Record<string, unknown>
}>
}

クエリリクエストのボディ
クエリリクエストのボディへの直接リンク

{
vector: number[];
topK?: number;
filter?: Record<string, unknown>;
includeMetadata?: boolean;
}

MCP
MCPへの直接リンク

メソッドパス説明
GET/api/mcp/serversMCP サーバーを一覧表示
GET/api/mcp/servers/:serverId/toolsサーバーの Tool を一覧表示
POST/api/mcp/:serverIdMCP HTTP トランスポート
GET/api/mcp/:serverId/sseMCP SSE トランスポート

Responses API
Responses APIへの直接リンク

メソッドパス説明
POST/api/v1/responsesOpenAI 互換の Responses API ルートを通じてレスポンスを作成
GET/api/v1/responses/:responseId保存済みのレスポンスを取得
DELETE/api/v1/responses/:responseId保存済みのレスポンスを削除

リクエストとレスポンスの完全な仕様については、Responses API リファレンス を参照してください。

Conversations API
Conversations APIへの直接リンク

メソッドパス説明
POST/api/v1/conversations会話を作成
GET/api/v1/conversations/:conversationId会話を取得
DELETE/api/v1/conversations/:conversationId会話を削除
GET/api/v1/conversations/:conversationId/items会話に保存された項目を一覧表示

リクエストとレスポンスの完全な仕様については、Conversations API リファレンス を参照してください。

ログ
ログへの直接リンク

メソッドパス説明
GET/api/logsログを一覧表示
GET/api/logs/:runId実行 ID でログを取得

クエリパラメーター
クエリパラメーターへの直接リンク

{
page?: number;
perPage?: number;
transportId?: string;
}

テレメトリ
テレメトリへの直接リンク

メソッドパス説明
GET/api/telemetry/tracesTrace を一覧表示
GET/api/telemetry/traces/:traceIdTrace を取得
GET/api/telemetry/traces/:traceId/spansTrace の span を取得

共通のクエリパラメーター
共通のクエリパラメーターへの直接リンク

ページネーション
ページネーションへの直接リンク

ほとんどの一覧エンドポイントは、以下をサポートします。

{
page?: number; // Page number (0-indexed)
perPage?: number; // Items per page (default: 10)
}

フィルタリング
フィルタリングへの直接リンク

Workflow の実行は、以下をサポートします。

{
fromDate?: string; // ISO date string
toDate?: string; // ISO date string
status?: string; // Run status filter
resourceId?: string; // Filter by resource
}

エラーレスポンス
エラーレスポンスへの直接リンク

すべてのルートは、次の形式でエラーを返します。

{
error: string; // Error message
details?: unknown; // Additional details
}

一般的なステータスコードは次のとおりです。

コード意味
400Bad Request - 無効なパラメーター
401Unauthorized - 認証情報がないか無効
403Forbidden - 権限が不足
404Not Found - リソースが存在しない
500Internal Server Error