@mastra/mcp-docs-server 1.1.5 → 1.1.6

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.
Files changed (556) hide show
  1. package/.docs/docs/agents/adding-voice.md +349 -0
  2. package/.docs/docs/agents/agent-approval.md +558 -0
  3. package/.docs/docs/agents/agent-memory.md +209 -0
  4. package/.docs/docs/agents/guardrails.md +374 -0
  5. package/.docs/docs/agents/network-approval.md +275 -0
  6. package/.docs/docs/agents/networks.md +299 -0
  7. package/.docs/docs/agents/overview.md +304 -0
  8. package/.docs/docs/agents/processors.md +622 -0
  9. package/.docs/docs/agents/structured-output.md +273 -0
  10. package/.docs/docs/agents/supervisor-agents.md +304 -0
  11. package/.docs/docs/agents/using-tools.md +214 -0
  12. package/.docs/docs/build-with-ai/mcp-docs-server.md +238 -0
  13. package/.docs/docs/build-with-ai/skills.md +35 -0
  14. package/.docs/docs/community/contributing-templates.md +3 -0
  15. package/.docs/docs/community/discord.md +9 -0
  16. package/.docs/docs/community/licensing.md +66 -0
  17. package/.docs/docs/deployment/cloud-providers.md +15 -0
  18. package/.docs/docs/deployment/mastra-server.md +122 -0
  19. package/.docs/docs/deployment/monorepo.md +142 -0
  20. package/.docs/docs/deployment/overview.md +62 -0
  21. package/.docs/docs/deployment/studio.md +239 -0
  22. package/.docs/docs/deployment/web-framework.md +52 -0
  23. package/.docs/docs/deployment/workflow-runners.md +9 -0
  24. package/.docs/docs/evals/built-in-scorers.md +47 -0
  25. package/.docs/docs/evals/custom-scorers.md +519 -0
  26. package/.docs/docs/evals/overview.md +141 -0
  27. package/.docs/docs/evals/running-in-ci.md +124 -0
  28. package/.docs/docs/getting-started/build-with-ai.md +68 -0
  29. package/.docs/docs/getting-started/manual-install.md +226 -0
  30. package/.docs/docs/getting-started/project-structure.md +60 -0
  31. package/.docs/docs/getting-started/start.md +28 -0
  32. package/.docs/docs/getting-started/studio.md +101 -0
  33. package/.docs/docs/index.md +43 -0
  34. package/.docs/docs/mastra-cloud/deployment.md +77 -0
  35. package/.docs/docs/mastra-cloud/observability.md +38 -0
  36. package/.docs/docs/mastra-cloud/overview.md +23 -0
  37. package/.docs/docs/mastra-cloud/setup.md +42 -0
  38. package/.docs/docs/mastra-cloud/studio.md +24 -0
  39. package/.docs/docs/mastra-code/configuration.md +299 -0
  40. package/.docs/docs/mastra-code/customization.md +228 -0
  41. package/.docs/docs/mastra-code/modes.md +104 -0
  42. package/.docs/docs/mastra-code/overview.md +135 -0
  43. package/.docs/docs/mastra-code/tools.md +229 -0
  44. package/.docs/docs/mcp/overview.md +373 -0
  45. package/.docs/docs/mcp/publishing-mcp-server.md +95 -0
  46. package/.docs/docs/memory/memory-processors.md +314 -0
  47. package/.docs/docs/memory/message-history.md +260 -0
  48. package/.docs/docs/memory/observational-memory.md +248 -0
  49. package/.docs/docs/memory/overview.md +45 -0
  50. package/.docs/docs/memory/semantic-recall.md +272 -0
  51. package/.docs/docs/memory/storage.md +261 -0
  52. package/.docs/docs/memory/working-memory.md +400 -0
  53. package/.docs/docs/observability/datasets/overview.md +198 -0
  54. package/.docs/docs/observability/datasets/running-experiments.md +274 -0
  55. package/.docs/docs/observability/logging.md +99 -0
  56. package/.docs/docs/observability/overview.md +70 -0
  57. package/.docs/docs/observability/tracing/bridges/otel.md +209 -0
  58. package/.docs/docs/observability/tracing/exporters/arize.md +272 -0
  59. package/.docs/docs/observability/tracing/exporters/braintrust.md +111 -0
  60. package/.docs/docs/observability/tracing/exporters/cloud.md +127 -0
  61. package/.docs/docs/observability/tracing/exporters/datadog.md +187 -0
  62. package/.docs/docs/observability/tracing/exporters/default.md +209 -0
  63. package/.docs/docs/observability/tracing/exporters/laminar.md +100 -0
  64. package/.docs/docs/observability/tracing/exporters/langfuse.md +213 -0
  65. package/.docs/docs/observability/tracing/exporters/langsmith.md +198 -0
  66. package/.docs/docs/observability/tracing/exporters/otel.md +476 -0
  67. package/.docs/docs/observability/tracing/exporters/posthog.md +148 -0
  68. package/.docs/docs/observability/tracing/exporters/sentry.md +208 -0
  69. package/.docs/docs/observability/tracing/overview.md +1112 -0
  70. package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +300 -0
  71. package/.docs/docs/rag/chunking-and-embedding.md +183 -0
  72. package/.docs/docs/rag/graph-rag.md +215 -0
  73. package/.docs/docs/rag/overview.md +72 -0
  74. package/.docs/docs/rag/retrieval.md +515 -0
  75. package/.docs/docs/rag/vector-databases.md +645 -0
  76. package/.docs/docs/server/auth/auth0.md +220 -0
  77. package/.docs/docs/server/auth/better-auth.md +203 -0
  78. package/.docs/docs/server/auth/clerk.md +132 -0
  79. package/.docs/docs/server/auth/composite-auth.md +234 -0
  80. package/.docs/docs/server/auth/custom-auth-provider.md +513 -0
  81. package/.docs/docs/server/auth/firebase.md +272 -0
  82. package/.docs/docs/server/auth/jwt.md +110 -0
  83. package/.docs/docs/server/auth/simple-auth.md +180 -0
  84. package/.docs/docs/server/auth/supabase.md +117 -0
  85. package/.docs/docs/server/auth/workos.md +186 -0
  86. package/.docs/docs/server/auth.md +38 -0
  87. package/.docs/docs/server/custom-adapters.md +378 -0
  88. package/.docs/docs/server/custom-api-routes.md +267 -0
  89. package/.docs/docs/server/mastra-client.md +243 -0
  90. package/.docs/docs/server/mastra-server.md +71 -0
  91. package/.docs/docs/server/middleware.md +225 -0
  92. package/.docs/docs/server/request-context.md +471 -0
  93. package/.docs/docs/server/server-adapters.md +547 -0
  94. package/.docs/docs/streaming/events.md +237 -0
  95. package/.docs/docs/streaming/overview.md +175 -0
  96. package/.docs/docs/streaming/tool-streaming.md +175 -0
  97. package/.docs/docs/streaming/workflow-streaming.md +109 -0
  98. package/.docs/docs/voice/overview.md +959 -0
  99. package/.docs/docs/voice/speech-to-speech.md +102 -0
  100. package/.docs/docs/voice/speech-to-text.md +79 -0
  101. package/.docs/docs/voice/text-to-speech.md +83 -0
  102. package/.docs/docs/workflows/agents-and-tools.md +166 -0
  103. package/.docs/docs/workflows/control-flow.md +822 -0
  104. package/.docs/docs/workflows/error-handling.md +360 -0
  105. package/.docs/docs/workflows/human-in-the-loop.md +215 -0
  106. package/.docs/docs/workflows/overview.md +370 -0
  107. package/.docs/docs/workflows/snapshots.md +238 -0
  108. package/.docs/docs/workflows/suspend-and-resume.md +205 -0
  109. package/.docs/docs/workflows/time-travel.md +309 -0
  110. package/.docs/docs/workflows/workflow-state.md +181 -0
  111. package/.docs/docs/workspace/filesystem.md +164 -0
  112. package/.docs/docs/workspace/overview.md +239 -0
  113. package/.docs/docs/workspace/sandbox.md +63 -0
  114. package/.docs/docs/workspace/search.md +243 -0
  115. package/.docs/docs/workspace/skills.md +169 -0
  116. package/.docs/guides/agent-frameworks/ai-sdk.md +140 -0
  117. package/.docs/guides/build-your-ui/ai-sdk-ui.md +1499 -0
  118. package/.docs/guides/build-your-ui/assistant-ui.md +156 -0
  119. package/.docs/guides/build-your-ui/copilotkit.md +289 -0
  120. package/.docs/guides/deployment/amazon-ec2.md +130 -0
  121. package/.docs/guides/deployment/aws-lambda.md +248 -0
  122. package/.docs/guides/deployment/azure-app-services.md +114 -0
  123. package/.docs/guides/deployment/cloudflare.md +99 -0
  124. package/.docs/guides/deployment/digital-ocean.md +168 -0
  125. package/.docs/guides/deployment/inngest.md +682 -0
  126. package/.docs/guides/deployment/netlify.md +77 -0
  127. package/.docs/guides/deployment/vercel.md +101 -0
  128. package/.docs/guides/getting-started/astro.md +398 -0
  129. package/.docs/guides/getting-started/electron.md +504 -0
  130. package/.docs/guides/getting-started/express.md +251 -0
  131. package/.docs/guides/getting-started/hono.md +190 -0
  132. package/.docs/guides/getting-started/next-js.md +347 -0
  133. package/.docs/guides/getting-started/nuxt.md +497 -0
  134. package/.docs/guides/getting-started/quickstart.md +67 -0
  135. package/.docs/guides/getting-started/sveltekit.md +296 -0
  136. package/.docs/guides/getting-started/vite-react.md +425 -0
  137. package/.docs/guides/guide/ai-recruiter.md +226 -0
  138. package/.docs/guides/guide/chef-michel.md +211 -0
  139. package/.docs/guides/guide/code-review-bot.md +226 -0
  140. package/.docs/guides/guide/dev-assistant.md +307 -0
  141. package/.docs/guides/guide/docs-manager.md +238 -0
  142. package/.docs/guides/guide/github-actions-pr-description.md +236 -0
  143. package/.docs/guides/guide/notes-mcp-server.md +416 -0
  144. package/.docs/guides/guide/research-assistant.md +348 -0
  145. package/.docs/guides/guide/research-coordinator.md +416 -0
  146. package/.docs/guides/guide/stock-agent.md +132 -0
  147. package/.docs/guides/guide/web-search.md +320 -0
  148. package/.docs/guides/guide/whatsapp-chat-bot.md +405 -0
  149. package/.docs/guides/index.md +3 -0
  150. package/.docs/guides/migrations/agentnetwork.md +97 -0
  151. package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +112 -0
  152. package/.docs/guides/migrations/network-to-supervisor.md +261 -0
  153. package/.docs/guides/migrations/upgrade-to-v1/agent.md +404 -0
  154. package/.docs/guides/migrations/upgrade-to-v1/cli.md +57 -0
  155. package/.docs/guides/migrations/upgrade-to-v1/client.md +337 -0
  156. package/.docs/guides/migrations/upgrade-to-v1/deployment.md +37 -0
  157. package/.docs/guides/migrations/upgrade-to-v1/evals.md +239 -0
  158. package/.docs/guides/migrations/upgrade-to-v1/mastra.md +143 -0
  159. package/.docs/guides/migrations/upgrade-to-v1/mcp.md +97 -0
  160. package/.docs/guides/migrations/upgrade-to-v1/memory.md +285 -0
  161. package/.docs/guides/migrations/upgrade-to-v1/overview.md +119 -0
  162. package/.docs/guides/migrations/upgrade-to-v1/processors.md +68 -0
  163. package/.docs/guides/migrations/upgrade-to-v1/rag.md +42 -0
  164. package/.docs/guides/migrations/upgrade-to-v1/storage.md +553 -0
  165. package/.docs/guides/migrations/upgrade-to-v1/tools.md +180 -0
  166. package/.docs/guides/migrations/upgrade-to-v1/tracing.md +412 -0
  167. package/.docs/guides/migrations/upgrade-to-v1/vectors.md +87 -0
  168. package/.docs/guides/migrations/upgrade-to-v1/voice.md +30 -0
  169. package/.docs/guides/migrations/upgrade-to-v1/workflows.md +341 -0
  170. package/.docs/guides/migrations/vnext-to-standard-apis.md +362 -0
  171. package/.docs/models/embeddings.md +161 -0
  172. package/.docs/models/gateways/azure-openai.md +128 -0
  173. package/.docs/models/gateways/custom-gateways.md +545 -0
  174. package/.docs/models/gateways/netlify.md +88 -0
  175. package/.docs/models/gateways/openrouter.md +219 -0
  176. package/.docs/models/gateways/vercel.md +225 -0
  177. package/.docs/models/gateways.md +14 -0
  178. package/.docs/models/index.md +286 -0
  179. package/.docs/models/providers/302ai.md +134 -0
  180. package/.docs/models/providers/abacus.md +125 -0
  181. package/.docs/models/providers/agentrouter.md +90 -0
  182. package/.docs/models/providers/aihubmix.md +107 -0
  183. package/.docs/models/providers/alibaba-cn.md +135 -0
  184. package/.docs/models/providers/alibaba.md +111 -0
  185. package/.docs/models/providers/amazon-bedrock.md +33 -0
  186. package/.docs/models/providers/anthropic.md +153 -0
  187. package/.docs/models/providers/azure.md +33 -0
  188. package/.docs/models/providers/bailing.md +72 -0
  189. package/.docs/models/providers/baseten.md +77 -0
  190. package/.docs/models/providers/berget.md +78 -0
  191. package/.docs/models/providers/cerebras.md +101 -0
  192. package/.docs/models/providers/chutes.md +136 -0
  193. package/.docs/models/providers/cloudflare-ai-gateway.md +33 -0
  194. package/.docs/models/providers/cloudflare-workers-ai.md +109 -0
  195. package/.docs/models/providers/cohere.md +33 -0
  196. package/.docs/models/providers/cortecs.md +91 -0
  197. package/.docs/models/providers/deepinfra.md +112 -0
  198. package/.docs/models/providers/deepseek.md +88 -0
  199. package/.docs/models/providers/fastrouter.md +84 -0
  200. package/.docs/models/providers/fireworks-ai.md +89 -0
  201. package/.docs/models/providers/firmware.md +85 -0
  202. package/.docs/models/providers/friendli.md +78 -0
  203. package/.docs/models/providers/github-models.md +125 -0
  204. package/.docs/models/providers/google-vertex.md +33 -0
  205. package/.docs/models/providers/google.md +159 -0
  206. package/.docs/models/providers/groq.md +107 -0
  207. package/.docs/models/providers/helicone.md +161 -0
  208. package/.docs/models/providers/huggingface.md +90 -0
  209. package/.docs/models/providers/iflowcn.md +84 -0
  210. package/.docs/models/providers/inception.md +72 -0
  211. package/.docs/models/providers/inference.md +79 -0
  212. package/.docs/models/providers/io-intelligence.md +87 -0
  213. package/.docs/models/providers/io-net.md +87 -0
  214. package/.docs/models/providers/jiekou.md +131 -0
  215. package/.docs/models/providers/kilo.md +333 -0
  216. package/.docs/models/providers/kimi-for-coding.md +100 -0
  217. package/.docs/models/providers/kuae-cloud-coding-plan.md +71 -0
  218. package/.docs/models/providers/llama.md +77 -0
  219. package/.docs/models/providers/lmstudio.md +73 -0
  220. package/.docs/models/providers/lucidquery.md +72 -0
  221. package/.docs/models/providers/minimax-cn-coding-plan.md +102 -0
  222. package/.docs/models/providers/minimax-cn.md +102 -0
  223. package/.docs/models/providers/minimax-coding-plan.md +102 -0
  224. package/.docs/models/providers/minimax.md +104 -0
  225. package/.docs/models/providers/mistral.md +124 -0
  226. package/.docs/models/providers/moark.md +72 -0
  227. package/.docs/models/providers/modelscope.md +77 -0
  228. package/.docs/models/providers/moonshotai-cn.md +76 -0
  229. package/.docs/models/providers/moonshotai.md +76 -0
  230. package/.docs/models/providers/morph.md +73 -0
  231. package/.docs/models/providers/nano-gpt.md +103 -0
  232. package/.docs/models/providers/nebius.md +116 -0
  233. package/.docs/models/providers/nova.md +72 -0
  234. package/.docs/models/providers/novita-ai.md +154 -0
  235. package/.docs/models/providers/nvidia.md +141 -0
  236. package/.docs/models/providers/ollama-cloud.md +103 -0
  237. package/.docs/models/providers/ollama.md +33 -0
  238. package/.docs/models/providers/openai.md +193 -0
  239. package/.docs/models/providers/opencode.md +100 -0
  240. package/.docs/models/providers/ovhcloud.md +83 -0
  241. package/.docs/models/providers/perplexity.md +100 -0
  242. package/.docs/models/providers/poe.md +183 -0
  243. package/.docs/models/providers/privatemode-ai.md +75 -0
  244. package/.docs/models/providers/requesty.md +90 -0
  245. package/.docs/models/providers/scaleway.md +84 -0
  246. package/.docs/models/providers/siliconflow-cn.md +138 -0
  247. package/.docs/models/providers/siliconflow.md +140 -0
  248. package/.docs/models/providers/stackit.md +78 -0
  249. package/.docs/models/providers/stepfun.md +73 -0
  250. package/.docs/models/providers/submodel.md +79 -0
  251. package/.docs/models/providers/synthetic.md +96 -0
  252. package/.docs/models/providers/togetherai.md +115 -0
  253. package/.docs/models/providers/upstage.md +73 -0
  254. package/.docs/models/providers/venice.md +95 -0
  255. package/.docs/models/providers/vivgrid.md +106 -0
  256. package/.docs/models/providers/vultr.md +75 -0
  257. package/.docs/models/providers/wandb.md +80 -0
  258. package/.docs/models/providers/xai.md +141 -0
  259. package/.docs/models/providers/xiaomi.md +71 -0
  260. package/.docs/models/providers/zai-coding-plan.md +80 -0
  261. package/.docs/models/providers/zai.md +79 -0
  262. package/.docs/models/providers/zenmux.md +161 -0
  263. package/.docs/models/providers/zhipuai-coding-plan.md +79 -0
  264. package/.docs/models/providers/zhipuai.md +79 -0
  265. package/.docs/models/providers.md +81 -0
  266. package/.docs/reference/agents/agent.md +141 -0
  267. package/.docs/reference/agents/generate.md +186 -0
  268. package/.docs/reference/agents/generateLegacy.md +173 -0
  269. package/.docs/reference/agents/getDefaultGenerateOptions.md +36 -0
  270. package/.docs/reference/agents/getDefaultOptions.md +34 -0
  271. package/.docs/reference/agents/getDefaultStreamOptions.md +36 -0
  272. package/.docs/reference/agents/getDescription.md +21 -0
  273. package/.docs/reference/agents/getInstructions.md +34 -0
  274. package/.docs/reference/agents/getLLM.md +37 -0
  275. package/.docs/reference/agents/getMemory.md +34 -0
  276. package/.docs/reference/agents/getModel.md +34 -0
  277. package/.docs/reference/agents/getTools.md +29 -0
  278. package/.docs/reference/agents/getVoice.md +34 -0
  279. package/.docs/reference/agents/listAgents.md +35 -0
  280. package/.docs/reference/agents/listScorers.md +34 -0
  281. package/.docs/reference/agents/listTools.md +34 -0
  282. package/.docs/reference/agents/listWorkflows.md +34 -0
  283. package/.docs/reference/agents/network.md +133 -0
  284. package/.docs/reference/ai-sdk/chat-route.md +82 -0
  285. package/.docs/reference/ai-sdk/handle-chat-stream.md +53 -0
  286. package/.docs/reference/ai-sdk/handle-network-stream.md +37 -0
  287. package/.docs/reference/ai-sdk/handle-workflow-stream.md +55 -0
  288. package/.docs/reference/ai-sdk/network-route.md +74 -0
  289. package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +231 -0
  290. package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +79 -0
  291. package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +76 -0
  292. package/.docs/reference/ai-sdk/with-mastra.md +59 -0
  293. package/.docs/reference/ai-sdk/workflow-route.md +79 -0
  294. package/.docs/reference/auth/auth0.md +73 -0
  295. package/.docs/reference/auth/better-auth.md +71 -0
  296. package/.docs/reference/auth/clerk.md +36 -0
  297. package/.docs/reference/auth/firebase.md +80 -0
  298. package/.docs/reference/auth/jwt.md +26 -0
  299. package/.docs/reference/auth/supabase.md +33 -0
  300. package/.docs/reference/auth/workos.md +84 -0
  301. package/.docs/reference/cli/create-mastra.md +137 -0
  302. package/.docs/reference/cli/mastra.md +336 -0
  303. package/.docs/reference/client-js/agents.md +437 -0
  304. package/.docs/reference/client-js/error-handling.md +16 -0
  305. package/.docs/reference/client-js/logs.md +24 -0
  306. package/.docs/reference/client-js/mastra-client.md +63 -0
  307. package/.docs/reference/client-js/memory.md +221 -0
  308. package/.docs/reference/client-js/observability.md +72 -0
  309. package/.docs/reference/client-js/telemetry.md +20 -0
  310. package/.docs/reference/client-js/tools.md +44 -0
  311. package/.docs/reference/client-js/vectors.md +79 -0
  312. package/.docs/reference/client-js/workflows.md +199 -0
  313. package/.docs/reference/configuration.md +752 -0
  314. package/.docs/reference/core/addGateway.md +42 -0
  315. package/.docs/reference/core/getAgent.md +21 -0
  316. package/.docs/reference/core/getAgentById.md +21 -0
  317. package/.docs/reference/core/getDeployer.md +22 -0
  318. package/.docs/reference/core/getGateway.md +38 -0
  319. package/.docs/reference/core/getGatewayById.md +41 -0
  320. package/.docs/reference/core/getLogger.md +22 -0
  321. package/.docs/reference/core/getMCPServer.md +47 -0
  322. package/.docs/reference/core/getMCPServerById.md +55 -0
  323. package/.docs/reference/core/getMemory.md +50 -0
  324. package/.docs/reference/core/getScorer.md +54 -0
  325. package/.docs/reference/core/getScorerById.md +54 -0
  326. package/.docs/reference/core/getServer.md +22 -0
  327. package/.docs/reference/core/getStorage.md +22 -0
  328. package/.docs/reference/core/getStoredAgentById.md +89 -0
  329. package/.docs/reference/core/getTelemetry.md +22 -0
  330. package/.docs/reference/core/getVector.md +22 -0
  331. package/.docs/reference/core/getWorkflow.md +42 -0
  332. package/.docs/reference/core/listAgents.md +21 -0
  333. package/.docs/reference/core/listGateways.md +40 -0
  334. package/.docs/reference/core/listLogs.md +38 -0
  335. package/.docs/reference/core/listLogsByRunId.md +36 -0
  336. package/.docs/reference/core/listMCPServers.md +55 -0
  337. package/.docs/reference/core/listMemory.md +56 -0
  338. package/.docs/reference/core/listScorers.md +29 -0
  339. package/.docs/reference/core/listStoredAgents.md +93 -0
  340. package/.docs/reference/core/listVectors.md +22 -0
  341. package/.docs/reference/core/listWorkflows.md +21 -0
  342. package/.docs/reference/core/mastra-class.md +66 -0
  343. package/.docs/reference/core/mastra-model-gateway.md +153 -0
  344. package/.docs/reference/core/setLogger.md +26 -0
  345. package/.docs/reference/core/setStorage.md +27 -0
  346. package/.docs/reference/datasets/addItem.md +37 -0
  347. package/.docs/reference/datasets/addItems.md +35 -0
  348. package/.docs/reference/datasets/compareExperiments.md +52 -0
  349. package/.docs/reference/datasets/create.md +51 -0
  350. package/.docs/reference/datasets/dataset.md +82 -0
  351. package/.docs/reference/datasets/datasets-manager.md +94 -0
  352. package/.docs/reference/datasets/delete.md +25 -0
  353. package/.docs/reference/datasets/deleteExperiment.md +27 -0
  354. package/.docs/reference/datasets/deleteItem.md +27 -0
  355. package/.docs/reference/datasets/deleteItems.md +29 -0
  356. package/.docs/reference/datasets/get.md +31 -0
  357. package/.docs/reference/datasets/getDetails.md +47 -0
  358. package/.docs/reference/datasets/getExperiment.md +30 -0
  359. package/.docs/reference/datasets/getItem.md +33 -0
  360. package/.docs/reference/datasets/getItemHistory.md +31 -0
  361. package/.docs/reference/datasets/list.md +31 -0
  362. package/.docs/reference/datasets/listExperimentResults.md +39 -0
  363. package/.docs/reference/datasets/listExperiments.md +33 -0
  364. package/.docs/reference/datasets/listItems.md +46 -0
  365. package/.docs/reference/datasets/listVersions.md +33 -0
  366. package/.docs/reference/datasets/startExperiment.md +62 -0
  367. package/.docs/reference/datasets/startExperimentAsync.md +43 -0
  368. package/.docs/reference/datasets/update.md +48 -0
  369. package/.docs/reference/datasets/updateItem.md +38 -0
  370. package/.docs/reference/deployer/cloudflare.md +79 -0
  371. package/.docs/reference/deployer/netlify.md +80 -0
  372. package/.docs/reference/deployer/vercel.md +91 -0
  373. package/.docs/reference/deployer.md +100 -0
  374. package/.docs/reference/evals/answer-relevancy.md +105 -0
  375. package/.docs/reference/evals/answer-similarity.md +99 -0
  376. package/.docs/reference/evals/bias.md +120 -0
  377. package/.docs/reference/evals/completeness.md +136 -0
  378. package/.docs/reference/evals/content-similarity.md +101 -0
  379. package/.docs/reference/evals/context-precision.md +196 -0
  380. package/.docs/reference/evals/context-relevance.md +531 -0
  381. package/.docs/reference/evals/create-scorer.md +270 -0
  382. package/.docs/reference/evals/faithfulness.md +114 -0
  383. package/.docs/reference/evals/hallucination.md +213 -0
  384. package/.docs/reference/evals/keyword-coverage.md +128 -0
  385. package/.docs/reference/evals/mastra-scorer.md +123 -0
  386. package/.docs/reference/evals/noise-sensitivity.md +675 -0
  387. package/.docs/reference/evals/prompt-alignment.md +614 -0
  388. package/.docs/reference/evals/run-evals.md +179 -0
  389. package/.docs/reference/evals/scorer-utils.md +326 -0
  390. package/.docs/reference/evals/textual-difference.md +113 -0
  391. package/.docs/reference/evals/tone-consistency.md +119 -0
  392. package/.docs/reference/evals/tool-call-accuracy.md +533 -0
  393. package/.docs/reference/evals/toxicity.md +123 -0
  394. package/.docs/reference/harness/harness-class.md +708 -0
  395. package/.docs/reference/index.md +277 -0
  396. package/.docs/reference/logging/pino-logger.md +117 -0
  397. package/.docs/reference/mastra-code/createMastraCode.md +108 -0
  398. package/.docs/reference/memory/clone-utilities.md +199 -0
  399. package/.docs/reference/memory/cloneThread.md +130 -0
  400. package/.docs/reference/memory/createThread.md +68 -0
  401. package/.docs/reference/memory/deleteMessages.md +38 -0
  402. package/.docs/reference/memory/getThreadById.md +24 -0
  403. package/.docs/reference/memory/listThreads.md +145 -0
  404. package/.docs/reference/memory/memory-class.md +147 -0
  405. package/.docs/reference/memory/observational-memory.md +565 -0
  406. package/.docs/reference/memory/recall.md +91 -0
  407. package/.docs/reference/observability/tracing/bridges/otel.md +131 -0
  408. package/.docs/reference/observability/tracing/configuration.md +178 -0
  409. package/.docs/reference/observability/tracing/exporters/arize.md +141 -0
  410. package/.docs/reference/observability/tracing/exporters/braintrust.md +93 -0
  411. package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +163 -0
  412. package/.docs/reference/observability/tracing/exporters/console-exporter.md +138 -0
  413. package/.docs/reference/observability/tracing/exporters/datadog.md +116 -0
  414. package/.docs/reference/observability/tracing/exporters/default-exporter.md +174 -0
  415. package/.docs/reference/observability/tracing/exporters/laminar.md +78 -0
  416. package/.docs/reference/observability/tracing/exporters/langfuse.md +134 -0
  417. package/.docs/reference/observability/tracing/exporters/langsmith.md +108 -0
  418. package/.docs/reference/observability/tracing/exporters/otel.md +199 -0
  419. package/.docs/reference/observability/tracing/exporters/posthog.md +92 -0
  420. package/.docs/reference/observability/tracing/exporters/sentry.md +184 -0
  421. package/.docs/reference/observability/tracing/instances.md +107 -0
  422. package/.docs/reference/observability/tracing/interfaces.md +743 -0
  423. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +144 -0
  424. package/.docs/reference/observability/tracing/spans.md +224 -0
  425. package/.docs/reference/processors/batch-parts-processor.md +61 -0
  426. package/.docs/reference/processors/language-detector.md +82 -0
  427. package/.docs/reference/processors/message-history-processor.md +85 -0
  428. package/.docs/reference/processors/moderation-processor.md +104 -0
  429. package/.docs/reference/processors/pii-detector.md +108 -0
  430. package/.docs/reference/processors/processor-interface.md +521 -0
  431. package/.docs/reference/processors/prompt-injection-detector.md +72 -0
  432. package/.docs/reference/processors/semantic-recall-processor.md +117 -0
  433. package/.docs/reference/processors/system-prompt-scrubber.md +80 -0
  434. package/.docs/reference/processors/token-limiter-processor.md +115 -0
  435. package/.docs/reference/processors/tool-call-filter.md +85 -0
  436. package/.docs/reference/processors/tool-search-processor.md +111 -0
  437. package/.docs/reference/processors/unicode-normalizer.md +62 -0
  438. package/.docs/reference/processors/working-memory-processor.md +152 -0
  439. package/.docs/reference/rag/chunk.md +221 -0
  440. package/.docs/reference/rag/database-config.md +261 -0
  441. package/.docs/reference/rag/document.md +114 -0
  442. package/.docs/reference/rag/embeddings.md +92 -0
  443. package/.docs/reference/rag/extract-params.md +168 -0
  444. package/.docs/reference/rag/graph-rag.md +111 -0
  445. package/.docs/reference/rag/metadata-filters.md +216 -0
  446. package/.docs/reference/rag/rerank.md +75 -0
  447. package/.docs/reference/rag/rerankWithScorer.md +80 -0
  448. package/.docs/reference/server/create-route.md +262 -0
  449. package/.docs/reference/server/express-adapter.md +176 -0
  450. package/.docs/reference/server/fastify-adapter.md +90 -0
  451. package/.docs/reference/server/hono-adapter.md +162 -0
  452. package/.docs/reference/server/koa-adapter.md +127 -0
  453. package/.docs/reference/server/mastra-server.md +298 -0
  454. package/.docs/reference/server/register-api-route.md +249 -0
  455. package/.docs/reference/server/routes.md +306 -0
  456. package/.docs/reference/storage/cloudflare-d1.md +218 -0
  457. package/.docs/reference/storage/cloudflare.md +88 -0
  458. package/.docs/reference/storage/composite.md +235 -0
  459. package/.docs/reference/storage/convex.md +161 -0
  460. package/.docs/reference/storage/dynamodb.md +282 -0
  461. package/.docs/reference/storage/lance.md +131 -0
  462. package/.docs/reference/storage/libsql.md +135 -0
  463. package/.docs/reference/storage/mongodb.md +262 -0
  464. package/.docs/reference/storage/mssql.md +157 -0
  465. package/.docs/reference/storage/overview.md +121 -0
  466. package/.docs/reference/storage/postgresql.md +526 -0
  467. package/.docs/reference/storage/upstash.md +160 -0
  468. package/.docs/reference/streaming/ChunkType.md +292 -0
  469. package/.docs/reference/streaming/agents/MastraModelOutput.md +182 -0
  470. package/.docs/reference/streaming/agents/stream.md +221 -0
  471. package/.docs/reference/streaming/agents/streamLegacy.md +142 -0
  472. package/.docs/reference/streaming/workflows/observeStream.md +42 -0
  473. package/.docs/reference/streaming/workflows/resumeStream.md +61 -0
  474. package/.docs/reference/streaming/workflows/stream.md +88 -0
  475. package/.docs/reference/streaming/workflows/timeTravelStream.md +142 -0
  476. package/.docs/reference/templates/overview.md +194 -0
  477. package/.docs/reference/tools/create-tool.md +237 -0
  478. package/.docs/reference/tools/document-chunker-tool.md +89 -0
  479. package/.docs/reference/tools/graph-rag-tool.md +182 -0
  480. package/.docs/reference/tools/mcp-client.md +954 -0
  481. package/.docs/reference/tools/mcp-server.md +1271 -0
  482. package/.docs/reference/tools/vector-query-tool.md +459 -0
  483. package/.docs/reference/vectors/astra.md +121 -0
  484. package/.docs/reference/vectors/chroma.md +264 -0
  485. package/.docs/reference/vectors/convex.md +300 -0
  486. package/.docs/reference/vectors/couchbase.md +226 -0
  487. package/.docs/reference/vectors/duckdb.md +318 -0
  488. package/.docs/reference/vectors/elasticsearch.md +189 -0
  489. package/.docs/reference/vectors/lance.md +220 -0
  490. package/.docs/reference/vectors/libsql.md +305 -0
  491. package/.docs/reference/vectors/mongodb.md +295 -0
  492. package/.docs/reference/vectors/opensearch.md +99 -0
  493. package/.docs/reference/vectors/pg.md +408 -0
  494. package/.docs/reference/vectors/pinecone.md +168 -0
  495. package/.docs/reference/vectors/qdrant.md +222 -0
  496. package/.docs/reference/vectors/s3vectors.md +277 -0
  497. package/.docs/reference/vectors/turbopuffer.md +157 -0
  498. package/.docs/reference/vectors/upstash.md +294 -0
  499. package/.docs/reference/vectors/vectorize.md +147 -0
  500. package/.docs/reference/voice/azure.md +148 -0
  501. package/.docs/reference/voice/cloudflare.md +83 -0
  502. package/.docs/reference/voice/composite-voice.md +121 -0
  503. package/.docs/reference/voice/deepgram.md +79 -0
  504. package/.docs/reference/voice/elevenlabs.md +98 -0
  505. package/.docs/reference/voice/google-gemini-live.md +378 -0
  506. package/.docs/reference/voice/google.md +228 -0
  507. package/.docs/reference/voice/mastra-voice.md +311 -0
  508. package/.docs/reference/voice/murf.md +122 -0
  509. package/.docs/reference/voice/openai-realtime.md +203 -0
  510. package/.docs/reference/voice/openai.md +88 -0
  511. package/.docs/reference/voice/playai.md +80 -0
  512. package/.docs/reference/voice/sarvam.md +126 -0
  513. package/.docs/reference/voice/speechify.md +75 -0
  514. package/.docs/reference/voice/voice.addInstructions.md +55 -0
  515. package/.docs/reference/voice/voice.addTools.md +67 -0
  516. package/.docs/reference/voice/voice.answer.md +54 -0
  517. package/.docs/reference/voice/voice.close.md +51 -0
  518. package/.docs/reference/voice/voice.connect.md +94 -0
  519. package/.docs/reference/voice/voice.events.md +37 -0
  520. package/.docs/reference/voice/voice.getSpeakers.md +129 -0
  521. package/.docs/reference/voice/voice.listen.md +164 -0
  522. package/.docs/reference/voice/voice.off.md +54 -0
  523. package/.docs/reference/voice/voice.on.md +111 -0
  524. package/.docs/reference/voice/voice.send.md +65 -0
  525. package/.docs/reference/voice/voice.speak.md +157 -0
  526. package/.docs/reference/voice/voice.updateConfig.md +60 -0
  527. package/.docs/reference/workflows/run-methods/cancel.md +86 -0
  528. package/.docs/reference/workflows/run-methods/restart.md +33 -0
  529. package/.docs/reference/workflows/run-methods/resume.md +59 -0
  530. package/.docs/reference/workflows/run-methods/start.md +58 -0
  531. package/.docs/reference/workflows/run-methods/startAsync.md +67 -0
  532. package/.docs/reference/workflows/run-methods/timeTravel.md +142 -0
  533. package/.docs/reference/workflows/run.md +59 -0
  534. package/.docs/reference/workflows/step.md +119 -0
  535. package/.docs/reference/workflows/workflow-methods/branch.md +25 -0
  536. package/.docs/reference/workflows/workflow-methods/commit.md +17 -0
  537. package/.docs/reference/workflows/workflow-methods/create-run.md +63 -0
  538. package/.docs/reference/workflows/workflow-methods/dountil.md +25 -0
  539. package/.docs/reference/workflows/workflow-methods/dowhile.md +25 -0
  540. package/.docs/reference/workflows/workflow-methods/foreach.md +118 -0
  541. package/.docs/reference/workflows/workflow-methods/map.md +93 -0
  542. package/.docs/reference/workflows/workflow-methods/parallel.md +21 -0
  543. package/.docs/reference/workflows/workflow-methods/sleep.md +35 -0
  544. package/.docs/reference/workflows/workflow-methods/sleepUntil.md +35 -0
  545. package/.docs/reference/workflows/workflow-methods/then.md +21 -0
  546. package/.docs/reference/workflows/workflow.md +157 -0
  547. package/.docs/reference/workspace/e2b-sandbox.md +289 -0
  548. package/.docs/reference/workspace/filesystem.md +255 -0
  549. package/.docs/reference/workspace/gcs-filesystem.md +174 -0
  550. package/.docs/reference/workspace/local-filesystem.md +343 -0
  551. package/.docs/reference/workspace/local-sandbox.md +301 -0
  552. package/.docs/reference/workspace/s3-filesystem.md +175 -0
  553. package/.docs/reference/workspace/sandbox.md +87 -0
  554. package/.docs/reference/workspace/workspace-class.md +244 -0
  555. package/CHANGELOG.md +16 -0
  556. package/package.json +6 -6
@@ -0,0 +1,300 @@
1
+ # Sensitive Data Filter
2
+
3
+ The Sensitive Data Filter is a span processor that redacts sensitive information from your traces during the processing pipeline before export. This ensures that passwords, API keys, tokens, and other confidential data never leave your application or get stored in observability platforms.
4
+
5
+ ## Default Configuration
6
+
7
+ The Sensitive Data Filter is included in the recommended observability configuration:
8
+
9
+ ```ts
10
+ import {
11
+ Observability,
12
+ DefaultExporter,
13
+ CloudExporter,
14
+ SensitiveDataFilter,
15
+ } from '@mastra/observability'
16
+
17
+ export const mastra = new Mastra({
18
+ observability: new Observability({
19
+ configs: {
20
+ default: {
21
+ serviceName: 'mastra',
22
+ exporters: [new DefaultExporter(), new CloudExporter()],
23
+ spanOutputProcessors: [
24
+ new SensitiveDataFilter(), // Redacts sensitive fields before export
25
+ ],
26
+ },
27
+ },
28
+ }),
29
+ storage: new LibSQLStore({
30
+ id: 'mastra-storage',
31
+ url: 'file:./mastra.db',
32
+ }),
33
+ })
34
+ ```
35
+
36
+ With the default configuration, the filter redacts these common sensitive field names:
37
+
38
+ - `password`
39
+ - `token`
40
+ - `secret`
41
+ - `key`
42
+ - `apikey`
43
+ - `auth`
44
+ - `authorization`
45
+ - `bearer`
46
+ - `bearertoken`
47
+ - `jwt`
48
+ - `credential`
49
+ - `clientsecret`
50
+ - `privatekey`
51
+ - `refresh`
52
+ - `ssn`
53
+
54
+ > **Note:** Field matching is case-insensitive and normalizes separators. For example, `api-key`, `api_key`, and `Api Key` are all treated as `apikey`.
55
+
56
+ ## How It Works
57
+
58
+ The Sensitive Data Filter processes spans before they're sent to exporters, scanning through:
59
+
60
+ - **Attributes** - Span metadata and properties
61
+ - **Metadata** - Custom metadata attached to spans
62
+ - **Input** - Data sent to agents, tools, and LLMs
63
+ - **Output** - Responses and results
64
+ - **Error Information** - Stack traces and error details
65
+
66
+ When a sensitive field is detected, its value is replaced with `[REDACTED]` by default. The filter handles nested objects, arrays, and circular references safely.
67
+
68
+ ## Custom Configuration
69
+
70
+ You can customize which fields are redacted and how redaction appears:
71
+
72
+ ```ts
73
+ import { SensitiveDataFilter, DefaultExporter, Observability } from '@mastra/observability'
74
+
75
+ export const mastra = new Mastra({
76
+ observability: new Observability({
77
+ configs: {
78
+ production: {
79
+ serviceName: 'my-service',
80
+ exporters: [new DefaultExporter()],
81
+ spanOutputProcessors: [
82
+ new SensitiveDataFilter({
83
+ // Add custom sensitive fields
84
+ sensitiveFields: [
85
+ // Default fields
86
+ 'password',
87
+ 'token',
88
+ 'secret',
89
+ 'key',
90
+ 'apikey',
91
+ // Custom fields for your application
92
+ 'creditCard',
93
+ 'bankAccount',
94
+ 'routingNumber',
95
+ 'email',
96
+ 'phoneNumber',
97
+ 'dateOfBirth',
98
+ ],
99
+ // Custom redaction token
100
+ redactionToken: '***SENSITIVE***',
101
+ // Redaction style
102
+ redactionStyle: 'full', // or 'partial'
103
+ }),
104
+ ],
105
+ },
106
+ },
107
+ }),
108
+ })
109
+ ```
110
+
111
+ ## Redaction Styles
112
+
113
+ The filter supports two redaction styles:
114
+
115
+ ### Full Redaction (Default)
116
+
117
+ Replaces the entire value with a fixed token:
118
+
119
+ ```jsonc
120
+ // Before
121
+ {
122
+ "apiKey": "sk-abc123xyz789def456",
123
+ "userId": "user_12345"
124
+ }
125
+
126
+ // After
127
+ {
128
+ "apiKey": "[REDACTED]",
129
+ "userId": "user_12345"
130
+ }
131
+ ```
132
+
133
+ ### Partial Redaction
134
+
135
+ Shows the first and last 3 characters, useful for debugging without exposing full values:
136
+
137
+ ```ts
138
+ new SensitiveDataFilter({
139
+ redactionStyle: 'partial',
140
+ })
141
+ ```
142
+
143
+ ```json
144
+ // Before
145
+ {
146
+ "apiKey": "sk-abc123xyz789def456",
147
+ "creditCard": "4111111111111111"
148
+ }
149
+
150
+ // After
151
+ {
152
+ "apiKey": "sk-…456",
153
+ "creditCard": "411…111"
154
+ }
155
+ ```
156
+
157
+ Values shorter than 7 characters are fully redacted to prevent information leakage.
158
+
159
+ ## Field Matching Rules
160
+
161
+ The filter uses intelligent field matching:
162
+
163
+ 1. **Case-Insensitive**: `APIKey`, `apikey`, and `ApiKey` are all matched
164
+
165
+ 2. **Separator-Agnostic**: `api-key`, `api_key`, and `apiKey` are treated identically
166
+
167
+ 3. **Exact Matching**: After normalization, fields must match exactly
168
+
169
+ - `token` matches `token`, `Token`, `TOKEN`
170
+ - `token` does NOT match `promptTokens` or `tokenCount`
171
+
172
+ ## Nested Object Handling
173
+
174
+ The filter recursively processes nested structures:
175
+
176
+ ```json
177
+ // Before
178
+ {
179
+ "user": {
180
+ "id": "12345",
181
+ "credentials": {
182
+ "password": "SuperSecret123!",
183
+ "apiKey": "sk-production-key"
184
+ }
185
+ },
186
+ "config": {
187
+ "auth": {
188
+ "jwt": "eyJhbGciOiJIUzI1NiIs..."
189
+ }
190
+ }
191
+ }
192
+
193
+ // After
194
+ {
195
+ "user": {
196
+ "id": "12345",
197
+ "credentials": {
198
+ "password": "[REDACTED]",
199
+ "apiKey": "[REDACTED]"
200
+ }
201
+ },
202
+ "config": {
203
+ "auth": {
204
+ "jwt": "[REDACTED]"
205
+ }
206
+ }
207
+ }
208
+ ```
209
+
210
+ ## Performance Considerations
211
+
212
+ The Sensitive Data Filter is designed to be lightweight and efficient:
213
+
214
+ - **Synchronous Processing**: No async operations, minimal latency impact
215
+ - **Circular Reference Handling**: Safely handles complex object graphs
216
+ - **Error Recovery**: If filtering fails, the field is replaced with an error marker rather than crashing
217
+
218
+ ## Disabling the Filter
219
+
220
+ If you need to disable sensitive data filtering (not recommended for production):
221
+
222
+ ```ts
223
+ export const mastra = new Mastra({
224
+ observability: new Observability({
225
+ configs: {
226
+ debug: {
227
+ serviceName: 'debug-service',
228
+ spanOutputProcessors: [], // No processors, including no SensitiveDataFilter
229
+ exporters: [new DefaultExporter()],
230
+ },
231
+ },
232
+ }),
233
+ })
234
+ ```
235
+
236
+ > **Warning:** Only disable sensitive data filtering in controlled environments. Never disable it when sending traces to external services or shared storage.
237
+
238
+ ## Common Use Cases
239
+
240
+ ### Healthcare Applications
241
+
242
+ ```ts
243
+ new SensitiveDataFilter({
244
+ sensitiveFields: [
245
+ // HIPAA-related fields
246
+ 'ssn',
247
+ 'socialSecurityNumber',
248
+ 'medicalRecordNumber',
249
+ 'mrn',
250
+ 'healthInsuranceNumber',
251
+ 'diagnosisCode',
252
+ 'icd10',
253
+ 'prescription',
254
+ 'medication',
255
+ ],
256
+ })
257
+ ```
258
+
259
+ ### Financial Services
260
+
261
+ ```ts
262
+ new SensitiveDataFilter({
263
+ sensitiveFields: [
264
+ // PCI compliance fields
265
+ 'creditCard',
266
+ 'ccNumber',
267
+ 'cardNumber',
268
+ 'cvv',
269
+ 'cvc',
270
+ 'securityCode',
271
+ 'expirationDate',
272
+ 'expiry',
273
+ 'bankAccount',
274
+ 'accountNumber',
275
+ 'routingNumber',
276
+ 'iban',
277
+ 'swift',
278
+ ],
279
+ })
280
+ ```
281
+
282
+ ## Error Handling
283
+
284
+ If the filter encounters an error while processing a field, it replaces the field with a safe error marker:
285
+
286
+ ```json
287
+ {
288
+ "problematicField": {
289
+ "error": {
290
+ "processor": "sensitive-data-filter"
291
+ }
292
+ }
293
+ }
294
+ ```
295
+
296
+ This ensures that processing errors don't prevent traces from being exported or cause application crashes.
297
+
298
+ ## Related
299
+
300
+ - [SensitiveDataFilter API](https://mastra.ai/reference/observability/tracing/processors/sensitive-data-filter)
@@ -0,0 +1,183 @@
1
+ # Chunking and Embedding Documents
2
+
3
+ Before processing, create a MDocument instance from your content. You can initialize it from various formats:
4
+
5
+ ```ts
6
+ const docFromText = MDocument.fromText('Your plain text content...')
7
+ const docFromHTML = MDocument.fromHTML('<html>Your HTML content...</html>')
8
+ const docFromMarkdown = MDocument.fromMarkdown('# Your Markdown content...')
9
+ const docFromJSON = MDocument.fromJSON(`{ "key": "value" }`)
10
+ ```
11
+
12
+ ## Step 1: Document Processing
13
+
14
+ Use `chunk` to split documents into manageable pieces. Mastra supports multiple chunking strategies optimized for different document types:
15
+
16
+ - `recursive`: Smart splitting based on content structure
17
+ - `character`: Simple character-based splits
18
+ - `token`: Token-aware splitting
19
+ - `markdown`: Markdown-aware splitting
20
+ - `semantic-markdown`: Markdown splitting based on related header families
21
+ - `html`: HTML structure-aware splitting
22
+ - `json`: JSON structure-aware splitting
23
+ - `latex`: LaTeX structure-aware splitting
24
+ - `sentence`: Sentence-aware splitting
25
+
26
+ > **Note:** Each strategy accepts different parameters optimized for its chunking approach.
27
+
28
+ Here's an example of how to use the `recursive` strategy:
29
+
30
+ ```ts
31
+ const chunks = await doc.chunk({
32
+ strategy: 'recursive',
33
+ maxSize: 512,
34
+ overlap: 50,
35
+ separators: ['\n'],
36
+ extract: {
37
+ metadata: true, // Optionally extract metadata
38
+ },
39
+ })
40
+ ```
41
+
42
+ For text where preserving sentence structure is important, here's an example of how to use the `sentence` strategy:
43
+
44
+ ```ts
45
+ const chunks = await doc.chunk({
46
+ strategy: 'sentence',
47
+ maxSize: 450,
48
+ minSize: 50,
49
+ overlap: 0,
50
+ sentenceEnders: ['.'],
51
+ })
52
+ ```
53
+
54
+ For markdown documents where preserving the semantic relationships between sections is important, here's an example of how to use the `semantic-markdown` strategy:
55
+
56
+ ```ts
57
+ const chunks = await doc.chunk({
58
+ strategy: 'semantic-markdown',
59
+ joinThreshold: 500,
60
+ modelName: 'gpt-3.5-turbo',
61
+ })
62
+ ```
63
+
64
+ > **Note:** Metadata extraction may use LLM calls, so ensure your API key is set.
65
+
66
+ We go deeper into chunking strategies in our [`chunk()` reference documentation](https://mastra.ai/reference/rag/chunk).
67
+
68
+ ## Step 2: Embedding Generation
69
+
70
+ Transform chunks into embeddings using your preferred provider. Mastra supports embedding models through the model router.
71
+
72
+ ### Using the Model Router
73
+
74
+ The simplest way is to use Mastra's model router with `provider/model` strings:
75
+
76
+ ```ts
77
+ import { ModelRouterEmbeddingModel } from '@mastra/core/llm'
78
+ import { embedMany } from 'ai'
79
+
80
+ const { embeddings } = await embedMany({
81
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
82
+ values: chunks.map(chunk => chunk.text),
83
+ })
84
+ ```
85
+
86
+ Mastra supports OpenAI and Google embedding models. For a complete list of supported embedding models, see the [embeddings reference](https://mastra.ai/reference/rag/embeddings).
87
+
88
+ The model router automatically handles API key detection from environment variables.
89
+
90
+ The embedding functions return vectors, arrays of numbers representing the semantic meaning of your text, ready for similarity searches in your vector database.
91
+
92
+ ### Configuring Embedding Dimensions
93
+
94
+ Embedding models typically output vectors with a fixed number of dimensions (e.g., 1536 for OpenAI's `text-embedding-3-small`). Some models support reducing this dimensionality, which can help:
95
+
96
+ - Decrease storage requirements in vector databases
97
+ - Reduce computational costs for similarity searches
98
+
99
+ Here are some supported models:
100
+
101
+ OpenAI (text-embedding-3 models):
102
+
103
+ ```ts
104
+ import { ModelRouterEmbeddingModel } from '@mastra/core/llm'
105
+
106
+ const { embeddings } = await embedMany({
107
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
108
+ options: {
109
+ dimensions: 256, // Only supported in text-embedding-3 and later
110
+ },
111
+ values: chunks.map(chunk => chunk.text),
112
+ })
113
+ ```
114
+
115
+ Google (text-embedding-001):
116
+
117
+ ```ts
118
+ const { embeddings } = await embedMany({
119
+ model: google('gemini-embedding-001', {
120
+ outputDimensionality: 256, // Truncates excessive values from the end
121
+ }),
122
+ values: chunks.map(chunk => chunk.text),
123
+ })
124
+ ```
125
+
126
+ > **Vector Database Compatibility:** When storing embeddings, the vector database index must be configured to match the output size of your embedding model. If the dimensions do not match, you may get errors or data corruption.
127
+
128
+ ## Example: Complete Pipeline
129
+
130
+ Here's an example showing document processing and embedding generation with both providers:
131
+
132
+ ```ts
133
+ import { embedMany } from 'ai'
134
+
135
+ import { MDocument } from '@mastra/rag'
136
+
137
+ // Initialize document
138
+ const doc = MDocument.fromText(`
139
+ Climate change poses significant challenges to global agriculture.
140
+ Rising temperatures and changing precipitation patterns affect crop yields.
141
+ `)
142
+
143
+ // Create chunks
144
+ const chunks = await doc.chunk({
145
+ strategy: 'recursive',
146
+ maxSize: 256,
147
+ overlap: 50,
148
+ })
149
+
150
+ // Generate embeddings with OpenAI
151
+ import { ModelRouterEmbeddingModel } from '@mastra/core/llm'
152
+
153
+ const { embeddings } = await embedMany({
154
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
155
+ values: chunks.map(chunk => chunk.text),
156
+ })
157
+
158
+ // OR
159
+
160
+ // Generate embeddings with Cohere
161
+ const { embeddings } = await embedMany({
162
+ model: 'cohere/embed-english-v3.0',
163
+ values: chunks.map(chunk => chunk.text),
164
+ })
165
+
166
+ // Store embeddings in your vector database
167
+ await vectorStore.upsert({
168
+ indexName: 'embeddings',
169
+ vectors: embeddings,
170
+ })
171
+ ```
172
+
173
+ ##
174
+
175
+ For more examples of different chunking strategies and embedding configurations, see:
176
+
177
+ - [Chunk Reference](https://mastra.ai/reference/rag/chunk)
178
+ - [Embeddings Reference](https://mastra.ai/reference/rag/embeddings)
179
+
180
+ For more details on vector databases and embeddings, see:
181
+
182
+ - [Vector Databases](https://mastra.ai/docs/rag/vector-databases)
183
+ - [Embedding API Reference](https://mastra.ai/reference/rag/embeddings)
@@ -0,0 +1,215 @@
1
+ # GraphRAG
2
+
3
+ Graph-based retrieval enhances traditional vector search by following relationships between chunks of information. This approach is useful when information is spread across multiple documents or when documents reference each other.
4
+
5
+ ## When to use GraphRAG
6
+
7
+ GraphRAG is particularly effective when:
8
+
9
+ - Information is spread across multiple documents
10
+ - Documents reference each other
11
+ - You need to traverse relationships to find complete answers
12
+ - Understanding connections between concepts is important
13
+ - Simple vector similarity misses important contextual relationships
14
+
15
+ For straightforward semantic search without relationship traversal, use [standard retrieval methods](https://mastra.ai/docs/rag/retrieval).
16
+
17
+ ## How GraphRAG works
18
+
19
+ GraphRAG combines vector similarity with knowledge graph traversal:
20
+
21
+ 1. Initial vector search retrieves relevant chunks based on semantic similarity
22
+ 2. A knowledge graph is constructed from the retrieved chunks
23
+ 3. The graph is traversed to find connected information
24
+ 4. Results include both directly relevant chunks and related content
25
+
26
+ This process helps surface information that might not be semantically similar to the query but is contextually relevant through connections.
27
+
28
+ ## Creating a graph query tool
29
+
30
+ The Graph Query Tool provides agents with the ability to perform graph-based retrieval:
31
+
32
+ ```ts
33
+ import { createGraphRAGTool } from '@mastra/rag'
34
+ import { ModelRouterEmbeddingModel } from '@mastra/core/llm'
35
+
36
+ const graphQueryTool = createGraphRAGTool({
37
+ vectorStoreName: 'pgVector',
38
+ indexName: 'embeddings',
39
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
40
+ graphOptions: {
41
+ threshold: 0.7,
42
+ },
43
+ })
44
+ ```
45
+
46
+ ### Configuration options
47
+
48
+ The `graphOptions` parameter controls how the knowledge graph is built and traversed:
49
+
50
+ - `threshold`: Similarity threshold (0-1) for determining which chunks are related. Higher values create sparser graphs with stronger connections; lower values create denser graphs with more potential relationships.
51
+ - `dimension`: Vector embedding dimension. Must match the embedding model's output dimension (e.g., 1536 for OpenAI's text-embedding-3-small).
52
+
53
+ ```ts
54
+ const graphQueryTool = createGraphRAGTool({
55
+ vectorStoreName: 'pgVector',
56
+ indexName: 'embeddings',
57
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
58
+ graphOptions: {
59
+ dimension: 1536,
60
+ threshold: 0.7,
61
+ },
62
+ })
63
+ ```
64
+
65
+ ## Using GraphRAG with agents
66
+
67
+ Integrate the graph query tool with an agent to enable graph-based retrieval:
68
+
69
+ ```ts
70
+ import { Agent } from '@mastra/core/agent'
71
+
72
+ const ragAgent = new Agent({
73
+ id: 'rag-agent',
74
+ name: 'GraphRAG Agent',
75
+ instructions: `You are a helpful assistant that answers questions based on the provided context.
76
+ When answering questions, use the graph query tool to find relevant information and relationships.
77
+ Base your answers on the context provided by the tool, and clearly state if the context doesn't contain enough information.`,
78
+ model: 'openai/gpt-5.1',
79
+ tools: {
80
+ graphQueryTool,
81
+ },
82
+ })
83
+ ```
84
+
85
+ ## Document processing and storage
86
+
87
+ Before using graph-based retrieval, process documents into chunks and store their embeddings:
88
+
89
+ ```ts
90
+ import { MDocument } from '@mastra/rag'
91
+ import { embedMany } from 'ai'
92
+ import { ModelRouterEmbeddingModel } from '@mastra/core/llm'
93
+
94
+ // Create and chunk document
95
+ const doc = MDocument.fromText('Your document content here...')
96
+
97
+ const chunks = await doc.chunk({
98
+ strategy: 'recursive',
99
+ size: 512,
100
+ overlap: 50,
101
+ separator: '\n',
102
+ })
103
+
104
+ // Generate embeddings
105
+ const { embeddings } = await embedMany({
106
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
107
+ values: chunks.map(chunk => chunk.text),
108
+ })
109
+
110
+ // Store in vector database
111
+ const vectorStore = mastra.getVector('pgVector')
112
+ await vectorStore.createIndex({
113
+ indexName: 'embeddings',
114
+ dimension: 1536,
115
+ })
116
+ await vectorStore.upsert({
117
+ indexName: 'embeddings',
118
+ vectors: embeddings,
119
+ metadata: chunks?.map(chunk => ({ text: chunk.text })),
120
+ })
121
+ ```
122
+
123
+ ## Querying with GraphRAG
124
+
125
+ Once configured, the agent can perform graph-based queries:
126
+
127
+ ```ts
128
+ const query = 'What are the effects of infrastructure changes on local businesses?'
129
+ const response = await ragAgent.generate(query)
130
+ console.log(response.text)
131
+ ```
132
+
133
+ The agent uses the graph query tool to:
134
+
135
+ 1. Convert the query to an embedding
136
+ 2. Find semantically similar chunks in the vector store
137
+ 3. Build a knowledge graph from related chunks
138
+ 4. Traverse the graph to find connected information
139
+ 5. Return comprehensive context for generating the response
140
+
141
+ ## Choosing the right threshold
142
+
143
+ The threshold parameter significantly impacts retrieval quality:
144
+
145
+ - **High threshold (0.8-0.9)**: Strict connections, fewer relationships, more precise but potentially incomplete results
146
+ - **Medium threshold (0.6-0.8)**: Balanced approach, good for most use cases
147
+ - **Low threshold (0.4-0.6)**: More connections, broader context, risk of including less relevant information
148
+
149
+ Start with 0.7 and adjust based on your specific use case:
150
+
151
+ ```ts
152
+ // Strict connections for precise answers
153
+ const strictGraphTool = createGraphRAGTool({
154
+ vectorStoreName: 'pgVector',
155
+ indexName: 'embeddings',
156
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
157
+ graphOptions: {
158
+ threshold: 0.85,
159
+ },
160
+ })
161
+
162
+ // Broader connections for exploratory queries
163
+ const broadGraphTool = createGraphRAGTool({
164
+ vectorStoreName: 'pgVector',
165
+ indexName: 'embeddings',
166
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
167
+ graphOptions: {
168
+ threshold: 0.5,
169
+ },
170
+ })
171
+ ```
172
+
173
+ ## Combining with other retrieval methods
174
+
175
+ GraphRAG can be used alongside other retrieval approaches:
176
+
177
+ ```ts
178
+ import { createVectorQueryTool } from '@mastra/rag'
179
+
180
+ const vectorQueryTool = createVectorQueryTool({
181
+ vectorStoreName: 'pgVector',
182
+ indexName: 'embeddings',
183
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
184
+ })
185
+
186
+ const graphQueryTool = createGraphRAGTool({
187
+ vectorStoreName: 'pgVector',
188
+ indexName: 'embeddings',
189
+ model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
190
+ graphOptions: {
191
+ threshold: 0.7,
192
+ },
193
+ })
194
+
195
+ const agent = new Agent({
196
+ id: 'rag-agent',
197
+ name: 'RAG Agent',
198
+ instructions: `Use vector search for simple fact-finding queries.
199
+ Use graph search when you need to understand relationships or find connected information.`,
200
+ model: 'openai/gpt-5.1',
201
+ tools: {
202
+ vectorQueryTool,
203
+ graphQueryTool,
204
+ },
205
+ })
206
+ ```
207
+
208
+ This gives the agent flexibility to choose the appropriate retrieval method based on the query.
209
+
210
+ ## Reference
211
+
212
+ For detailed API documentation, see:
213
+
214
+ - [GraphRAG Class](https://mastra.ai/reference/rag/graph-rag)
215
+ - [createGraphRAGTool()](https://mastra.ai/reference/tools/graph-rag-tool)