@mastra/mcp-docs-server 1.2.15-alpha.9 → 1.2.16-alpha.1

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 (532) hide show
  1. package/.docs/docs/agents/agent-approval.md +19 -5
  2. package/.docs/docs/agents/code-mode.md +17 -2
  3. package/.docs/docs/agents/networks.md +2 -2
  4. package/.docs/docs/agents/overview.md +6 -6
  5. package/.docs/docs/agents/processors.md +3 -3
  6. package/.docs/docs/agents/using-tools.md +1 -1
  7. package/.docs/docs/browser/overview.md +9 -9
  8. package/.docs/docs/browser/recording.md +4 -4
  9. package/.docs/docs/capabilities/{channels/overview.md → channels.md} +71 -8
  10. package/.docs/docs/capabilities/subagents.md +7 -4
  11. package/.docs/docs/connections/overview.md +1 -1
  12. package/.docs/docs/datasets/overview.md +1 -1
  13. package/.docs/docs/datasets/running-experiments.md +49 -0
  14. package/.docs/docs/deployment/cloud-providers.md +13 -11
  15. package/.docs/docs/deployment/mastra-server.md +1 -1
  16. package/.docs/docs/deployment/monorepo.md +1 -1
  17. package/.docs/docs/deployment/overview.md +13 -10
  18. package/.docs/docs/deployment/sandbox.md +4 -4
  19. package/.docs/docs/deployment/web-framework.md +7 -7
  20. package/.docs/docs/deployment/workers.md +249 -3
  21. package/.docs/docs/deployment/workflow-runners.md +2 -2
  22. package/.docs/docs/evals/overview.md +1 -1
  23. package/.docs/docs/evals/quick-checks.md +1 -1
  24. package/.docs/docs/getting-started/develop.md +1 -1
  25. package/.docs/{guides/concepts → docs/guides}/multi-agent-systems.md +1 -1
  26. package/.docs/docs/harness/agent-controller.md +50 -9
  27. package/.docs/docs/harness/overview.md +3 -5
  28. package/.docs/docs/index.md +8 -8
  29. package/.docs/docs/long-running-agents/durable-agents.md +3 -3
  30. package/.docs/docs/long-running-agents/goals.md +1 -1
  31. package/.docs/docs/long-running-agents/schedules.md +1 -1
  32. package/.docs/docs/long-running-agents/signal-providers.md +5 -18
  33. package/.docs/docs/long-running-agents/signals.md +2 -2
  34. package/.docs/docs/mastra-platform/database.md +2 -2
  35. package/.docs/docs/mastra-platform/deploy.md +28 -1
  36. package/.docs/docs/mastra-platform/observability.md +63 -18
  37. package/.docs/docs/mastra-platform/overview.md +1 -1
  38. package/.docs/docs/mastra-platform/server.md +1 -1
  39. package/.docs/docs/mastra-platform/trace-intelligence.md +9 -13
  40. package/.docs/docs/mcp/overview.md +43 -1
  41. package/.docs/docs/memory/memory-processors.md +5 -5
  42. package/.docs/docs/memory/message-history.md +3 -3
  43. package/.docs/docs/memory/multi-user-threads.md +1 -1
  44. package/.docs/docs/memory/observational-memory.md +2 -2
  45. package/.docs/docs/memory/semantic-recall.md +2 -1
  46. package/.docs/docs/memory/working-memory.md +2 -1
  47. package/.docs/docs/observability/integrations/exporters/mastra-storage.md +18 -17
  48. package/.docs/docs/observability/logging.md +1 -1
  49. package/.docs/docs/observability/metrics/overview.md +1 -1
  50. package/.docs/docs/observability/overview.md +1 -5
  51. package/.docs/docs/observability/tracing/overview.md +3 -6
  52. package/.docs/docs/server/auth/fga.md +1 -1
  53. package/.docs/docs/server/auth/simple-auth.md +1 -1
  54. package/.docs/docs/server/auth/workers.md +3 -1
  55. package/.docs/docs/server/auth.md +15 -13
  56. package/.docs/docs/server/custom-adapters.md +1 -1
  57. package/.docs/docs/server/custom-api-routes.md +35 -0
  58. package/.docs/docs/server/mastra-client.md +3 -3
  59. package/.docs/docs/server/mastra-server.md +2 -2
  60. package/.docs/docs/storage/overview.md +20 -17
  61. package/.docs/docs/studio/observability.md +1 -1
  62. package/.docs/docs/workflows/dynamic-workflows.md +1 -1
  63. package/.docs/docs/workflows/human-in-the-loop.md +2 -2
  64. package/.docs/docs/workflows/overview.md +4 -4
  65. package/.docs/docs/workflows/snapshots.md +12 -10
  66. package/.docs/docs/workflows/time-travel.md +2 -0
  67. package/.docs/docs/workspace/filesystem.md +15 -15
  68. package/.docs/docs/workspace/sandbox.md +18 -19
  69. package/.docs/docs/workspace/search.md +1 -1
  70. package/.docs/{guides/build-your-ui → integrations/agentic-ui}/ai-sdk-ui.md +6 -6
  71. package/.docs/{guides/build-your-ui → integrations/agentic-ui}/assistant-ui.md +2 -2
  72. package/.docs/{guides/build-your-ui/copilotkit/overview.md → integrations/agentic-ui/copilotkit.md} +258 -5
  73. package/.docs/{guides/build-your-ui → integrations/agentic-ui}/openui.md +1 -1
  74. package/.docs/{docs/server → integrations}/auth/auth0.md +1 -1
  75. package/.docs/{docs/server → integrations}/auth/clerk.md +2 -2
  76. package/.docs/{docs/server → integrations}/auth/firebase.md +1 -1
  77. package/.docs/{docs/server → integrations}/auth/okta.md +24 -4
  78. package/.docs/{docs/server → integrations}/auth/supabase.md +2 -2
  79. package/.docs/{docs/server → integrations}/auth/workos.md +1 -1
  80. package/.docs/{docs/browser → integrations/browsers}/agent-browser.md +2 -2
  81. package/.docs/{docs/browser → integrations/browsers}/browser-viewer.md +3 -3
  82. package/.docs/{docs/browser → integrations/browsers}/firecrawl.md +2 -2
  83. package/.docs/{docs/browser → integrations/browsers}/stagehand.md +1 -1
  84. package/.docs/{docs/capabilities → integrations}/channels/discord.md +2 -2
  85. package/.docs/integrations/channels/github.md +103 -0
  86. package/.docs/{docs/capabilities → integrations}/channels/imessage.md +12 -4
  87. package/.docs/{docs/capabilities → integrations}/channels/slack.md +4 -4
  88. package/.docs/{docs/capabilities → integrations}/channels/teams.md +2 -2
  89. package/.docs/{docs/capabilities → integrations}/channels/telegram.md +2 -2
  90. package/.docs/{docs/capabilities → integrations}/channels/whatsapp.md +2 -2
  91. package/.docs/{reference/storage/dsql.md → integrations/databases/aurora-dsql.md} +1 -1
  92. package/.docs/{reference/storage → integrations/databases}/clickhouse.md +2 -2
  93. package/.docs/{reference/storage → integrations/databases}/cloudflare-d1.md +1 -1
  94. package/.docs/{reference/storage/cloudflare.md → integrations/databases/cloudflare-kv.md} +1 -1
  95. package/.docs/{reference/storage → integrations/databases}/convex.md +1 -1
  96. package/.docs/{reference/storage → integrations/databases}/duckdb.md +5 -5
  97. package/.docs/{reference/storage → integrations/databases}/dynamodb.md +1 -1
  98. package/.docs/{reference/storage/lance.md → integrations/databases/lancedb.md} +1 -1
  99. package/.docs/{reference/storage → integrations/databases}/libsql.md +2 -2
  100. package/.docs/{reference/storage → integrations/databases}/mongodb.md +1 -1
  101. package/.docs/{reference/storage → integrations/databases}/mssql.md +1 -1
  102. package/.docs/integrations/databases/neon.md +220 -0
  103. package/.docs/integrations/databases/oracledb.md +239 -0
  104. package/.docs/{reference/storage → integrations/databases}/postgresql.md +9 -9
  105. package/.docs/{reference/storage → integrations/databases}/redis.md +1 -1
  106. package/.docs/{reference/storage → integrations/databases}/spanner.md +1 -1
  107. package/.docs/{reference/storage → integrations/databases}/upstash.md +1 -1
  108. package/.docs/{guides/deployment → integrations/deploy}/amazon-ec2.md +3 -3
  109. package/.docs/{guides/deployment → integrations/deploy}/aws-bedrock-agentcore.md +2 -2
  110. package/.docs/{guides/deployment → integrations/deploy}/aws-lambda.md +4 -4
  111. package/.docs/{guides/deployment → integrations/deploy}/azure-app-services.md +4 -4
  112. package/.docs/{guides/deployment → integrations/deploy}/cloudflare.md +4 -4
  113. package/.docs/{guides/deployment → integrations/deploy}/digital-ocean.md +5 -5
  114. package/.docs/{guides/deployment → integrations/deploy}/inngest.md +1 -1
  115. package/.docs/{guides/deployment → integrations/deploy}/kubernetes.md +4 -5
  116. package/.docs/{guides/deployment → integrations/deploy}/netlify.md +5 -5
  117. package/.docs/{guides/deployment → integrations/deploy}/temporal.md +1 -1
  118. package/.docs/{guides/deployment → integrations/deploy}/vercel.md +5 -5
  119. package/.docs/{reference/workspace/agentfs-filesystem.md → integrations/file-storage/agentfs.md} +1 -1
  120. package/.docs/{reference/workspace/s3-filesystem.md → integrations/file-storage/amazon-s3.md} +6 -6
  121. package/.docs/{reference/workspace/archil-filesystem.md → integrations/file-storage/archil.md} +4 -4
  122. package/.docs/{reference/workspace/azure-blob-filesystem.md → integrations/file-storage/azure-blob.md} +3 -3
  123. package/.docs/{reference/workspace/gcs-filesystem.md → integrations/file-storage/google-cloud-storage.md} +6 -6
  124. package/.docs/{reference/workspace/google-drive-filesystem.md → integrations/file-storage/google-drive.md} +1 -1
  125. package/.docs/{reference/workspace/mesa-filesystem.md → integrations/file-storage/mesa.md} +3 -3
  126. package/.docs/{reference/workspace/files-sdk-filesystem.md → integrations/file-storage/vercel-files.md} +6 -6
  127. package/.docs/{guides/getting-started → integrations/frameworks}/astro.md +2 -2
  128. package/.docs/{guides/getting-started → integrations/frameworks}/electron.md +4 -4
  129. package/.docs/{guides/getting-started → integrations/frameworks}/express.md +1 -1
  130. package/.docs/{guides/getting-started → integrations/frameworks}/hono.md +1 -1
  131. package/.docs/{guides/getting-started → integrations/frameworks}/nestjs.md +1 -1
  132. package/.docs/{guides/getting-started → integrations/frameworks}/next-js.md +3 -3
  133. package/.docs/{guides/getting-started → integrations/frameworks}/nuxt.md +2 -2
  134. package/.docs/{guides/getting-started → integrations/frameworks}/sveltekit.md +2 -2
  135. package/.docs/{guides/getting-started → integrations/frameworks}/vite-react.md +2 -2
  136. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/arize.md +1 -1
  137. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/arthur.md +1 -1
  138. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/braintrust.md +1 -1
  139. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/confident-ai.md +1 -1
  140. package/.docs/integrations/observability/datadog.md +538 -0
  141. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/laminar.md +1 -1
  142. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/langfuse.md +1 -1
  143. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/langsmith.md +1 -1
  144. package/.docs/{docs/observability/integrations/exporters/otel.md → integrations/observability/opentelemetry.md} +278 -46
  145. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/posthog.md +1 -1
  146. package/.docs/{docs/observability/integrations/exporters → integrations/observability}/sentry.md +1 -1
  147. package/.docs/{reference/workspace/agentcore-runtime-sandbox.md → integrations/sandboxes/agentcore.md} +1 -1
  148. package/.docs/{reference/workspace/apple-container-sandbox.md → integrations/sandboxes/apple-container.md} +2 -2
  149. package/.docs/{reference/workspace/blaxel-sandbox.md → integrations/sandboxes/blaxel.md} +1 -1
  150. package/.docs/{reference/workspace/daytona-sandbox.md → integrations/sandboxes/daytona.md} +24 -3
  151. package/.docs/{reference/workspace/docker-sandbox.md → integrations/sandboxes/docker.md} +2 -2
  152. package/.docs/{reference/workspace/e2b-sandbox.md → integrations/sandboxes/e2b.md} +4 -4
  153. package/.docs/{reference/workspace/modal-sandbox.md → integrations/sandboxes/modal.md} +3 -3
  154. package/.docs/{reference/workspace/railway-sandbox.md → integrations/sandboxes/railway.md} +9 -1
  155. package/.docs/{reference/workspace/vercel-sandbox.md → integrations/sandboxes/vercel.md} +143 -12
  156. package/.docs/{reference → integrations}/tools/brightdata.md +1 -1
  157. package/.docs/{guides/guide → integrations/tools}/firecrawl.md +2 -2
  158. package/.docs/{reference → integrations}/tools/perplexity.md +1 -1
  159. package/.docs/{reference → integrations}/tools/tavily.md +1 -1
  160. package/.docs/{reference → integrations}/voice/aws-nova-sonic.md +1 -1
  161. package/.docs/{reference → integrations}/voice/cloudflare.md +3 -3
  162. package/.docs/{reference/voice/google-gemini-live.md → integrations/voice/google.md} +305 -30
  163. package/.docs/{reference/voice/inworld-realtime.md → integrations/voice/inworld.md} +163 -25
  164. package/.docs/{reference → integrations}/voice/livekit.md +436 -33
  165. package/.docs/{reference/voice/openai-realtime.md → integrations/voice/openai.md} +117 -20
  166. package/.docs/integrations.md +147 -0
  167. package/.docs/models/embeddings.md +3 -3
  168. package/.docs/models/environment-variables.md +1 -0
  169. package/.docs/models/gateways/custom-gateways.md +4 -0
  170. package/.docs/models/gateways/neon.md +1 -1
  171. package/.docs/models/gateways/netlify.md +1 -1
  172. package/.docs/models/gateways/openrouter.md +9 -3
  173. package/.docs/models/gateways/vercel.md +6 -4
  174. package/.docs/models/index.md +3 -3
  175. package/.docs/models/providers/302ai.md +1 -1
  176. package/.docs/models/providers/abacus.md +1 -1
  177. package/.docs/models/providers/abliteration-ai.md +1 -1
  178. package/.docs/models/providers/agentrouter.md +1 -1
  179. package/.docs/models/providers/ai-router.md +1 -1
  180. package/.docs/models/providers/aiand.md +1 -1
  181. package/.docs/models/providers/aki-io.md +1 -1
  182. package/.docs/models/providers/alibaba-cn.md +1 -1
  183. package/.docs/models/providers/alibaba-coding-plan-cn.md +1 -1
  184. package/.docs/models/providers/alibaba-coding-plan.md +1 -1
  185. package/.docs/models/providers/alibaba-token-plan-cn.md +1 -1
  186. package/.docs/models/providers/alibaba-token-plan.md +1 -1
  187. package/.docs/models/providers/alibaba.md +7 -5
  188. package/.docs/models/providers/ambient.md +2 -2
  189. package/.docs/models/providers/anyapi.md +1 -1
  190. package/.docs/models/providers/atomic-chat.md +1 -1
  191. package/.docs/models/providers/auriko.md +1 -1
  192. package/.docs/models/providers/bailing.md +1 -1
  193. package/.docs/models/providers/baseten.md +2 -2
  194. package/.docs/models/providers/berget.md +1 -1
  195. package/.docs/models/providers/blueclaw.md +1 -1
  196. package/.docs/models/providers/chutes.md +1 -1
  197. package/.docs/models/providers/clarifai.md +1 -1
  198. package/.docs/models/providers/claudinio.md +1 -1
  199. package/.docs/models/providers/cline-pass.md +1 -1
  200. package/.docs/models/providers/cloudferro-sherlock.md +1 -1
  201. package/.docs/models/providers/cloudflare-workers-ai.md +1 -1
  202. package/.docs/models/providers/coralbricks.md +75 -0
  203. package/.docs/models/providers/cortecs.md +3 -5
  204. package/.docs/models/providers/crof.md +1 -1
  205. package/.docs/models/providers/crossmodel.md +2 -3
  206. package/.docs/models/providers/daoxe.md +1 -1
  207. package/.docs/models/providers/databricks.md +1 -1
  208. package/.docs/models/providers/deepinfra.md +6 -5
  209. package/.docs/models/providers/digitalocean.md +5 -5
  210. package/.docs/models/providers/dinference.md +1 -1
  211. package/.docs/models/providers/drun.md +1 -1
  212. package/.docs/models/providers/ebcloud.md +1 -1
  213. package/.docs/models/providers/empiriolabs.md +3 -2
  214. package/.docs/models/providers/evroc.md +3 -4
  215. package/.docs/models/providers/fastrouter.md +1 -1
  216. package/.docs/models/providers/firepass.md +1 -1
  217. package/.docs/models/providers/fireworks-ai.md +1 -1
  218. package/.docs/models/providers/firmware.md +1 -1
  219. package/.docs/models/providers/freemodel.md +1 -1
  220. package/.docs/models/providers/friendli.md +1 -1
  221. package/.docs/models/providers/frogbot.md +1 -1
  222. package/.docs/models/providers/github-models.md +1 -1
  223. package/.docs/models/providers/gmicloud.md +1 -1
  224. package/.docs/models/providers/google.md +1 -1
  225. package/.docs/models/providers/greenpt.md +1 -1
  226. package/.docs/models/providers/helicone.md +1 -1
  227. package/.docs/models/providers/hetzner.md +8 -5
  228. package/.docs/models/providers/hpc-ai.md +1 -1
  229. package/.docs/models/providers/huggingface.md +1 -1
  230. package/.docs/models/providers/hyper.md +7 -7
  231. package/.docs/models/providers/iflowcn.md +1 -1
  232. package/.docs/models/providers/impossibl.md +1 -1
  233. package/.docs/models/providers/inception.md +1 -1
  234. package/.docs/models/providers/inceptron.md +1 -1
  235. package/.docs/models/providers/inference.md +1 -1
  236. package/.docs/models/providers/inferx.md +1 -1
  237. package/.docs/models/providers/infomaniak.md +1 -1
  238. package/.docs/models/providers/io-intelligence.md +1 -1
  239. package/.docs/models/providers/io-net.md +1 -1
  240. package/.docs/models/providers/jiekou.md +1 -1
  241. package/.docs/models/providers/kenari.md +1 -1
  242. package/.docs/models/providers/kilo.md +19 -13
  243. package/.docs/models/providers/kimi-for-coding.md +1 -1
  244. package/.docs/models/providers/kiro.md +1 -1
  245. package/.docs/models/providers/kuae-cloud-coding-plan.md +1 -1
  246. package/.docs/models/providers/lilac.md +1 -1
  247. package/.docs/models/providers/llama.md +1 -1
  248. package/.docs/models/providers/llmgateway.md +2 -7
  249. package/.docs/models/providers/llmtr.md +1 -1
  250. package/.docs/models/providers/lmstudio.md +1 -1
  251. package/.docs/models/providers/longcat.md +1 -1
  252. package/.docs/models/providers/lucidquery.md +1 -1
  253. package/.docs/models/providers/lynkr.md +1 -1
  254. package/.docs/models/providers/meganova.md +1 -1
  255. package/.docs/models/providers/meta.md +1 -1
  256. package/.docs/models/providers/minimax-cn-coding-plan.md +1 -1
  257. package/.docs/models/providers/minimax-cn.md +1 -1
  258. package/.docs/models/providers/minimax-coding-plan.md +1 -1
  259. package/.docs/models/providers/minimax.md +1 -1
  260. package/.docs/models/providers/mixlayer.md +1 -1
  261. package/.docs/models/providers/moark.md +1 -1
  262. package/.docs/models/providers/modal.md +1 -1
  263. package/.docs/models/providers/model-oracle-ai.md +1 -1
  264. package/.docs/models/providers/modelis.md +1 -1
  265. package/.docs/models/providers/modelscope.md +1 -1
  266. package/.docs/models/providers/moonshotai-cn.md +1 -1
  267. package/.docs/models/providers/moonshotai.md +1 -1
  268. package/.docs/models/providers/morph.md +1 -1
  269. package/.docs/models/providers/nano-gpt.md +11 -7
  270. package/.docs/models/providers/nearai.md +1 -1
  271. package/.docs/models/providers/nebius.md +3 -2
  272. package/.docs/models/providers/neuralwatt.md +1 -1
  273. package/.docs/models/providers/nova.md +1 -1
  274. package/.docs/models/providers/novita-ai.md +1 -1
  275. package/.docs/models/providers/nvidia.md +3 -2
  276. package/.docs/models/providers/ofox.md +4 -3
  277. package/.docs/models/providers/ollama-cloud.md +1 -1
  278. package/.docs/models/providers/opencode-go.md +1 -1
  279. package/.docs/models/providers/opencode.md +64 -64
  280. package/.docs/models/providers/orcarouter.md +1 -1
  281. package/.docs/models/providers/ovhcloud.md +1 -1
  282. package/.docs/models/providers/perplexity-agent.md +1 -1
  283. package/.docs/models/providers/pioneer.md +1 -1
  284. package/.docs/models/providers/poe.md +1 -1
  285. package/.docs/models/providers/poolside.md +1 -1
  286. package/.docs/models/providers/privatemode-ai.md +12 -10
  287. package/.docs/models/providers/qihang-ai.md +1 -1
  288. package/.docs/models/providers/qiniu-ai.md +1 -1
  289. package/.docs/models/providers/regolo-ai.md +26 -21
  290. package/.docs/models/providers/requesty.md +3 -3
  291. package/.docs/models/providers/routing-run.md +1 -1
  292. package/.docs/models/providers/sakana.md +1 -1
  293. package/.docs/models/providers/sarvam.md +1 -1
  294. package/.docs/models/providers/scaleway.md +1 -1
  295. package/.docs/models/providers/scx.md +1 -1
  296. package/.docs/models/providers/siliconflow-cn.md +1 -1
  297. package/.docs/models/providers/siliconflow.md +1 -1
  298. package/.docs/models/providers/snowflake-cortex.md +6 -2
  299. package/.docs/models/providers/stackit.md +1 -1
  300. package/.docs/models/providers/stepfun-ai-step-plan.md +1 -1
  301. package/.docs/models/providers/stepfun-ai.md +1 -1
  302. package/.docs/models/providers/stepfun-step-plan.md +1 -1
  303. package/.docs/models/providers/stepfun.md +1 -1
  304. package/.docs/models/providers/subconscious.md +1 -1
  305. package/.docs/models/providers/submodel.md +1 -1
  306. package/.docs/models/providers/synthetic.md +1 -1
  307. package/.docs/models/providers/tencent-coding-plan.md +1 -1
  308. package/.docs/models/providers/tencent-token-plan.md +1 -1
  309. package/.docs/models/providers/tencent-tokenhub.md +1 -1
  310. package/.docs/models/providers/tensorx.md +1 -1
  311. package/.docs/models/providers/the-grid-ai.md +1 -1
  312. package/.docs/models/providers/thinkingmachines.md +1 -1
  313. package/.docs/models/providers/tinfoil.md +2 -2
  314. package/.docs/models/providers/togetherai.md +1 -1
  315. package/.docs/models/providers/trustedrouter.md +1 -1
  316. package/.docs/models/providers/umans-ai-coding-plan.md +1 -1
  317. package/.docs/models/providers/umans-ai.md +1 -1
  318. package/.docs/models/providers/unorouter.md +1 -1
  319. package/.docs/models/providers/upstage.md +1 -1
  320. package/.docs/models/providers/venice.md +1 -1
  321. package/.docs/models/providers/vivgrid.md +1 -1
  322. package/.docs/models/providers/vultr.md +1 -1
  323. package/.docs/models/providers/wafer.ai.md +1 -1
  324. package/.docs/models/providers/wandb.md +3 -2
  325. package/.docs/models/providers/xiaomi-token-plan-ams.md +1 -1
  326. package/.docs/models/providers/xiaomi-token-plan-cn.md +1 -1
  327. package/.docs/models/providers/xiaomi-token-plan-sgp.md +1 -1
  328. package/.docs/models/providers/xiaomi.md +1 -1
  329. package/.docs/models/providers/xpersona.md +1 -1
  330. package/.docs/models/providers/zai-coding-plan.md +1 -1
  331. package/.docs/models/providers/zai.md +1 -1
  332. package/.docs/models/providers/zeldoc.md +8 -8
  333. package/.docs/models/providers/zenifra.md +1 -1
  334. package/.docs/models/providers/zenmux.md +1 -16
  335. package/.docs/models/providers/zhipuai-coding-plan.md +1 -1
  336. package/.docs/models/providers/zhipuai.md +1 -1
  337. package/.docs/models/providers.md +1 -0
  338. package/.docs/reference/agent-controller/agent-controller-class.md +35 -4
  339. package/.docs/reference/agent-controller/session.md +5 -3
  340. package/.docs/reference/agents/channels.md +2 -2
  341. package/.docs/reference/agents/durable-agent.md +2 -0
  342. package/.docs/reference/agents/generateLegacy.md +2 -2
  343. package/.docs/reference/agents/getDefaultOptions.md +1 -1
  344. package/.docs/reference/agents/getDefaultStreamOptions.md +1 -1
  345. package/.docs/reference/agents/getVoice.md +1 -1
  346. package/.docs/reference/agents/inngest-agent.md +3 -1
  347. package/.docs/reference/agents/network.md +1 -1
  348. package/.docs/reference/ai-sdk/handle-network-stream.md +1 -1
  349. package/.docs/reference/ai-sdk/network-route.md +1 -1
  350. package/.docs/{guides/agent-frameworks/ai-sdk.md → reference/ai-sdk/overview.md} +2 -2
  351. package/.docs/reference/auth/auth0.md +1 -1
  352. package/.docs/reference/auth/better-auth.md +1 -1
  353. package/.docs/reference/auth/clerk.md +1 -1
  354. package/.docs/reference/auth/firebase.md +1 -1
  355. package/.docs/reference/auth/google.md +1 -1
  356. package/.docs/reference/auth/okta.md +5 -1
  357. package/.docs/reference/auth/supabase.md +1 -1
  358. package/.docs/reference/auth/workos.md +1 -1
  359. package/.docs/reference/browser/agent-browser.md +2 -2
  360. package/.docs/reference/browser/browser-viewer.md +1 -1
  361. package/.docs/reference/browser/firecrawl-browser.md +1 -1
  362. package/.docs/reference/browser/mastra-browser.md +1 -1
  363. package/.docs/reference/browser/stagehand-browser.md +2 -2
  364. package/.docs/reference/channels/channel-provider.md +1 -1
  365. package/.docs/reference/channels/slack-provider.md +2 -2
  366. package/.docs/reference/cli/mastra.md +6 -6
  367. package/.docs/reference/client-js/agents.md +2 -1
  368. package/.docs/reference/client-js/workflows.md +3 -3
  369. package/.docs/reference/code-sdk/mount-agent-controller.md +1 -1
  370. package/.docs/reference/configuration.md +22 -28
  371. package/.docs/reference/core/addDynamicWorkflow.md +2 -2
  372. package/.docs/reference/core/addDynamicWorkflows.md +2 -2
  373. package/.docs/reference/core/getStorage.md +1 -1
  374. package/.docs/reference/core/getVector.md +2 -2
  375. package/.docs/reference/core/listVectors.md +2 -2
  376. package/.docs/reference/core/setStorage.md +1 -1
  377. package/.docs/reference/datasets/startExperiment.md +8 -0
  378. package/.docs/reference/file-based-agents/config.md +2 -0
  379. package/.docs/reference/file-based-agents/instructions.md +2 -0
  380. package/.docs/reference/file-based-agents/logger.md +2 -0
  381. package/.docs/reference/file-based-agents/memory.md +2 -0
  382. package/.docs/reference/file-based-agents/observability.md +2 -0
  383. package/.docs/reference/file-based-agents/processors.md +2 -0
  384. package/.docs/reference/file-based-agents/schedules.md +2 -0
  385. package/.docs/reference/file-based-agents/scorers.md +2 -0
  386. package/.docs/reference/file-based-agents/server.md +2 -0
  387. package/.docs/reference/file-based-agents/skills.md +2 -0
  388. package/.docs/reference/file-based-agents/storage.md +3 -1
  389. package/.docs/reference/file-based-agents/studio.md +3 -1
  390. package/.docs/reference/file-based-agents/subagents.md +2 -0
  391. package/.docs/reference/file-based-agents/tools.md +2 -0
  392. package/.docs/reference/file-based-agents/workflows.md +2 -0
  393. package/.docs/reference/file-based-agents/workspace.md +2 -0
  394. package/.docs/reference/index.md +34 -55
  395. package/.docs/{guides/getting-started → reference}/manual-install.md +3 -3
  396. package/.docs/{guides → reference}/migrations/ai-sdk-v4-to-v5.md +1 -1
  397. package/.docs/{guides → reference}/migrations/mastra-cloud.md +2 -2
  398. package/.docs/{guides → reference}/migrations/network-to-supervisor.md +1 -1
  399. package/.docs/{guides → reference}/migrations/upgrade-to-v1/cli.md +1 -1
  400. package/.docs/{guides → reference}/migrations/upgrade-to-v1/memory.md +1 -1
  401. package/.docs/{guides → reference}/migrations/upgrade-to-v1/overview.md +41 -41
  402. package/.docs/{guides → reference}/migrations/upgrade-to-v1/tools.md +1 -1
  403. package/.docs/{guides → reference}/migrations/upgrade-to-v1/tracing.md +11 -13
  404. package/.docs/reference/observability/tracing/bridges/datadog.md +2 -2
  405. package/.docs/reference/observability/tracing/bridges/otel.md +2 -2
  406. package/.docs/reference/observability/tracing/exporters/arize.md +1 -1
  407. package/.docs/reference/observability/tracing/exporters/arthur.md +1 -1
  408. package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +0 -1
  409. package/.docs/reference/observability/tracing/exporters/confident-ai.md +1 -1
  410. package/.docs/reference/observability/tracing/exporters/console-exporter.md +0 -1
  411. package/.docs/reference/observability/tracing/exporters/datadog.md +1 -1
  412. package/.docs/reference/observability/tracing/exporters/default-exporter.md +0 -1
  413. package/.docs/reference/observability/tracing/exporters/mastra-platform-exporter.md +12 -1
  414. package/.docs/reference/observability/tracing/exporters/mastra-storage-exporter.md +0 -1
  415. package/.docs/reference/observability/tracing/exporters/otel.md +2 -2
  416. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +111 -99
  417. package/.docs/reference/observability/tracing/span-filtering.md +1 -1
  418. package/.docs/reference/processors/pii-detector.md +2 -0
  419. package/.docs/reference/processors/prompt-injection-detector.md +2 -0
  420. package/.docs/reference/processors/regex-filter-processor.md +20 -0
  421. package/.docs/reference/processors/response-cache.md +2 -0
  422. package/.docs/reference/processors/tool-search-processor.md +33 -1
  423. package/.docs/reference/pubsub/lease-provider.md +1 -1
  424. package/.docs/{guides → reference}/rag/chunking-and-embedding.md +16 -19
  425. package/.docs/reference/rag/database-config.md +1 -1
  426. package/.docs/{guides/rag/graph-rag.md → reference/rag/graph-rag-guide.md} +1 -1
  427. package/.docs/reference/rag/metadata-filters.md +13 -4
  428. package/.docs/{guides → reference}/rag/overview.md +2 -2
  429. package/.docs/{guides → reference}/rag/retrieval.md +18 -1
  430. package/.docs/{guides → reference}/rag/vector-databases.md +42 -1
  431. package/.docs/reference/schedules/overview.md +2 -0
  432. package/.docs/reference/server/create-route.md +27 -1
  433. package/.docs/reference/server/register-api-route.md +2 -0
  434. package/.docs/reference/signals/create-notification-inbox-tool.md +2 -0
  435. package/.docs/reference/signals/signal-provider.md +2 -0
  436. package/.docs/reference/signals/task-signal-provider.md +2 -0
  437. package/.docs/reference/signals/webhook-signal-provider.md +2 -0
  438. package/.docs/reference/storage/composite.md +4 -4
  439. package/.docs/reference/storage/overview.md +1 -1
  440. package/.docs/reference/storage/retention.md +4 -4
  441. package/.docs/reference/streaming/ChunkType.md +3 -3
  442. package/.docs/reference/streaming/agents/stream.md +1 -1
  443. package/.docs/reference/streaming/agents/streamLegacy.md +3 -3
  444. package/.docs/reference/streaming/agents/streamUntilIdle.md +1 -1
  445. package/.docs/reference/templates/overview.md +1 -1
  446. package/.docs/reference/tools/create-code-mode.md +3 -1
  447. package/.docs/reference/tools/isolated-vm-transport.md +1 -1
  448. package/.docs/reference/tools/mcp-client.md +51 -0
  449. package/.docs/reference/tools/mcp-server.md +1 -1
  450. package/.docs/reference/tools/quickjs-transport.md +92 -0
  451. package/.docs/reference/vectors/chroma.md +1 -1
  452. package/.docs/reference/vectors/convex.md +2 -2
  453. package/.docs/reference/vectors/oracledb.md +347 -0
  454. package/.docs/{guides → reference}/voice/overview.md +58 -109
  455. package/.docs/{guides → reference}/voice/speech-to-speech.md +1 -1
  456. package/.docs/{guides → reference}/voice/speech-to-text.md +8 -8
  457. package/.docs/{guides → reference}/voice/text-to-speech.md +11 -12
  458. package/.docs/reference/workers/overview.md +10 -8
  459. package/.docs/reference/workflows/dynamic-workflow-definition.md +3 -1
  460. package/.docs/reference/workflows/run-methods/timeTravel.md +1 -0
  461. package/.docs/reference/workflows/workflow.md +18 -0
  462. package/.docs/reference/workspace/local-sandbox.md +1 -1
  463. package/.docs/reference/workspace/platform-filesystem.md +3 -3
  464. package/.docs/reference/workspace/platform-sandbox.md +11 -3
  465. package/.docs/reference/workspace/process-manager.md +3 -3
  466. package/.docs/reference/workspace/sandbox.md +10 -0
  467. package/CHANGELOG.md +97 -0
  468. package/dist/index.js +1 -1
  469. package/dist/{src-BZcgzbk9.js → src-D-W-bx5t.js} +2 -2
  470. package/dist/{src-BZcgzbk9.js.map → src-D-W-bx5t.js.map} +1 -1
  471. package/dist/stdio.js +1 -1
  472. package/package.json +6 -6
  473. package/.docs/docs/capabilities/channels/other-adapters.md +0 -68
  474. package/.docs/docs/observability/integrations/bridges/datadog.md +0 -219
  475. package/.docs/docs/observability/integrations/bridges/otel.md +0 -234
  476. package/.docs/docs/observability/integrations/exporters/datadog.md +0 -321
  477. package/.docs/docs/observability/integrations/exporters/mastra-platform.md +0 -201
  478. package/.docs/docs/observability/integrations/overview.md +0 -47
  479. package/.docs/docs/observability/integrations/processors/sensitive-data-filter.md +0 -302
  480. package/.docs/guides/build-your-ui/copilotkit/channels.md +0 -86
  481. package/.docs/guides/build-your-ui/copilotkit/generative-ui.md +0 -174
  482. package/.docs/guides/deployment/mastra-workers.md +0 -576
  483. package/.docs/guides/getting-started/quickstart.md +0 -88
  484. package/.docs/guides/guide/ai-recruiter.md +0 -228
  485. package/.docs/guides/guide/chef-michel.md +0 -211
  486. package/.docs/guides/guide/code-review-bot.md +0 -228
  487. package/.docs/guides/guide/coding-agent.md +0 -392
  488. package/.docs/guides/guide/dev-assistant.md +0 -309
  489. package/.docs/guides/guide/docs-manager.md +0 -240
  490. package/.docs/guides/guide/github-actions-pr-description.md +0 -238
  491. package/.docs/guides/guide/notes-mcp-server.md +0 -418
  492. package/.docs/guides/guide/publishing-mcp-server.md +0 -137
  493. package/.docs/guides/guide/research-assistant.md +0 -350
  494. package/.docs/guides/guide/research-coordinator.md +0 -418
  495. package/.docs/guides/guide/signal-provider.md +0 -221
  496. package/.docs/guides/guide/slack-assistant.md +0 -193
  497. package/.docs/guides/guide/stock-agent.md +0 -132
  498. package/.docs/guides/guide/web-search.md +0 -322
  499. package/.docs/guides/guide/whatsapp-chat-bot.md +0 -407
  500. package/.docs/guides/index.md +0 -24
  501. package/.docs/guides/voice/realtime-voice.md +0 -430
  502. package/.docs/reference/voice/google.md +0 -290
  503. package/.docs/reference/voice/inworld.md +0 -137
  504. package/.docs/reference/voice/openai.md +0 -96
  505. package/.docs/reference/voice/playai.md +0 -82
  506. package/.docs/reference/workspace/vercel-serverless.md +0 -128
  507. /package/.docs/{guides/concepts → docs/guides}/streaming.md +0 -0
  508. /package/.docs/{reference → docs}/mastra-platform/api.md +0 -0
  509. /package/.docs/{docs/server → integrations}/auth/better-auth.md +0 -0
  510. /package/.docs/{docs/server → integrations}/auth/google.md +0 -0
  511. /package/.docs/{reference → integrations}/voice/azure.md +0 -0
  512. /package/.docs/{reference → integrations}/voice/deepgram.md +0 -0
  513. /package/.docs/{reference → integrations}/voice/elevenlabs.md +0 -0
  514. /package/.docs/{reference → integrations}/voice/mistral.md +0 -0
  515. /package/.docs/{reference → integrations}/voice/murf.md +0 -0
  516. /package/.docs/{reference → integrations}/voice/sarvam.md +0 -0
  517. /package/.docs/{reference → integrations}/voice/speechify.md +0 -0
  518. /package/.docs/{reference/voice/xai-realtime.md → integrations/voice/xai.md} +0 -0
  519. /package/.docs/{guides → reference}/migrations/agentnetwork.md +0 -0
  520. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/agent.md +0 -0
  521. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/client.md +0 -0
  522. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/deployment.md +0 -0
  523. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/evals.md +0 -0
  524. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/mastra.md +0 -0
  525. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/mcp.md +0 -0
  526. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/processors.md +0 -0
  527. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/rag.md +0 -0
  528. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/storage.md +0 -0
  529. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/vectors.md +0 -0
  530. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/voice.md +0 -0
  531. /package/.docs/{guides → reference}/migrations/upgrade-to-v1/workflows.md +0 -0
  532. /package/.docs/{guides → reference}/migrations/vnext-to-standard-apis.md +0 -0
@@ -1,418 +0,0 @@
1
- > Discover all available pages from the documentation index: https://mastra.ai/llms.txt
2
-
3
- # Building a notes MCP server
4
-
5
- In this guide, you'll learn how to build a complete MCP (Model Context Protocol) server from scratch. This server will manage a collection of markdown notes and has these features:
6
-
7
- 1. **List and Read Notes**: Allow clients to browse and view markdown files stored on the server
8
- 2. **Write Notes**: Provide a tool for creating or updating notes
9
- 3. **Offer Smart Prompts**: Generate contextual prompts, like creating a daily note template or summarizing existing content
10
-
11
- ## Prerequisites
12
-
13
- - Node.js `v22.13.0` or later installed
14
- - An API key from a supported [Model Provider](https://mastra.ai/models)
15
- - An existing Mastra project (Follow the [installation guide](https://mastra.ai/guides/getting-started/quickstart) to set up a new project)
16
-
17
- ## Adding necessary dependencies & files
18
-
19
- Before you can create an MCP server you first need to install additional dependencies and set up a boilerplate folder structure.
20
-
21
- 1. Add `@mastra/mcp` to your project:
22
-
23
- **npm**:
24
-
25
- ```bash
26
- npm install @mastra/mcp@latest
27
- ```
28
-
29
- **pnpm**:
30
-
31
- ```bash
32
- pnpm add @mastra/mcp@latest
33
- ```
34
-
35
- **Yarn**:
36
-
37
- ```bash
38
- yarn add @mastra/mcp@latest
39
- ```
40
-
41
- **Bun**:
42
-
43
- ```bash
44
- bun add @mastra/mcp@latest
45
- ```
46
-
47
- 2. After following the default [installation guide](https://mastra.ai/guides/getting-started/quickstart) your project will include files that are not relevant for this guide. You can safely remove them:
48
-
49
- ```bash
50
- rm -rf src/mastra/agents src/mastra/workflows src/mastra/tools/weather-tool.ts
51
- ```
52
-
53
- You should also change the `src/mastra/index.ts` file like so:
54
-
55
- ```ts
56
- import { Mastra } from '@mastra/core'
57
- import { PinoLogger } from '@mastra/loggers'
58
- import { LibSQLStore } from '@mastra/libsql'
59
-
60
- export const mastra = new Mastra({
61
- storage: new LibSQLStore({
62
- id: 'mastra-storage',
63
- // stores telemetry, evals, ... into memory storage, if it needs to persist, change to file:../mastra.db
64
- url: ':memory:',
65
- }),
66
- logger: new PinoLogger({
67
- name: 'Mastra',
68
- level: 'info',
69
- }),
70
- })
71
- ```
72
-
73
- 3. Create a dedicated directory for your MCP server's logic and a `notes` directory for your notes:
74
-
75
- ```bash
76
- mkdir notes src/mastra/mcp
77
- ```
78
-
79
- Create the following files:
80
-
81
- ```bash
82
- touch src/mastra/mcp/{server,resources,prompts}.ts
83
- ```
84
-
85
- - `server.ts`: Will contain the main MCP server configuration
86
- - `resources.ts`: Will handle listing and reading note files
87
- - `prompts.ts`: Will contain the logic for the smart prompts
88
-
89
- The resulting directory structure should look like this:
90
-
91
- ```text
92
- <your-project-name>/
93
- ├── notes/
94
- └── src/
95
- └── mastra/
96
- ├── index.ts
97
- ├── mcp/
98
- │ ├── server.ts
99
- │ ├── resources.ts
100
- │ └── prompts.ts
101
- └── tools/
102
- ```
103
-
104
- ## Creating the MCP server
105
-
106
- Let's add the MCP server!
107
-
108
- 1. In `src/mastra/mcp/server.ts`, define the MCP server instance:
109
-
110
- ```typescript
111
- import { MCPServer } from '@mastra/mcp'
112
-
113
- export const notes = new MCPServer({
114
- id: 'notes',
115
- name: 'Notes Server',
116
- version: '0.1.0',
117
- tools: {},
118
- })
119
- ```
120
-
121
- Register this MCP server in your Mastra instance at `src/mastra/index.ts`. The key `notes` is the public identifier for your MCP server:
122
-
123
- ```typescript
124
- import { Mastra } from '@mastra/core'
125
- import { PinoLogger } from '@mastra/loggers'
126
- import { LibSQLStore } from '@mastra/libsql'
127
- import { notes } from './mcp/server'
128
-
129
- export const mastra = new Mastra({
130
- storage: new LibSQLStore({
131
- id: 'mastra-storage',
132
- // stores telemetry, evals, ... into memory storage, if it needs to persist, change to file:../mastra.db
133
- url: ':memory:',
134
- }),
135
- logger: new PinoLogger({
136
- name: 'Mastra',
137
- level: 'info',
138
- }),
139
- mcpServers: {
140
- notes,
141
- },
142
- })
143
- ```
144
-
145
- 2. Resource handlers allow clients to discover and read the content your server manages. Implement handlers to work with markdown files in the `notes` directory. Add to the `src/mastra/mcp/resources.ts` file:
146
-
147
- ```typescript
148
- import fs from 'fs/promises'
149
- import path from 'path'
150
- import { fileURLToPath } from 'url'
151
- import type { MCPServerResources, Resource } from '@mastra/mcp'
152
-
153
- const __filename = fileURLToPath(import.meta.url)
154
- const __dirname = path.dirname(__filename)
155
- const NOTES_DIR = path.resolve(__dirname, '../../notes') // relative to the default output directory
156
-
157
- const listNoteFiles = async (): Promise<Resource[]> => {
158
- try {
159
- await fs.mkdir(NOTES_DIR, { recursive: true })
160
- const files = await fs.readdir(NOTES_DIR)
161
- return files
162
- .filter(file => file.endsWith('.md'))
163
- .map(file => {
164
- const title = file.replace('.md', '')
165
- return {
166
- uri: `notes://${title}`,
167
- name: title,
168
- description: `A note about ${title}`,
169
- mime_type: 'text/markdown',
170
- }
171
- })
172
- } catch (error) {
173
- console.error('Error listing note resources:', error)
174
- return []
175
- }
176
- }
177
-
178
- const readNoteFile = async (uri: string): Promise<string | null> => {
179
- const title = uri.replace('notes://', '')
180
- const notePath = path.join(NOTES_DIR, `${title}.md`)
181
- try {
182
- return await fs.readFile(notePath, 'utf-8')
183
- } catch (error) {
184
- if ((error as NodeJS.ErrnoException).code !== 'ENOENT') {
185
- console.error(`Error reading resource ${uri}:`, error)
186
- }
187
- return null
188
- }
189
- }
190
-
191
- export const resourceHandlers: MCPServerResources = {
192
- listResources: listNoteFiles,
193
- getResourceContent: async ({ uri }: { uri: string }) => {
194
- const content = await readNoteFile(uri)
195
- if (content === null) return { text: '' }
196
- return { text: content }
197
- },
198
- }
199
- ```
200
-
201
- Register these resource handlers in `src/mastra/mcp/server.ts`:
202
-
203
- ```typescript
204
- import { MCPServer } from '@mastra/mcp'
205
- import { resourceHandlers } from './resources'
206
-
207
- export const notes = new MCPServer({
208
- id: 'notes',
209
- name: 'Notes Server',
210
- version: '0.1.0',
211
- tools: {},
212
- resources: resourceHandlers,
213
- })
214
- ```
215
-
216
- 3. Tools are the actions your server can perform. Let's create a `write` tool. First, define the tool in `src/mastra/tools/write-note.ts`:
217
-
218
- ```typescript
219
- import { createTool } from '@mastra/core/tools'
220
- import { z } from 'zod'
221
- import { fileURLToPath } from 'url'
222
- import path from 'node:path'
223
- import fs from 'fs/promises'
224
-
225
- const __filename = fileURLToPath(import.meta.url)
226
- const __dirname = path.dirname(__filename)
227
- const NOTES_DIR = path.resolve(__dirname, '../../../notes')
228
-
229
- export const writeNoteTool = createTool({
230
- id: 'write',
231
- description: 'Write a new note or overwrite an existing one.',
232
- inputSchema: z.object({
233
- title: z.string().nonempty().describe('The title of the note. This will be the filename.'),
234
- content: z.string().nonempty().describe('The markdown content of the note.'),
235
- }),
236
- outputSchema: z.string().nonempty(),
237
- execute: async inputData => {
238
- try {
239
- const { title, content } = inputData
240
- const filePath = path.join(NOTES_DIR, `${title}.md`)
241
- await fs.mkdir(NOTES_DIR, { recursive: true })
242
- await fs.writeFile(filePath, content, 'utf-8')
243
- return `Successfully wrote to note \"${title}\".`
244
- } catch (error: any) {
245
- return `Error writing note: ${error.message}`
246
- }
247
- },
248
- })
249
- ```
250
-
251
- Register this tool in `src/mastra/mcp/server.ts`:
252
-
253
- ```typescript
254
- import { MCPServer } from '@mastra/mcp'
255
- import { resourceHandlers } from './resources'
256
- import { writeNoteTool } from '../tools/write-note'
257
-
258
- export const notes = new MCPServer({
259
- id: 'notes',
260
- name: 'Notes Server',
261
- version: '0.1.0',
262
- resources: resourceHandlers,
263
- tools: {
264
- write: writeNoteTool,
265
- },
266
- })
267
- ```
268
-
269
- 4. Prompt handlers provide ready-to-use prompts for clients. You'll add these three:
270
-
271
- - Daily note
272
- - Summarize a note
273
- - Brainstorm ideas
274
-
275
- This requires a few markdown-parsing libraries you need to install:
276
-
277
- ```bash
278
- npm install unified remark-parse gray-matter @types/unist
279
- ```
280
-
281
- Implement the prompts in `src/mastra/mcp/prompts.ts`:
282
-
283
- ```typescript
284
- import type { MCPServerPrompts } from '@mastra/mcp'
285
- import { unified } from 'unified'
286
- import remarkParse from 'remark-parse'
287
- import matter from 'gray-matter'
288
- import type { Node } from 'unist'
289
-
290
- const prompts = [
291
- {
292
- name: 'new_daily_note',
293
- description: 'Create a new daily note.',
294
- version: '1.0.0',
295
- },
296
- {
297
- name: 'summarize_note',
298
- description: 'Give me a TL;DR of the note.',
299
- version: '1.0.0',
300
- },
301
- {
302
- name: 'brainstorm_ideas',
303
- description: 'Brainstorm new ideas based on a note.',
304
- version: '1.0.0',
305
- },
306
- ]
307
-
308
- function stringifyNode(node: Node): string {
309
- if ('value' in node && typeof node.value === 'string') return node.value
310
- if ('children' in node && Array.isArray(node.children))
311
- return node.children.map(stringifyNode).join('')
312
- return ''
313
- }
314
-
315
- export async function analyzeMarkdown(md: string) {
316
- const { content } = matter(md)
317
- const tree = unified().use(remarkParse).parse(content)
318
- const headings: string[] = []
319
- const wordCounts: Record<string, number> = {}
320
- let currentHeading = 'untitled'
321
- wordCounts[currentHeading] = 0
322
- tree.children.forEach(node => {
323
- if (node.type === 'heading' && node.depth === 2) {
324
- currentHeading = stringifyNode(node)
325
- headings.push(currentHeading)
326
- wordCounts[currentHeading] = 0
327
- } else {
328
- const textContent = stringifyNode(node)
329
- if (textContent.trim()) {
330
- wordCounts[currentHeading] =
331
- (wordCounts[currentHeading] || 0) + textContent.split(/\\s+/).length
332
- }
333
- }
334
- })
335
- return { headings, wordCounts }
336
- }
337
-
338
- const getPromptMessages: MCPServerPrompts['getPromptMessages'] = async ({ name, args }) => {
339
- switch (name) {
340
- case 'new_daily_note':
341
- const today = new Date().toISOString().split('T')[0]
342
- return [
343
- {
344
- role: 'user',
345
- content: {
346
- type: 'text',
347
- text: `Create a new note titled \"${today}\" with sections: \"## Tasks\", \"## Meetings\", \"## Notes\".`,
348
- },
349
- },
350
- ]
351
- case 'summarize_note':
352
- if (!args?.noteContent) throw new Error('No content provided')
353
- const metaSum = await analyzeMarkdown(args.noteContent as string)
354
- return [
355
- {
356
- role: 'user',
357
- content: {
358
- type: 'text',
359
- text: `Summarize each section in ≤ 3 bullets.\\n\\n### Outline\\n${metaSum.headings.map(h => `- ${h} (${metaSum.wordCounts[h] || 0} words)`).join('\\n')}`.trim(),
360
- },
361
- },
362
- ]
363
- case 'brainstorm_ideas':
364
- if (!args?.noteContent) throw new Error('No content provided')
365
- const metaBrain = await analyzeMarkdown(args.noteContent as string)
366
- return [
367
- {
368
- role: 'user',
369
- content: {
370
- type: 'text',
371
- text: `Brainstorm 3 ideas for underdeveloped sections below ${args?.topic ? `on ${args.topic}` : '.'}\\n\\nUnderdeveloped sections:\\n${metaBrain.headings.length ? metaBrain.headings.map(h => `- ${h}`).join('\\n') : '- (none, pick any)'}`,
372
- },
373
- },
374
- ]
375
- default:
376
- throw new Error(`Prompt \"${name}\" not found`)
377
- }
378
- }
379
-
380
- export const promptHandlers: MCPServerPrompts = {
381
- listPrompts: async () => prompts,
382
- getPromptMessages,
383
- }
384
- ```
385
-
386
- Register these prompt handlers in `src/mastra/mcp/server.ts`:
387
-
388
- ```typescript
389
- import { MCPServer } from '@mastra/mcp'
390
- import { resourceHandlers } from './resources'
391
- import { writeNoteTool } from '../tools/write-note'
392
- import { promptHandlers } from './prompts'
393
-
394
- export const notes = new MCPServer({
395
- id: 'notes',
396
- name: 'Notes Server',
397
- version: '0.1.0',
398
- resources: resourceHandlers,
399
- prompts: promptHandlers,
400
- tools: {
401
- write: writeNoteTool,
402
- },
403
- })
404
- ```
405
-
406
- ## Run the server
407
-
408
- Great, you've authored your first MCP server! Now you can try it out by starting the Mastra dev server and opening [Studio](https://mastra.ai/docs/studio/overview):
409
-
410
- ```bash
411
- npm run dev
412
- ```
413
-
414
- Open [`http://localhost:4111`](http://localhost:4111) in your browser. In the left sidebar, select **MCP Servers**. Select the **notes** MCP server.
415
-
416
- You'll now be presented with instructions on how to add the MCP server to your IDE. You're able to use this MCP server with any MCP Client. On the right side under **Available Tools** you can also select the **write** tool.
417
-
418
- Inside the **write** tool, try it out by providing `test` as a name and `this is a test` for the markdown content. After selecting **Submit** you'll have a new `test.md` file inside `notes`.
@@ -1,137 +0,0 @@
1
- > Discover all available pages from the documentation index: https://mastra.ai/llms.txt
2
-
3
- # Publishing an MCP server
4
-
5
- This example guides you through setting up a basic Mastra MCPServer using the stdio transport, building it, and preparing it for publishing to NPM.
6
-
7
- ## Install dependencies
8
-
9
- Install the necessary packages:
10
-
11
- **npm**:
12
-
13
- ```bash
14
- npm install @mastra/mcp @mastra/core tsup
15
- ```
16
-
17
- **pnpm**:
18
-
19
- ```bash
20
- pnpm add @mastra/mcp @mastra/core tsup
21
- ```
22
-
23
- **Yarn**:
24
-
25
- ```bash
26
- yarn add @mastra/mcp @mastra/core tsup
27
- ```
28
-
29
- **Bun**:
30
-
31
- ```bash
32
- bun add @mastra/mcp @mastra/core tsup
33
- ```
34
-
35
- ## Setting up an MCP server
36
-
37
- 1. Create a file for your stdio server, for example, `src/mastra/stdio.ts`.
38
-
39
- 2. Add the following code to the file. Remember to import your actual Mastra tools and name the server appropriately.
40
-
41
- ```typescript
42
- #!/usr/bin/env node
43
- import { MCPServer } from '@mastra/mcp'
44
- import { weatherTool } from './tools'
45
-
46
- const server = new MCPServer({
47
- name: 'my-mcp-server',
48
- version: '1.0.0',
49
- tools: { weatherTool },
50
- })
51
-
52
- server.startStdio().catch(error => {
53
- console.error('Error running MCP server:', error)
54
- process.exit(1)
55
- })
56
- ```
57
-
58
- 3. Update your `package.json` to include the `bin` entry pointing to your built server file and a script to build the server with both ESM and CJS outputs.
59
-
60
- ```json
61
- {
62
- "bin": "dist/stdio.mjs",
63
- "scripts": {
64
- "build:mcp": "tsup src/mastra/stdio.ts --format esm,cjs --no-splitting --dts && echo '#!/usr/bin/env node' | cat - dist/stdio.mjs > temp && mv temp dist/stdio.mjs && chmod +x dist/stdio.mjs"
65
- }
66
- }
67
- ```
68
-
69
- The build command generates both ESM (`.mjs`) and CJS (`.cjs`) outputs for maximum compatibility. The shebang (`#!/usr/bin/env node`) is prepended to the ESM artifact to make it directly executable, and the `bin` entry points to this file.
70
-
71
- 4. Run the build command:
72
-
73
- **npm**:
74
-
75
- ```bash
76
- npm run build:mcp
77
- ```
78
-
79
- **pnpm**:
80
-
81
- ```bash
82
- pnpm run build:mcp
83
- ```
84
-
85
- **Yarn**:
86
-
87
- ```bash
88
- yarn build:mcp
89
- ```
90
-
91
- **Bun**:
92
-
93
- ```bash
94
- bun run build:mcp
95
- ```
96
-
97
- This will compile your server code into both ESM and CJS formats and make the ESM output file executable. On Unix-like systems, the `chmod +x` step makes the file directly executable. Windows users may need to use WSL or handle execution through Node.js directly.
98
-
99
- ## Publishing to NPM
100
-
101
- To make your MCP server available for others (or yourself) to use via `npx` or as a dependency, you can publish it to NPM.
102
-
103
- 1. Ensure you have an NPM account and are logged in (`npm login`).
104
-
105
- 2. Make sure your package name in `package.json` is unique and available.
106
-
107
- 3. Run the publish command from your project root after building:
108
-
109
- ```bash
110
- npm publish --access public
111
- ```
112
-
113
- For more details on publishing packages, refer to the [NPM documentation](https://docs.npmjs.com/creating-and-publishing-scoped-public-packages).
114
-
115
- ## Using a published MCP server
116
-
117
- Once published, your MCP server can be used by an `MCPClient` by specifying the command to run your package. You can also use any other MCP client like Claude desktop, Cursor, or Windsurf.
118
-
119
- ```typescript
120
- import { MCPClient } from '@mastra/mcp'
121
-
122
- const mcp = new MCPClient({
123
- servers: {
124
- // Give this MCP server instance a name
125
- yourServerName: {
126
- command: 'npx',
127
- args: ['-y', '@your-org-name/your-package-name@latest'], // Replace with your package name
128
- },
129
- },
130
- })
131
-
132
- // You can then get tools or toolsets from this configuration to use in your agent
133
- const tools = await mcp.listTools()
134
- const toolsets = await mcp.listToolsets()
135
- ```
136
-
137
- Note: If you published without an organization scope, the `args` might be `["-y", "your-package-name@latest"]`.