@mastra/mcp-docs-server 0.13.37 → 0.13.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +23 -23
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +69 -69
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +23 -23
- package/.docs/organized/changelogs/create-mastra.md +5 -5
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/raw/agents/adding-voice.mdx +20 -9
- package/.docs/raw/agents/agent-memory.mdx +55 -39
- package/.docs/raw/agents/guardrails.mdx +68 -61
- package/.docs/raw/agents/networks.mdx +50 -46
- package/.docs/raw/agents/overview.mdx +125 -88
- package/.docs/raw/agents/using-tools.mdx +14 -15
- package/.docs/raw/auth/auth0.mdx +28 -27
- package/.docs/raw/auth/clerk.mdx +22 -20
- package/.docs/raw/auth/firebase.mdx +42 -39
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +18 -16
- package/.docs/raw/auth/supabase.mdx +20 -18
- package/.docs/raw/auth/workos.mdx +32 -26
- package/.docs/raw/community/contributing-templates.mdx +7 -7
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/course/03-agent-memory/26-updating-mastra-export-comprehensive.md +0 -32
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +41 -22
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +48 -29
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +52 -24
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +86 -55
- package/.docs/raw/deployment/cloud-providers/index.mdx +16 -13
- package/.docs/raw/deployment/monorepo.mdx +32 -42
- package/.docs/raw/deployment/overview.mdx +15 -15
- package/.docs/raw/deployment/server-deployment.mdx +18 -23
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +16 -17
- package/.docs/raw/deployment/serverless-platforms/index.mdx +15 -12
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +14 -23
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +16 -23
- package/.docs/raw/deployment/web-framework.mdx +14 -14
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +138 -145
- package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +54 -43
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +51 -36
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +161 -120
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +59 -48
- package/.docs/raw/frameworks/servers/express.mdx +45 -44
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +245 -162
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +112 -69
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +189 -164
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
- package/.docs/raw/getting-started/installation.mdx +164 -133
- package/.docs/raw/getting-started/mcp-docs-server.mdx +36 -39
- package/.docs/raw/getting-started/project-structure.mdx +34 -42
- package/.docs/raw/getting-started/studio.mdx +40 -58
- package/.docs/raw/getting-started/templates.mdx +22 -27
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/mastra-cloud/dashboard.mdx +10 -10
- package/.docs/raw/mastra-cloud/observability.mdx +7 -8
- package/.docs/raw/mastra-cloud/overview.mdx +16 -22
- package/.docs/raw/mastra-cloud/setting-up.mdx +33 -20
- package/.docs/raw/memory/conversation-history.mdx +2 -2
- package/.docs/raw/memory/overview.mdx +21 -23
- package/.docs/raw/memory/semantic-recall.mdx +14 -13
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +27 -28
- package/.docs/raw/memory/storage/memory-with-pg.mdx +26 -26
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +26 -27
- package/.docs/raw/memory/threads-and-resources.mdx +23 -20
- package/.docs/raw/memory/working-memory.mdx +27 -38
- package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +30 -29
- package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +8 -9
- package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +17 -16
- package/.docs/raw/observability/ai-tracing/exporters/default.mdx +31 -32
- package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +18 -17
- package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +14 -14
- package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +56 -46
- package/.docs/raw/observability/ai-tracing/overview.mdx +145 -122
- package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +57 -36
- package/.docs/raw/observability/logging.mdx +14 -17
- package/.docs/raw/observability/nextjs-tracing.mdx +5 -5
- package/.docs/raw/observability/otel-tracing.mdx +17 -18
- package/.docs/raw/observability/overview.mdx +14 -10
- package/.docs/raw/rag/chunking-and-embedding.mdx +10 -8
- package/.docs/raw/rag/overview.mdx +5 -5
- package/.docs/raw/rag/retrieval.mdx +125 -107
- package/.docs/raw/rag/vector-databases.mdx +232 -223
- package/.docs/raw/reference/agents/agent.mdx +54 -41
- package/.docs/raw/reference/agents/generate.mdx +367 -261
- package/.docs/raw/reference/agents/generateLegacy.mdx +260 -178
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDescription.mdx +3 -2
- package/.docs/raw/reference/agents/getInstructions.mdx +7 -5
- package/.docs/raw/reference/agents/getLLM.mdx +11 -7
- package/.docs/raw/reference/agents/getMemory.mdx +7 -5
- package/.docs/raw/reference/agents/getModel.mdx +7 -5
- package/.docs/raw/reference/agents/getScorers.mdx +7 -5
- package/.docs/raw/reference/agents/getTools.mdx +7 -5
- package/.docs/raw/reference/agents/getVoice.mdx +7 -5
- package/.docs/raw/reference/agents/getWorkflows.mdx +7 -5
- package/.docs/raw/reference/agents/listAgents.mdx +6 -4
- package/.docs/raw/reference/agents/network.mdx +171 -116
- package/.docs/raw/reference/auth/auth0.mdx +18 -14
- package/.docs/raw/reference/auth/clerk.mdx +15 -12
- package/.docs/raw/reference/auth/firebase.mdx +23 -16
- package/.docs/raw/reference/auth/jwt.mdx +7 -6
- package/.docs/raw/reference/auth/supabase.mdx +13 -10
- package/.docs/raw/reference/auth/workos.mdx +17 -13
- package/.docs/raw/reference/cli/create-mastra.mdx +61 -44
- package/.docs/raw/reference/cli/mastra.mdx +11 -11
- package/.docs/raw/reference/client-js/agents.mdx +40 -43
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +1 -1
- package/.docs/raw/reference/client-js/mastra-client.mdx +21 -13
- package/.docs/raw/reference/client-js/memory.mdx +6 -2
- package/.docs/raw/reference/client-js/observability.mdx +10 -9
- package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
- package/.docs/raw/reference/client-js/tools.mdx +1 -1
- package/.docs/raw/reference/client-js/vectors.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows.mdx +7 -7
- package/.docs/raw/reference/core/getAgent.mdx +6 -5
- package/.docs/raw/reference/core/getAgentById.mdx +5 -4
- package/.docs/raw/reference/core/getAgents.mdx +3 -3
- package/.docs/raw/reference/core/getDeployer.mdx +4 -3
- package/.docs/raw/reference/core/getLogger.mdx +4 -3
- package/.docs/raw/reference/core/getLogs.mdx +10 -6
- package/.docs/raw/reference/core/getLogsByRunId.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServer.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServers.mdx +4 -3
- package/.docs/raw/reference/core/getMemory.mdx +4 -3
- package/.docs/raw/reference/core/getScorer.mdx +15 -12
- package/.docs/raw/reference/core/getScorerByName.mdx +12 -9
- package/.docs/raw/reference/core/getScorers.mdx +3 -2
- package/.docs/raw/reference/core/getServer.mdx +4 -3
- package/.docs/raw/reference/core/getStorage.mdx +4 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +4 -3
- package/.docs/raw/reference/core/getVector.mdx +6 -4
- package/.docs/raw/reference/core/getVectors.mdx +4 -3
- package/.docs/raw/reference/core/getWorkflow.mdx +7 -4
- package/.docs/raw/reference/core/getWorkflows.mdx +5 -3
- package/.docs/raw/reference/core/mastra-class.mdx +16 -16
- package/.docs/raw/reference/core/setLogger.mdx +6 -4
- package/.docs/raw/reference/core/setStorage.mdx +4 -4
- package/.docs/raw/reference/core/setTelemetry.mdx +4 -3
- package/.docs/raw/reference/deployer/cloudflare.mdx +11 -7
- package/.docs/raw/reference/deployer/deployer.mdx +2 -1
- package/.docs/raw/reference/deployer/netlify.mdx +4 -4
- package/.docs/raw/reference/deployer/vercel.mdx +6 -6
- package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/bias.mdx +4 -5
- package/.docs/raw/reference/evals/completeness.mdx +4 -5
- package/.docs/raw/reference/evals/content-similarity.mdx +4 -5
- package/.docs/raw/reference/evals/context-position.mdx +4 -5
- package/.docs/raw/reference/evals/context-precision.mdx +4 -5
- package/.docs/raw/reference/evals/context-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/contextual-recall.mdx +4 -5
- package/.docs/raw/reference/evals/faithfulness.mdx +4 -5
- package/.docs/raw/reference/evals/hallucination.mdx +4 -6
- package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -5
- package/.docs/raw/reference/evals/prompt-alignment.mdx +4 -6
- package/.docs/raw/reference/evals/summarization.mdx +4 -6
- package/.docs/raw/reference/evals/textual-difference.mdx +4 -5
- package/.docs/raw/reference/evals/tone-consistency.mdx +4 -7
- package/.docs/raw/reference/evals/toxicity.mdx +4 -5
- package/.docs/raw/reference/index.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/after.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/else.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/events.mdx +7 -7
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/if.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/start.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/then.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/until.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/while.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +7 -7
- package/.docs/raw/reference/memory/createThread.mdx +10 -10
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -5
- package/.docs/raw/reference/memory/getThreadById.mdx +6 -5
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +11 -10
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +10 -9
- package/.docs/raw/reference/memory/{Memory.mdx → memory-class.mdx} +53 -46
- package/.docs/raw/reference/memory/query.mdx +39 -25
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -5
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +26 -22
- package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +16 -12
- package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +14 -14
- package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +16 -11
- package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +10 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +23 -15
- package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +6 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +13 -13
- package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +44 -36
- package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +115 -106
- package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +37 -32
- package/.docs/raw/reference/observability/ai-tracing/span.mdx +29 -26
- package/.docs/raw/reference/observability/logging/pino-logger.mdx +13 -15
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +2 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +12 -14
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +4 -4
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +13 -10
- package/.docs/raw/reference/processors/language-detector.mdx +27 -17
- package/.docs/raw/reference/processors/moderation-processor.mdx +26 -17
- package/.docs/raw/reference/processors/pii-detector.mdx +28 -18
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +25 -17
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +26 -17
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +22 -15
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +13 -12
- package/.docs/raw/reference/rag/chunk.mdx +41 -23
- package/.docs/raw/reference/rag/database-config.mdx +56 -38
- package/.docs/raw/reference/rag/document.mdx +1 -1
- package/.docs/raw/reference/rag/embeddings.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +1 -1
- package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
- package/.docs/raw/reference/rag/metadata-filters.mdx +23 -26
- package/.docs/raw/reference/rag/rerank.mdx +1 -1
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -2
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +35 -17
- package/.docs/raw/reference/scorers/answer-similarity.mdx +84 -68
- package/.docs/raw/reference/scorers/bias.mdx +22 -19
- package/.docs/raw/reference/scorers/completeness.mdx +21 -16
- package/.docs/raw/reference/scorers/content-similarity.mdx +12 -10
- package/.docs/raw/reference/scorers/context-precision.mdx +73 -64
- package/.docs/raw/reference/scorers/context-relevance.mdx +142 -126
- package/.docs/raw/reference/scorers/create-scorer.mdx +93 -61
- package/.docs/raw/reference/scorers/faithfulness.mdx +21 -13
- package/.docs/raw/reference/scorers/hallucination.mdx +17 -12
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +32 -27
- package/.docs/raw/reference/scorers/mastra-scorer.mdx +39 -33
- package/.docs/raw/reference/scorers/noise-sensitivity.mdx +203 -152
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +186 -132
- package/.docs/raw/reference/scorers/run-experiment.mdx +40 -31
- package/.docs/raw/reference/scorers/textual-difference.mdx +25 -26
- package/.docs/raw/reference/scorers/tone-consistency.mdx +29 -26
- package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +180 -176
- package/.docs/raw/reference/scorers/toxicity.mdx +35 -31
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
- package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
- package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
- package/.docs/raw/reference/storage/lance.mdx +1 -1
- package/.docs/raw/reference/storage/libsql.mdx +2 -2
- package/.docs/raw/reference/storage/mongodb.mdx +4 -5
- package/.docs/raw/reference/storage/mssql.mdx +5 -4
- package/.docs/raw/reference/storage/postgresql.mdx +35 -33
- package/.docs/raw/reference/storage/upstash.mdx +6 -5
- package/.docs/raw/reference/streaming/ChunkType.mdx +788 -314
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +265 -109
- package/.docs/raw/reference/streaming/agents/stream.mdx +375 -266
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +233 -162
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +4 -4
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +5 -5
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +24 -20
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -26
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +36 -27
- package/.docs/raw/reference/templates/overview.mdx +16 -39
- package/.docs/raw/reference/tools/client.mdx +1 -1
- package/.docs/raw/reference/tools/create-tool.mdx +45 -35
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -2
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +12 -12
- package/.docs/raw/reference/tools/mcp-client.mdx +70 -64
- package/.docs/raw/reference/tools/mcp-server.mdx +91 -78
- package/.docs/raw/reference/tools/vector-query-tool.mdx +48 -38
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +25 -19
- package/.docs/raw/reference/vectors/couchbase.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +5 -6
- package/.docs/raw/reference/vectors/libsql.mdx +1 -1
- package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
- package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
- package/.docs/raw/reference/vectors/pg.mdx +8 -4
- package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
- package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
- package/.docs/raw/reference/vectors/s3vectors.mdx +35 -27
- package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
- package/.docs/raw/reference/vectors/upstash.mdx +33 -25
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +1 -1
- package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
- package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
- package/.docs/raw/reference/voice/deepgram.mdx +1 -1
- package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
- package/.docs/raw/reference/voice/google-gemini-live.mdx +6 -4
- package/.docs/raw/reference/voice/google.mdx +1 -1
- package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
- package/.docs/raw/reference/voice/murf.mdx +1 -1
- package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
- package/.docs/raw/reference/voice/openai.mdx +1 -1
- package/.docs/raw/reference/voice/playai.mdx +1 -1
- package/.docs/raw/reference/voice/sarvam.mdx +1 -1
- package/.docs/raw/reference/voice/speechify.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
- package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
- package/.docs/raw/reference/voice/voice.close.mdx +1 -1
- package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
- package/.docs/raw/reference/voice/voice.events.mdx +1 -1
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +23 -30
- package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
- package/.docs/raw/reference/voice/voice.off.mdx +1 -1
- package/.docs/raw/reference/voice/voice.on.mdx +1 -1
- package/.docs/raw/reference/voice/voice.send.mdx +1 -1
- package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +49 -34
- package/.docs/raw/reference/workflows/run-methods/start.mdx +43 -31
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +7 -8
- package/.docs/raw/reference/workflows/run.mdx +7 -10
- package/.docs/raw/reference/workflows/step.mdx +15 -12
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow.mdx +13 -10
- package/.docs/raw/scorers/custom-scorers.mdx +58 -48
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +6 -8
- package/.docs/raw/scorers/evals-old-api/overview.mdx +8 -8
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +9 -9
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +5 -5
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +3 -1
- package/.docs/raw/scorers/overview.mdx +20 -19
- package/.docs/raw/server-db/custom-api-routes.mdx +8 -8
- package/.docs/raw/server-db/mastra-client.mdx +56 -54
- package/.docs/raw/server-db/middleware.mdx +11 -7
- package/.docs/raw/server-db/production-server.mdx +5 -7
- package/.docs/raw/server-db/runtime-context.mdx +41 -38
- package/.docs/raw/server-db/storage.mdx +82 -87
- package/.docs/raw/streaming/events.mdx +24 -16
- package/.docs/raw/streaming/overview.mdx +17 -18
- package/.docs/raw/streaming/tool-streaming.mdx +9 -10
- package/.docs/raw/streaming/workflow-streaming.mdx +14 -12
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +92 -102
- package/.docs/raw/tools-mcp/overview.mdx +9 -14
- package/.docs/raw/voice/overview.mdx +273 -250
- package/.docs/raw/voice/speech-to-speech.mdx +14 -12
- package/.docs/raw/voice/speech-to-text.mdx +2 -2
- package/.docs/raw/voice/text-to-speech.mdx +2 -2
- package/.docs/raw/workflows/agents-and-tools.mdx +29 -28
- package/.docs/raw/workflows/control-flow.mdx +24 -24
- package/.docs/raw/workflows/error-handling.mdx +15 -17
- package/.docs/raw/workflows/human-in-the-loop.mdx +39 -39
- package/.docs/raw/workflows/inngest-workflow.mdx +33 -29
- package/.docs/raw/workflows/input-data-mapping.mdx +9 -9
- package/.docs/raw/workflows/overview.mdx +60 -60
- package/.docs/raw/workflows/snapshots.mdx +54 -36
- package/.docs/raw/workflows/suspend-and-resume.mdx +52 -57
- package/.docs/raw/workflows-legacy/control-flow.mdx +15 -17
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +3 -1
- package/.docs/raw/workflows-legacy/error-handling.mdx +8 -6
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +6 -0
- package/.docs/raw/workflows-legacy/overview.mdx +28 -26
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +4 -2
- package/.docs/raw/workflows-legacy/steps.mdx +5 -3
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +10 -8
- package/.docs/raw/workflows-legacy/variables.mdx +10 -8
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
2
|
+
title: "Integrate CopilotKit with Mastra | Frameworks | Mastra Docs"
|
|
3
3
|
description: "Learn how Mastra leverages the CopilotKit's AGUI library and how you can leverage it to build user experiences"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import Tabs from "@theme/Tabs";
|
|
7
|
+
import TabItem from "@theme/TabItem";
|
|
8
|
+
import Steps from "@site/src/components/Steps";
|
|
9
|
+
import StepItem from "@site/src/components/StepItem";
|
|
8
10
|
|
|
9
11
|
# Integrate CopilotKit with Mastra
|
|
10
12
|
|
|
@@ -17,47 +19,53 @@ This guide shows two distinct integration approaches:
|
|
|
17
19
|
1. Integrate CopilotKit in your Mastra server with a separate React frontend.
|
|
18
20
|
2. Integrate CopilotKit in your Next.js app
|
|
19
21
|
|
|
20
|
-
<Tabs
|
|
21
|
-
|
|
22
|
+
<Tabs>
|
|
23
|
+
<TabItem value="mastra-server" label="Mastra Server">
|
|
22
24
|
|
|
23
25
|
<Steps>
|
|
24
|
-
|
|
26
|
+
|
|
27
|
+
<StepItem>
|
|
25
28
|
|
|
26
29
|
In your React frontend, install the required CopilotKit packages:
|
|
27
30
|
|
|
28
|
-
<Tabs
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
<Tabs>
|
|
32
|
+
<TabItem value="npm" label="npm">
|
|
33
|
+
|
|
34
|
+
```bash copy
|
|
35
|
+
npm install @copilotkit/react-core @copilotkit/react-ui
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
</TabItem>
|
|
39
|
+
<TabItem value="yarn" label="yarn">
|
|
40
|
+
|
|
41
|
+
```bash copy
|
|
42
|
+
yarn add @copilotkit/react-core @copilotkit/react-ui
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
</TabItem>
|
|
46
|
+
<TabItem value="pnpm" label="pnpm">
|
|
47
|
+
|
|
48
|
+
```bash copy
|
|
49
|
+
pnpm add @copilotkit/react-core @copilotkit/react-ui
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
</TabItem>
|
|
44
53
|
</Tabs>
|
|
45
54
|
|
|
46
|
-
|
|
55
|
+
</StepItem>
|
|
56
|
+
|
|
57
|
+
<StepItem>
|
|
47
58
|
|
|
48
59
|
Create a CopilotKit component in your React frontend:
|
|
49
60
|
|
|
50
|
-
```tsx
|
|
61
|
+
```tsx title="components/copilotkit-component.tsx" copy
|
|
51
62
|
import { CopilotChat } from "@copilotkit/react-ui";
|
|
52
63
|
import { CopilotKit } from "@copilotkit/react-core";
|
|
53
64
|
import "@copilotkit/react-ui/styles.css";
|
|
54
65
|
|
|
55
|
-
export function CopilotKitComponent({ runtimeUrl }: { runtimeUrl: string}) {
|
|
66
|
+
export function CopilotKitComponent({ runtimeUrl }: { runtimeUrl: string }) {
|
|
56
67
|
return (
|
|
57
|
-
<CopilotKit
|
|
58
|
-
runtimeUrl={runtimeUrl}
|
|
59
|
-
agent="weatherAgent"
|
|
60
|
-
>
|
|
68
|
+
<CopilotKit runtimeUrl={runtimeUrl} agent="weatherAgent">
|
|
61
69
|
<CopilotChat
|
|
62
70
|
labels={{
|
|
63
71
|
title: "Your Assistant",
|
|
@@ -69,37 +77,47 @@ export function CopilotKitComponent({ runtimeUrl }: { runtimeUrl: string}) {
|
|
|
69
77
|
}
|
|
70
78
|
```
|
|
71
79
|
|
|
72
|
-
|
|
80
|
+
</StepItem>
|
|
81
|
+
|
|
82
|
+
<StepItem>
|
|
73
83
|
|
|
74
84
|
If you have not yet set up your Mastra server, follow the [getting started guide](/docs/getting-started/installation) to set up a new Mastra project.
|
|
75
85
|
|
|
76
86
|
In your Mastra server, install additional packages for CopilotKit integration:
|
|
77
87
|
|
|
78
|
-
<Tabs
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
<Tabs>
|
|
89
|
+
<TabItem value="npm" label="npm">
|
|
90
|
+
|
|
91
|
+
```bash copy
|
|
92
|
+
npm install @copilotkit/runtime @ag-ui/mastra
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
</TabItem>
|
|
96
|
+
<TabItem value="yarn" label="yarn">
|
|
97
|
+
|
|
98
|
+
```bash copy
|
|
99
|
+
yarn add @copilotkit/runtime @ag-ui/mastra
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
</TabItem>
|
|
103
|
+
<TabItem value="pnpm" label="pnpm">
|
|
104
|
+
|
|
105
|
+
```bash copy
|
|
106
|
+
pnpm add @copilotkit/runtime @ag-ui/mastra
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
</TabItem>
|
|
94
110
|
</Tabs>
|
|
95
111
|
|
|
96
|
-
|
|
112
|
+
</StepItem>
|
|
113
|
+
|
|
114
|
+
<StepItem>
|
|
97
115
|
|
|
98
116
|
Configure your Mastra instance to include CopilotKit's runtime endpoint:
|
|
99
117
|
|
|
100
|
-
```typescript
|
|
118
|
+
```typescript title="src/mastra/index.ts" copy {2,5-8,12-28}
|
|
101
119
|
import { Mastra } from "@mastra/core/mastra";
|
|
102
|
-
import { registerCopilotKit } from "@ag-ui/mastra";
|
|
120
|
+
import { registerCopilotKit } from "@ag-ui/mastra/copilotkit";
|
|
103
121
|
import { weatherAgent } from "./agents/weather-agent";
|
|
104
122
|
|
|
105
123
|
type WeatherRuntimeContext = {
|
|
@@ -113,78 +131,94 @@ export const mastra = new Mastra({
|
|
|
113
131
|
cors: {
|
|
114
132
|
origin: "*",
|
|
115
133
|
allowMethods: ["*"],
|
|
116
|
-
allowHeaders: ["*"]
|
|
134
|
+
allowHeaders: ["*"],
|
|
117
135
|
},
|
|
118
136
|
apiRoutes: [
|
|
119
137
|
registerCopilotKit<WeatherRuntimeContext>({
|
|
120
138
|
path: "/copilotkit",
|
|
121
139
|
resourceId: "weatherAgent",
|
|
122
140
|
setContext: (c, runtimeContext) => {
|
|
123
|
-
runtimeContext.set(
|
|
141
|
+
runtimeContext.set(
|
|
142
|
+
"user-id",
|
|
143
|
+
c.req.header("X-User-ID") || "anonymous",
|
|
144
|
+
);
|
|
124
145
|
runtimeContext.set("temperature-scale", "celsius");
|
|
125
|
-
}
|
|
126
|
-
})
|
|
127
|
-
]
|
|
128
|
-
}
|
|
146
|
+
},
|
|
147
|
+
}),
|
|
148
|
+
],
|
|
149
|
+
},
|
|
129
150
|
});
|
|
130
151
|
```
|
|
131
152
|
|
|
132
|
-
|
|
153
|
+
</StepItem>
|
|
154
|
+
|
|
155
|
+
<StepItem>
|
|
133
156
|
|
|
134
157
|
Use the component in your React app with your Mastra server URL:
|
|
135
158
|
|
|
136
|
-
```tsx
|
|
159
|
+
```tsx title="App.tsx" copy {5}
|
|
137
160
|
import { CopilotKitComponent } from "./components/copilotkit-component";
|
|
138
161
|
|
|
139
162
|
function App() {
|
|
140
|
-
return
|
|
141
|
-
<CopilotKitComponent runtimeUrl="http://localhost:4111/copilotkit" />
|
|
142
|
-
);
|
|
163
|
+
return <CopilotKitComponent runtimeUrl="http://localhost:4111/copilotkit" />;
|
|
143
164
|
}
|
|
144
165
|
|
|
145
166
|
export default App;
|
|
146
167
|
```
|
|
147
168
|
|
|
169
|
+
Now start both the Mastra server and your frontend.
|
|
170
|
+
|
|
171
|
+
</StepItem>
|
|
172
|
+
|
|
148
173
|
</Steps>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
<
|
|
174
|
+
</TabItem>
|
|
175
|
+
|
|
176
|
+
<TabItem value="nextjs" label="Next.js">
|
|
152
177
|
|
|
153
178
|
<Steps>
|
|
154
|
-
|
|
179
|
+
|
|
180
|
+
<StepItem>
|
|
155
181
|
|
|
156
182
|
In your Next.js app, install the required packages:
|
|
157
183
|
|
|
158
|
-
<Tabs
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
184
|
+
<Tabs>
|
|
185
|
+
<TabItem value="npm" label="npm">
|
|
186
|
+
|
|
187
|
+
```bash copy
|
|
188
|
+
npm install @copilotkit/react-core @copilotkit/react-ui @copilotkit/runtime @ag-ui/mastra
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
</TabItem>
|
|
192
|
+
<TabItem value="yarn" label="yarn">
|
|
193
|
+
|
|
194
|
+
```bash copy
|
|
195
|
+
yarn add @copilotkit/react-core @copilotkit/react-ui @copilotkit/runtime @ag-ui/mastra
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
</TabItem>
|
|
199
|
+
<TabItem value="pnpm" label="pnpm">
|
|
200
|
+
|
|
201
|
+
```bash copy
|
|
202
|
+
pnpm add @copilotkit/react-core @copilotkit/react-ui @copilotkit/runtime @ag-ui/mastra
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
</TabItem>
|
|
174
206
|
</Tabs>
|
|
175
207
|
|
|
176
|
-
|
|
208
|
+
</StepItem>
|
|
209
|
+
|
|
210
|
+
<StepItem>
|
|
177
211
|
|
|
178
212
|
Create a CopilotKit component:
|
|
179
213
|
|
|
180
|
-
```tsx
|
|
214
|
+
```tsx title="components/copilotkit-component.tsx" copy
|
|
181
215
|
'use client';
|
|
182
216
|
import { CopilotChat } from "@copilotkit/react-ui";
|
|
183
217
|
import { CopilotKit } from "@copilotkit/react-core";
|
|
184
218
|
import "@copilotkit/react-ui/styles.css";
|
|
185
219
|
|
|
186
220
|
export function CopilotKitComponent({ runtimeUrl }: { runtimeUrl: string}) {
|
|
187
|
-
return (
|
|
221
|
+
return (
|
|
188
222
|
<CopilotKit
|
|
189
223
|
runtimeUrl={runtimeUrl}
|
|
190
224
|
agent="weatherAgent"
|
|
@@ -200,19 +234,21 @@ export function CopilotKitComponent({ runtimeUrl }: { runtimeUrl: string}) {
|
|
|
200
234
|
}
|
|
201
235
|
```
|
|
202
236
|
|
|
203
|
-
|
|
237
|
+
</StepItem>
|
|
238
|
+
|
|
239
|
+
<StepItem>
|
|
204
240
|
|
|
205
241
|
There are two approaches for the API route determined by how you're integrating Mastra in your Next.js application.
|
|
206
242
|
|
|
207
243
|
1. For a full-stack Next.js app with an instance of Mastra integrated into the app.
|
|
208
244
|
2. For a Next.js app with a separate Mastra server and the Mastra Client SDK.
|
|
209
245
|
|
|
210
|
-
<Tabs
|
|
211
|
-
<
|
|
246
|
+
<Tabs>
|
|
247
|
+
<TabItem value="mastra-instance" label="With a Mastra instance">
|
|
212
248
|
|
|
213
249
|
Create an API route that connects to local Mastra agents.
|
|
214
250
|
|
|
215
|
-
```typescript
|
|
251
|
+
```typescript title="app/api/copilotkit/route.ts" copy {1-7,11-26}
|
|
216
252
|
import { mastra } from "../../mastra";
|
|
217
253
|
import {
|
|
218
254
|
CopilotRuntime,
|
|
@@ -242,34 +278,38 @@ export const POST = async (req: NextRequest) => {
|
|
|
242
278
|
};
|
|
243
279
|
```
|
|
244
280
|
|
|
245
|
-
</
|
|
246
|
-
<
|
|
247
|
-
|
|
248
|
-
## Install the Mastra Client SDK
|
|
281
|
+
</TabItem>
|
|
282
|
+
<TabItem value="mastra-client" label="With the Mastra Client SDK">
|
|
249
283
|
|
|
250
284
|
Install the Mastra Client SDK.
|
|
251
285
|
|
|
252
|
-
<Tabs
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
286
|
+
<Tabs>
|
|
287
|
+
<TabItem value="npm" label="npm">
|
|
288
|
+
|
|
289
|
+
```bash copy
|
|
290
|
+
npm install @mastra/client-js
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
</TabItem>
|
|
294
|
+
<TabItem value="yarn" label="yarn">
|
|
295
|
+
|
|
296
|
+
```bash copy
|
|
297
|
+
yarn add @mastra/client-js
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
</TabItem>
|
|
301
|
+
<TabItem value="pnpm" label="pnpm">
|
|
302
|
+
|
|
303
|
+
```bash copy
|
|
304
|
+
pnpm add @mastra/client-js
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
</TabItem>
|
|
268
308
|
</Tabs>
|
|
269
309
|
|
|
270
310
|
Create an API route that connects to remote Mastra agents:
|
|
271
311
|
|
|
272
|
-
```typescript
|
|
312
|
+
```typescript title="app/api/copilotkit/route.ts" copy {1-7,12-26}
|
|
273
313
|
import { MastraClient } from "@mastra/client-js";
|
|
274
314
|
import {
|
|
275
315
|
CopilotRuntime,
|
|
@@ -299,39 +339,40 @@ export const POST = async (req: NextRequest) => {
|
|
|
299
339
|
};
|
|
300
340
|
```
|
|
301
341
|
|
|
302
|
-
|
|
303
|
-
|
|
342
|
+
</TabItem>
|
|
343
|
+
</Tabs>
|
|
344
|
+
|
|
345
|
+
</StepItem>
|
|
304
346
|
|
|
305
|
-
|
|
347
|
+
<StepItem>
|
|
306
348
|
|
|
307
349
|
Use the component with the local API endpoint:
|
|
308
350
|
|
|
309
|
-
```tsx
|
|
351
|
+
```tsx title="App.tsx" copy {5}
|
|
310
352
|
import { CopilotKitComponent } from "./components/copilotkit-component";
|
|
311
353
|
|
|
312
354
|
function App() {
|
|
313
|
-
return
|
|
314
|
-
<CopilotKitComponent runtimeUrl="/api/copilotkit" />
|
|
315
|
-
);
|
|
355
|
+
return <CopilotKitComponent runtimeUrl="/api/copilotkit" />;
|
|
316
356
|
}
|
|
317
357
|
|
|
318
358
|
export default App;
|
|
319
359
|
```
|
|
320
360
|
|
|
361
|
+
</StepItem>
|
|
362
|
+
|
|
321
363
|
</Steps>
|
|
322
|
-
</
|
|
364
|
+
</TabItem>
|
|
323
365
|
</Tabs>
|
|
324
366
|
|
|
325
367
|
Start building the future!
|
|
326
368
|
|
|
327
369
|
<br />
|
|
328
370
|
|
|
329
|
-
<
|
|
371
|
+
<img
|
|
330
372
|
className="rounded-lg"
|
|
331
|
-
src="/
|
|
373
|
+
src="/img/copilotkit/cpkoutput.jpg"
|
|
332
374
|
alt="CopilotKit output"
|
|
333
|
-
|
|
334
|
-
height={700}
|
|
375
|
+
style={{ maxWidth: "700px", width: "100%" }}
|
|
335
376
|
/>
|
|
336
377
|
|
|
337
378
|
## Next Steps
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
2
|
+
title: "Use OpenRouter with Mastra | Frameworks | Mastra Docs"
|
|
3
3
|
description: "Learn how to integrate OpenRouter with Mastra"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import Steps from "@site/src/components/Steps";
|
|
7
|
+
import StepItem from "@site/src/components/StepItem";
|
|
7
8
|
|
|
8
9
|
# Use OpenRouter with Mastra
|
|
9
10
|
|
|
10
11
|
Integrate OpenRouter with Mastra to leverage the numerous models available on OpenRouter.
|
|
11
12
|
|
|
12
13
|
<Steps>
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
<StepItem>
|
|
14
16
|
|
|
15
17
|
The simplest way to get started with Mastra is to use the `mastra` CLI to initialize a new project:
|
|
16
18
|
|
|
@@ -19,17 +21,20 @@ npx create-mastra@latest
|
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
You'll be guided through prompts to set up your project. For this example, select:
|
|
24
|
+
|
|
22
25
|
- Name your project: my-mastra-openrouter-app
|
|
23
26
|
- Components: Agents (recommended)
|
|
24
27
|
- For default provider, select OpenAI (recommended) - we'll configure OpenRouter manually later
|
|
25
28
|
- Optionally include example code
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
</StepItem>
|
|
31
|
+
|
|
32
|
+
<StepItem>
|
|
28
33
|
|
|
29
34
|
After creating your project with `create-mastra`, you'll find a `.env` file in your project root.
|
|
30
|
-
Since we selected OpenAI during setup, we'll configure OpenRouter manually:
|
|
35
|
+
Since we selected OpenAI during setup, we'll configure OpenRouter manually:
|
|
31
36
|
|
|
32
|
-
```bash
|
|
37
|
+
```bash title=".env" copy
|
|
33
38
|
OPENROUTER_API_KEY=
|
|
34
39
|
```
|
|
35
40
|
|
|
@@ -45,36 +50,40 @@ Then, we install the `@openrouter/ai-sdk-provider` package:
|
|
|
45
50
|
npm install @openrouter/ai-sdk-provider
|
|
46
51
|
```
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
</StepItem>
|
|
54
|
+
|
|
55
|
+
<StepItem>
|
|
49
56
|
|
|
50
57
|
We will now configure our agent to use OpenRouter.
|
|
51
58
|
|
|
52
|
-
```typescript
|
|
59
|
+
```typescript title="src/mastra/agents/assistant.ts" copy showLineNumbers {4-6,11}
|
|
53
60
|
import { Agent } from "@mastra/core/agent";
|
|
54
61
|
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
|
|
55
62
|
|
|
56
63
|
const openrouter = createOpenRouter({
|
|
57
|
-
|
|
58
|
-
})
|
|
64
|
+
apiKey: process.env.OPENROUTER_API_KEY,
|
|
65
|
+
});
|
|
59
66
|
|
|
60
67
|
export const assistant = new Agent({
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
})
|
|
68
|
+
name: "assistant",
|
|
69
|
+
instructions: "You are a helpful assistant.",
|
|
70
|
+
model: openrouter("anthropic/claude-sonnet-4"),
|
|
71
|
+
});
|
|
65
72
|
```
|
|
66
73
|
|
|
67
74
|
Make sure to register your agent to the Mastra instance:
|
|
68
75
|
|
|
69
|
-
```typescript
|
|
76
|
+
```typescript title="src/mastra/index.ts" copy showLineNumbers {4}
|
|
70
77
|
import { assistant } from "./agents/assistant";
|
|
71
78
|
|
|
72
79
|
export const mastra = new Mastra({
|
|
73
|
-
|
|
74
|
-
})
|
|
80
|
+
agents: { assistant },
|
|
81
|
+
});
|
|
75
82
|
```
|
|
76
83
|
|
|
77
|
-
|
|
84
|
+
</StepItem>
|
|
85
|
+
|
|
86
|
+
<StepItem>
|
|
78
87
|
|
|
79
88
|
```bash copy
|
|
80
89
|
npm run dev
|
|
@@ -84,6 +93,8 @@ This will start the Mastra development server.
|
|
|
84
93
|
|
|
85
94
|
You can now test your agent by visiting [http://localhost:4111](http://localhost:4111) for the playground or via the Mastra API at [http://localhost:4111/api/agents/assistant/stream](http://localhost:4111/api/agents/assistant/stream).
|
|
86
95
|
|
|
96
|
+
</StepItem>
|
|
97
|
+
|
|
87
98
|
</Steps>
|
|
88
99
|
|
|
89
100
|
## Advanced Configuration
|
|
@@ -94,49 +105,49 @@ For more control over your OpenRouter requests, you can pass additional configur
|
|
|
94
105
|
|
|
95
106
|
You can pass provider-wide options to the OpenRouter provider:
|
|
96
107
|
|
|
97
|
-
```typescript
|
|
108
|
+
```typescript title="src/mastra/agents/assistant.ts" {6-10} copy showLineNumbers
|
|
98
109
|
import { Agent } from "@mastra/core/agent";
|
|
99
110
|
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
|
|
100
111
|
|
|
101
112
|
const openrouter = createOpenRouter({
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
})
|
|
113
|
+
apiKey: process.env.OPENROUTER_API_KEY,
|
|
114
|
+
extraBody: {
|
|
115
|
+
reasoning: {
|
|
116
|
+
max_tokens: 10,
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
});
|
|
109
120
|
|
|
110
121
|
export const assistant = new Agent({
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
})
|
|
122
|
+
name: "assistant",
|
|
123
|
+
instructions: "You are a helpful assistant.",
|
|
124
|
+
model: openrouter("anthropic/claude-sonnet-4"),
|
|
125
|
+
});
|
|
115
126
|
```
|
|
116
127
|
|
|
117
128
|
### Model-specific options:
|
|
118
129
|
|
|
119
130
|
You can pass model-specific options to the OpenRouter provider:
|
|
120
131
|
|
|
121
|
-
```typescript
|
|
132
|
+
```typescript title="src/mastra/agents/assistant.ts" {11-17} copy showLineNumbers
|
|
122
133
|
import { Agent } from "@mastra/core/agent";
|
|
123
134
|
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
|
|
124
135
|
|
|
125
136
|
const openrouter = createOpenRouter({
|
|
126
|
-
|
|
127
|
-
})
|
|
137
|
+
apiKey: process.env.OPENROUTER_API_KEY,
|
|
138
|
+
});
|
|
128
139
|
|
|
129
140
|
export const assistant = new Agent({
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
})
|
|
141
|
+
name: "assistant",
|
|
142
|
+
instructions: "You are a helpful assistant.",
|
|
143
|
+
model: openrouter("anthropic/claude-sonnet-4", {
|
|
144
|
+
extraBody: {
|
|
145
|
+
reasoning: {
|
|
146
|
+
max_tokens: 10,
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
}),
|
|
150
|
+
});
|
|
140
151
|
```
|
|
141
152
|
|
|
142
153
|
### Provider-specific options:
|
|
@@ -147,19 +158,19 @@ You can pass provider-specific options to the OpenRouter provider:
|
|
|
147
158
|
// Get a response with provider-specific options
|
|
148
159
|
const response = await assistant.generate([
|
|
149
160
|
{
|
|
150
|
-
role:
|
|
161
|
+
role: "system",
|
|
151
162
|
content:
|
|
152
|
-
|
|
163
|
+
"You are Chef Michel, a culinary expert specializing in ketogenic (keto) diet...",
|
|
153
164
|
providerOptions: {
|
|
154
165
|
// Provider-specific options - key can be 'anthropic' or 'openrouter'
|
|
155
166
|
anthropic: {
|
|
156
|
-
cacheControl: { type:
|
|
167
|
+
cacheControl: { type: "ephemeral" },
|
|
157
168
|
},
|
|
158
169
|
},
|
|
159
170
|
},
|
|
160
171
|
{
|
|
161
|
-
role:
|
|
162
|
-
content:
|
|
172
|
+
role: "user",
|
|
173
|
+
content: "Can you suggest a keto breakfast?",
|
|
163
174
|
},
|
|
164
175
|
]);
|
|
165
176
|
```
|