@mastra/mcp-docs-server 0.0.0-commonjs-20250414101718

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 (254) hide show
  1. package/.docs/organized/changelogs/%40mastra%2Fastra.md +302 -0
  2. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +302 -0
  3. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +161 -0
  4. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +302 -0
  5. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +110 -0
  6. package/.docs/organized/changelogs/%40mastra%2Fcore.md +302 -0
  7. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +302 -0
  8. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +302 -0
  9. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +302 -0
  10. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +302 -0
  11. package/.docs/organized/changelogs/%40mastra%2Fevals.md +302 -0
  12. package/.docs/organized/changelogs/%40mastra%2Ffirecrawl.md +302 -0
  13. package/.docs/organized/changelogs/%40mastra%2Fgithub.md +302 -0
  14. package/.docs/organized/changelogs/%40mastra%2Floggers.md +302 -0
  15. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +302 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +26 -0
  17. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +302 -0
  18. package/.docs/organized/changelogs/%40mastra%2Fmem0.md +196 -0
  19. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +302 -0
  20. package/.docs/organized/changelogs/%40mastra%2Fpg.md +302 -0
  21. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +302 -0
  22. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +302 -0
  23. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +302 -0
  24. package/.docs/organized/changelogs/%40mastra%2Frag.md +302 -0
  25. package/.docs/organized/changelogs/%40mastra%2Fragie.md +302 -0
  26. package/.docs/organized/changelogs/%40mastra%2Fserver.md +302 -0
  27. package/.docs/organized/changelogs/%40mastra%2Fspeech-azure.md +302 -0
  28. package/.docs/organized/changelogs/%40mastra%2Fspeech-deepgram.md +302 -0
  29. package/.docs/organized/changelogs/%40mastra%2Fspeech-elevenlabs.md +302 -0
  30. package/.docs/organized/changelogs/%40mastra%2Fspeech-google.md +302 -0
  31. package/.docs/organized/changelogs/%40mastra%2Fspeech-ibm.md +302 -0
  32. package/.docs/organized/changelogs/%40mastra%2Fspeech-murf.md +302 -0
  33. package/.docs/organized/changelogs/%40mastra%2Fspeech-openai.md +302 -0
  34. package/.docs/organized/changelogs/%40mastra%2Fspeech-playai.md +302 -0
  35. package/.docs/organized/changelogs/%40mastra%2Fspeech-replicate.md +302 -0
  36. package/.docs/organized/changelogs/%40mastra%2Fspeech-speechify.md +302 -0
  37. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +302 -0
  38. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +302 -0
  39. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +302 -0
  40. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +250 -0
  41. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +250 -0
  42. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +302 -0
  43. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +302 -0
  44. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +302 -0
  45. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +302 -0
  46. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +302 -0
  47. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +302 -0
  48. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +302 -0
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +302 -0
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +302 -0
  51. package/.docs/organized/changelogs/create-mastra.md +302 -0
  52. package/.docs/organized/changelogs/mastra.md +302 -0
  53. package/.docs/organized/code-examples/agent-network.md +282 -0
  54. package/.docs/organized/code-examples/agent.md +388 -0
  55. package/.docs/organized/code-examples/ai-sdk-useChat.md +378 -0
  56. package/.docs/organized/code-examples/assistant-ui.md +37 -0
  57. package/.docs/organized/code-examples/bird-checker-with-express.md +235 -0
  58. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +360 -0
  59. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +250 -0
  60. package/.docs/organized/code-examples/client-side-tools.md +69 -0
  61. package/.docs/organized/code-examples/crypto-chatbot.md +96 -0
  62. package/.docs/organized/code-examples/fireworks-r1.md +159 -0
  63. package/.docs/organized/code-examples/mcp-registry-registry.md +63 -0
  64. package/.docs/organized/code-examples/memory-todo-agent.md +164 -0
  65. package/.docs/organized/code-examples/memory-with-context.md +167 -0
  66. package/.docs/organized/code-examples/memory-with-libsql.md +204 -0
  67. package/.docs/organized/code-examples/memory-with-mem0.md +121 -0
  68. package/.docs/organized/code-examples/memory-with-pg.md +224 -0
  69. package/.docs/organized/code-examples/memory-with-upstash.md +268 -0
  70. package/.docs/organized/code-examples/quick-start.md +129 -0
  71. package/.docs/organized/code-examples/stock-price-tool.md +124 -0
  72. package/.docs/organized/code-examples/weather-agent.md +353 -0
  73. package/.docs/organized/code-examples/workflow-ai-recruiter.md +159 -0
  74. package/.docs/organized/code-examples/workflow-with-inline-steps.md +111 -0
  75. package/.docs/organized/code-examples/workflow-with-memory.md +393 -0
  76. package/.docs/organized/code-examples/workflow-with-separate-steps.md +131 -0
  77. package/.docs/raw/agents/adding-tools.mdx +317 -0
  78. package/.docs/raw/agents/adding-voice.mdx +175 -0
  79. package/.docs/raw/agents/agent-memory.mdx +62 -0
  80. package/.docs/raw/agents/mcp-guide.mdx +215 -0
  81. package/.docs/raw/agents/overview.mdx +303 -0
  82. package/.docs/raw/community/discord.mdx +12 -0
  83. package/.docs/raw/community/licensing.mdx +63 -0
  84. package/.docs/raw/deployment/client.mdx +120 -0
  85. package/.docs/raw/deployment/deployment.mdx +127 -0
  86. package/.docs/raw/deployment/server.mdx +282 -0
  87. package/.docs/raw/evals/custom-eval.mdx +22 -0
  88. package/.docs/raw/evals/overview.mdx +95 -0
  89. package/.docs/raw/evals/running-in-ci.mdx +81 -0
  90. package/.docs/raw/evals/textual-evals.mdx +54 -0
  91. package/.docs/raw/faq/index.mdx +63 -0
  92. package/.docs/raw/frameworks/ai-sdk.mdx +296 -0
  93. package/.docs/raw/frameworks/next-js.mdx +238 -0
  94. package/.docs/raw/getting-started/installation.mdx +442 -0
  95. package/.docs/raw/getting-started/mcp-docs-server.mdx +141 -0
  96. package/.docs/raw/getting-started/project-structure.mdx +80 -0
  97. package/.docs/raw/index.mdx +22 -0
  98. package/.docs/raw/integrations/index.mdx +213 -0
  99. package/.docs/raw/local-dev/add-to-existing-project.mdx +48 -0
  100. package/.docs/raw/local-dev/creating-a-new-project.mdx +54 -0
  101. package/.docs/raw/local-dev/mastra-dev.mdx +108 -0
  102. package/.docs/raw/memory/memory-processors.mdx +131 -0
  103. package/.docs/raw/memory/overview.mdx +119 -0
  104. package/.docs/raw/memory/semantic-recall.mdx +122 -0
  105. package/.docs/raw/memory/working-memory.mdx +87 -0
  106. package/.docs/raw/observability/logging.mdx +38 -0
  107. package/.docs/raw/observability/nextjs-tracing.mdx +108 -0
  108. package/.docs/raw/observability/tracing.mdx +115 -0
  109. package/.docs/raw/rag/chunking-and-embedding.mdx +156 -0
  110. package/.docs/raw/rag/overview.mdx +85 -0
  111. package/.docs/raw/rag/retrieval.mdx +365 -0
  112. package/.docs/raw/rag/vector-databases.mdx +340 -0
  113. package/.docs/raw/reference/agents/createTool.mdx +229 -0
  114. package/.docs/raw/reference/agents/generate.mdx +334 -0
  115. package/.docs/raw/reference/agents/getAgent.mdx +54 -0
  116. package/.docs/raw/reference/agents/stream.mdx +369 -0
  117. package/.docs/raw/reference/cli/build.mdx +55 -0
  118. package/.docs/raw/reference/cli/dev.mdx +134 -0
  119. package/.docs/raw/reference/cli/init.mdx +43 -0
  120. package/.docs/raw/reference/client-js/agents.mdx +107 -0
  121. package/.docs/raw/reference/client-js/error-handling.mdx +38 -0
  122. package/.docs/raw/reference/client-js/logs.mdx +24 -0
  123. package/.docs/raw/reference/client-js/memory.mdx +97 -0
  124. package/.docs/raw/reference/client-js/telemetry.mdx +20 -0
  125. package/.docs/raw/reference/client-js/tools.mdx +44 -0
  126. package/.docs/raw/reference/client-js/vectors.mdx +79 -0
  127. package/.docs/raw/reference/client-js/workflows.mdx +136 -0
  128. package/.docs/raw/reference/core/mastra-class.mdx +232 -0
  129. package/.docs/raw/reference/deployer/cloudflare.mdx +207 -0
  130. package/.docs/raw/reference/deployer/deployer.mdx +159 -0
  131. package/.docs/raw/reference/deployer/netlify.mdx +109 -0
  132. package/.docs/raw/reference/deployer/vercel.mdx +117 -0
  133. package/.docs/raw/reference/evals/answer-relevancy.mdx +186 -0
  134. package/.docs/raw/reference/evals/bias.mdx +186 -0
  135. package/.docs/raw/reference/evals/completeness.mdx +174 -0
  136. package/.docs/raw/reference/evals/content-similarity.mdx +183 -0
  137. package/.docs/raw/reference/evals/context-position.mdx +190 -0
  138. package/.docs/raw/reference/evals/context-precision.mdx +189 -0
  139. package/.docs/raw/reference/evals/context-relevancy.mdx +188 -0
  140. package/.docs/raw/reference/evals/contextual-recall.mdx +191 -0
  141. package/.docs/raw/reference/evals/faithfulness.mdx +193 -0
  142. package/.docs/raw/reference/evals/hallucination.mdx +219 -0
  143. package/.docs/raw/reference/evals/keyword-coverage.mdx +176 -0
  144. package/.docs/raw/reference/evals/prompt-alignment.mdx +238 -0
  145. package/.docs/raw/reference/evals/summarization.mdx +205 -0
  146. package/.docs/raw/reference/evals/textual-difference.mdx +161 -0
  147. package/.docs/raw/reference/evals/tone-consistency.mdx +181 -0
  148. package/.docs/raw/reference/evals/toxicity.mdx +165 -0
  149. package/.docs/raw/reference/index.mdx +12 -0
  150. package/.docs/raw/reference/memory/Memory.mdx +212 -0
  151. package/.docs/raw/reference/memory/createThread.mdx +95 -0
  152. package/.docs/raw/reference/memory/getThreadById.mdx +46 -0
  153. package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +48 -0
  154. package/.docs/raw/reference/memory/query.mdx +167 -0
  155. package/.docs/raw/reference/networks/agent-network.mdx +159 -0
  156. package/.docs/raw/reference/observability/create-logger.mdx +106 -0
  157. package/.docs/raw/reference/observability/logger.mdx +55 -0
  158. package/.docs/raw/reference/observability/otel-config.mdx +120 -0
  159. package/.docs/raw/reference/observability/providers/braintrust.mdx +40 -0
  160. package/.docs/raw/reference/observability/providers/dash0.mdx +40 -0
  161. package/.docs/raw/reference/observability/providers/index.mdx +16 -0
  162. package/.docs/raw/reference/observability/providers/laminar.mdx +41 -0
  163. package/.docs/raw/reference/observability/providers/langfuse.mdx +51 -0
  164. package/.docs/raw/reference/observability/providers/langsmith.mdx +48 -0
  165. package/.docs/raw/reference/observability/providers/langwatch.mdx +45 -0
  166. package/.docs/raw/reference/observability/providers/new-relic.mdx +40 -0
  167. package/.docs/raw/reference/observability/providers/signoz.mdx +40 -0
  168. package/.docs/raw/reference/observability/providers/traceloop.mdx +40 -0
  169. package/.docs/raw/reference/rag/astra.mdx +258 -0
  170. package/.docs/raw/reference/rag/chroma.mdx +281 -0
  171. package/.docs/raw/reference/rag/chunk.mdx +235 -0
  172. package/.docs/raw/reference/rag/document.mdx +127 -0
  173. package/.docs/raw/reference/rag/embeddings.mdx +160 -0
  174. package/.docs/raw/reference/rag/extract-params.mdx +226 -0
  175. package/.docs/raw/reference/rag/graph-rag.mdx +182 -0
  176. package/.docs/raw/reference/rag/libsql.mdx +357 -0
  177. package/.docs/raw/reference/rag/metadata-filters.mdx +298 -0
  178. package/.docs/raw/reference/rag/pg.mdx +477 -0
  179. package/.docs/raw/reference/rag/pinecone.mdx +281 -0
  180. package/.docs/raw/reference/rag/qdrant.mdx +236 -0
  181. package/.docs/raw/reference/rag/rerank.mdx +212 -0
  182. package/.docs/raw/reference/rag/turbopuffer.mdx +249 -0
  183. package/.docs/raw/reference/rag/upstash.mdx +247 -0
  184. package/.docs/raw/reference/rag/vectorize.mdx +298 -0
  185. package/.docs/raw/reference/storage/libsql.mdx +74 -0
  186. package/.docs/raw/reference/storage/postgresql.mdx +48 -0
  187. package/.docs/raw/reference/storage/upstash.mdx +86 -0
  188. package/.docs/raw/reference/tools/client.mdx +207 -0
  189. package/.docs/raw/reference/tools/document-chunker-tool.mdx +141 -0
  190. package/.docs/raw/reference/tools/graph-rag-tool.mdx +154 -0
  191. package/.docs/raw/reference/tools/mcp-configuration.mdx +206 -0
  192. package/.docs/raw/reference/tools/vector-query-tool.mdx +212 -0
  193. package/.docs/raw/reference/voice/composite-voice.mdx +140 -0
  194. package/.docs/raw/reference/voice/deepgram.mdx +164 -0
  195. package/.docs/raw/reference/voice/elevenlabs.mdx +216 -0
  196. package/.docs/raw/reference/voice/google.mdx +198 -0
  197. package/.docs/raw/reference/voice/mastra-voice.mdx +394 -0
  198. package/.docs/raw/reference/voice/murf.mdx +251 -0
  199. package/.docs/raw/reference/voice/openai-realtime.mdx +431 -0
  200. package/.docs/raw/reference/voice/openai.mdx +168 -0
  201. package/.docs/raw/reference/voice/playai.mdx +159 -0
  202. package/.docs/raw/reference/voice/sarvam.mdx +260 -0
  203. package/.docs/raw/reference/voice/speechify.mdx +145 -0
  204. package/.docs/raw/reference/voice/voice.answer.mdx +122 -0
  205. package/.docs/raw/reference/voice/voice.connect.mdx +124 -0
  206. package/.docs/raw/reference/voice/voice.listen.mdx +195 -0
  207. package/.docs/raw/reference/voice/voice.on.mdx +189 -0
  208. package/.docs/raw/reference/voice/voice.send.mdx +118 -0
  209. package/.docs/raw/reference/voice/voice.speak.mdx +203 -0
  210. package/.docs/raw/reference/workflows/after.mdx +88 -0
  211. package/.docs/raw/reference/workflows/afterEvent.mdx +76 -0
  212. package/.docs/raw/reference/workflows/commit.mdx +37 -0
  213. package/.docs/raw/reference/workflows/createRun.mdx +77 -0
  214. package/.docs/raw/reference/workflows/else.mdx +72 -0
  215. package/.docs/raw/reference/workflows/events.mdx +305 -0
  216. package/.docs/raw/reference/workflows/execute.mdx +110 -0
  217. package/.docs/raw/reference/workflows/if.mdx +107 -0
  218. package/.docs/raw/reference/workflows/resume.mdx +155 -0
  219. package/.docs/raw/reference/workflows/resumeWithEvent.mdx +133 -0
  220. package/.docs/raw/reference/workflows/snapshots.mdx +207 -0
  221. package/.docs/raw/reference/workflows/start.mdx +84 -0
  222. package/.docs/raw/reference/workflows/step-class.mdx +100 -0
  223. package/.docs/raw/reference/workflows/step-condition.mdx +134 -0
  224. package/.docs/raw/reference/workflows/step-function.mdx +92 -0
  225. package/.docs/raw/reference/workflows/step-options.mdx +69 -0
  226. package/.docs/raw/reference/workflows/step-retries.mdx +203 -0
  227. package/.docs/raw/reference/workflows/suspend.mdx +70 -0
  228. package/.docs/raw/reference/workflows/then.mdx +74 -0
  229. package/.docs/raw/reference/workflows/until.mdx +165 -0
  230. package/.docs/raw/reference/workflows/watch.mdx +118 -0
  231. package/.docs/raw/reference/workflows/while.mdx +168 -0
  232. package/.docs/raw/reference/workflows/workflow.mdx +233 -0
  233. package/.docs/raw/storage/overview.mdx +378 -0
  234. package/.docs/raw/voice/overview.mdx +135 -0
  235. package/.docs/raw/voice/speech-to-text.mdx +45 -0
  236. package/.docs/raw/voice/text-to-speech.mdx +52 -0
  237. package/.docs/raw/voice/voice-to-voice.mdx +310 -0
  238. package/.docs/raw/workflows/control-flow.mdx +778 -0
  239. package/.docs/raw/workflows/dynamic-workflows.mdx +236 -0
  240. package/.docs/raw/workflows/error-handling.mdx +183 -0
  241. package/.docs/raw/workflows/nested-workflows.mdx +352 -0
  242. package/.docs/raw/workflows/overview.mdx +203 -0
  243. package/.docs/raw/workflows/steps.mdx +108 -0
  244. package/.docs/raw/workflows/suspend-and-resume.mdx +404 -0
  245. package/.docs/raw/workflows/variables.mdx +313 -0
  246. package/LICENSE.md +46 -0
  247. package/README.md +129 -0
  248. package/dist/_tsup-dts-rollup.d.ts +149 -0
  249. package/dist/chunk-QWYMT5LP.js +194 -0
  250. package/dist/prepare-docs/prepare.d.ts +1 -0
  251. package/dist/prepare-docs/prepare.js +1 -0
  252. package/dist/stdio.d.ts +1 -0
  253. package/dist/stdio.js +518 -0
  254. package/package.json +60 -0
@@ -0,0 +1,357 @@
1
+ ---
2
+ title: "Default Vector Store | Vector Databases | RAG | Mastra Docs"
3
+ description: Documentation for the LibSQLVector class in Mastra, which provides vector search using LibSQL with vector extensions.
4
+ ---
5
+
6
+ # LibSQLVector Store
7
+
8
+ The LibSQL storage implementation provides a SQLite-compatible vector search [LibSQL](https://github.com/tursodatabase/libsql), a fork of SQLite with vector extensions, and [Turso](https://turso.tech/) with vector extensions, offering a lightweight and efficient vector database solution.
9
+ It's part of the `@mastra/core` package and offers efficient vector similarity search with metadata filtering.
10
+
11
+ ## Installation
12
+
13
+ Default vector store is included in the core package:
14
+
15
+ ```bash copy
16
+ npm install @mastra/core
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ```typescript copy showLineNumbers
22
+ import { LibSQLVector } from "@mastra/core/vector/libsql";
23
+
24
+ // Create a new vector store instance
25
+ const store = new LibSQLVector({
26
+ connectionUrl: process.env.DATABASE_URL,
27
+ // Optional: for Turso cloud databases
28
+ authToken: process.env.DATABASE_AUTH_TOKEN,
29
+ });
30
+
31
+ // Create an index
32
+ await store.createIndex({
33
+ indexName: "myCollection",
34
+ dimension: 1536,
35
+ });
36
+
37
+ // Add vectors with metadata
38
+ const vectors = [[0.1, 0.2, ...], [0.3, 0.4, ...]];
39
+ const metadata = [
40
+ { text: "first document", category: "A" },
41
+ { text: "second document", category: "B" }
42
+ ];
43
+ await store.upsert({
44
+ indexName: "myCollection",
45
+ vectors,
46
+ metadata,
47
+ });
48
+
49
+ // Query similar vectors
50
+ const queryVector = [0.1, 0.2, ...];
51
+ const results = await store.query({
52
+ indexName: "myCollection",
53
+ queryVector,
54
+ topK: 10, // top K results
55
+ filter: { category: "A" } // optional metadata filter
56
+ });
57
+ ```
58
+
59
+ ## Constructor Options
60
+
61
+ <PropertiesTable
62
+ content={[
63
+ {
64
+ name: "connectionUrl",
65
+ type: "string",
66
+ description:
67
+ "LibSQL database URL. Use ':memory:' for in-memory database, 'file:dbname.db' for local file, or a LibSQL-compatible connection string like 'libsql://your-database.turso.io'.",
68
+ },
69
+ {
70
+ name: "authToken",
71
+ type: "string",
72
+ isOptional: true,
73
+ description: "Authentication token for Turso cloud databases",
74
+ },
75
+ {
76
+ name: "syncUrl",
77
+ type: "string",
78
+ isOptional: true,
79
+ description: "URL for database replication (Turso specific)",
80
+ },
81
+ {
82
+ name: "syncInterval",
83
+ type: "number",
84
+ isOptional: true,
85
+ description:
86
+ "Interval in milliseconds for database sync (Turso specific)",
87
+ },
88
+ ]}
89
+ />
90
+
91
+ ## Methods
92
+
93
+ ### createIndex()
94
+
95
+ Creates a new vector collection. The index name must start with a letter or underscore and can only contain letters, numbers, and underscores. The dimension must be a positive integer.
96
+
97
+ <PropertiesTable
98
+ content={[
99
+ {
100
+ name: "indexName",
101
+ type: "string",
102
+ description: "Name of the index to create",
103
+ },
104
+ {
105
+ name: "dimension",
106
+ type: "number",
107
+ description: "Vector dimension size (must match your embedding model)",
108
+ },
109
+ {
110
+ name: "metric",
111
+ type: "'cosine' | 'euclidean' | 'dotproduct'",
112
+ isOptional: true,
113
+ defaultValue: "cosine",
114
+ description:
115
+ "Distance metric for similarity search. Note: Currently only cosine similarity is supported by LibSQL.",
116
+ },
117
+ ]}
118
+ />
119
+
120
+ ### upsert()
121
+
122
+ Adds or updates vectors and their metadata in the index. Uses a transaction to ensure all vectors are inserted atomically - if any insert fails, the entire operation is rolled back.
123
+
124
+ <PropertiesTable
125
+ content={[
126
+ {
127
+ name: "indexName",
128
+ type: "string",
129
+ description: "Name of the index to insert into",
130
+ },
131
+ {
132
+ name: "vectors",
133
+ type: "number[][]",
134
+ description: "Array of embedding vectors",
135
+ },
136
+ {
137
+ name: "metadata",
138
+ type: "Record<string, any>[]",
139
+ isOptional: true,
140
+ description: "Metadata for each vector",
141
+ },
142
+ {
143
+ name: "ids",
144
+ type: "string[]",
145
+ isOptional: true,
146
+ description: "Optional vector IDs (auto-generated if not provided)",
147
+ },
148
+ ]}
149
+ />
150
+
151
+ ### query()
152
+
153
+ Searches for similar vectors with optional metadata filtering.
154
+
155
+ <PropertiesTable
156
+ content={[
157
+ {
158
+ name: "indexName",
159
+ type: "string",
160
+ description: "Name of the index to search in",
161
+ },
162
+ {
163
+ name: "queryVector",
164
+ type: "number[]",
165
+ description: "Query vector to find similar vectors for",
166
+ },
167
+ {
168
+ name: "topK",
169
+ type: "number",
170
+ isOptional: true,
171
+ defaultValue: "10",
172
+ description: "Number of results to return",
173
+ },
174
+ {
175
+ name: "filter",
176
+ type: "Filter",
177
+ isOptional: true,
178
+ description: "Metadata filters",
179
+ },
180
+ {
181
+ name: "includeVector",
182
+ type: "boolean",
183
+ isOptional: true,
184
+ defaultValue: "false",
185
+ description: "Whether to include vector data in results",
186
+ },
187
+ {
188
+ name: "minScore",
189
+ type: "number",
190
+ isOptional: true,
191
+ defaultValue: "0",
192
+ description: "Minimum similarity score threshold",
193
+ },
194
+ ]}
195
+ />
196
+
197
+ ### describeIndex()
198
+
199
+ Gets information about an index.
200
+
201
+ <PropertiesTable
202
+ content={[
203
+ {
204
+ name: "indexName",
205
+ type: "string",
206
+ description: "Name of the index to describe",
207
+ },
208
+ ]}
209
+ />
210
+
211
+ Returns:
212
+
213
+ ```typescript copy
214
+ interface IndexStats {
215
+ dimension: number;
216
+ count: number;
217
+ metric: "cosine" | "euclidean" | "dotproduct";
218
+ }
219
+ ```
220
+
221
+ ### deleteIndex()
222
+
223
+ Deletes an index and all its data.
224
+
225
+ <PropertiesTable
226
+ content={[
227
+ {
228
+ name: "indexName",
229
+ type: "string",
230
+ description: "Name of the index to delete",
231
+ },
232
+ ]}
233
+ />
234
+
235
+ ### listIndexes()
236
+
237
+ Lists all vector indexes in the database.
238
+
239
+ Returns: `Promise<string[]>`
240
+
241
+ ### truncateIndex()
242
+
243
+ Removes all vectors from an index while keeping the index structure.
244
+
245
+ <PropertiesTable
246
+ content={[
247
+ {
248
+ name: "indexName",
249
+ type: "string",
250
+ description: "Name of the index to truncate",
251
+ },
252
+ ]}
253
+ />
254
+
255
+ ### updateIndexById()
256
+
257
+ Updates a specific vector entry by its ID with new vector data and/or metadata.
258
+
259
+ <PropertiesTable
260
+ content={[
261
+ {
262
+ name: "indexName",
263
+ type: "string",
264
+ description: "Name of the index containing the vector",
265
+ },
266
+ {
267
+ name: "id",
268
+ type: "string",
269
+ description: "ID of the vector entry to update",
270
+ },
271
+ {
272
+ name: "update",
273
+ type: "object",
274
+ description: "Update data containing vector and/or metadata",
275
+ },
276
+ {
277
+ name: "update.vector",
278
+ type: "number[]",
279
+ isOptional: true,
280
+ description: "New vector data to update",
281
+ },
282
+ {
283
+ name: "update.metadata",
284
+ type: "Record<string, any>",
285
+ isOptional: true,
286
+ description: "New metadata to update",
287
+ },
288
+ ]}
289
+ />
290
+
291
+ ### deleteIndexById()
292
+
293
+ Deletes a specific vector entry from an index by its ID.
294
+
295
+ <PropertiesTable
296
+ content={[
297
+ {
298
+ name: "indexName",
299
+ type: "string",
300
+ description: "Name of the index containing the vector",
301
+ },
302
+ {
303
+ name: "id",
304
+ type: "string",
305
+ description: "ID of the vector entry to delete",
306
+ },
307
+ ]}
308
+ />
309
+
310
+ ## Response Types
311
+
312
+ Query results are returned in this format:
313
+
314
+ ```typescript copy
315
+ interface QueryResult {
316
+ id: string;
317
+ score: number;
318
+ metadata: Record<string, any>;
319
+ vector?: number[]; // Only included if includeVector is true
320
+ }
321
+ ```
322
+
323
+ ## Error Handling
324
+
325
+ The store throws specific errors for different failure cases:
326
+
327
+ ```typescript copy
328
+ try {
329
+ await store.query({
330
+ indexName: "my-collection",
331
+ queryVector: queryVector,
332
+ });
333
+ } catch (error) {
334
+ // Handle specific error cases
335
+ if (error.message.includes("Invalid index name format")) {
336
+ console.error(
337
+ "Index name must start with a letter/underscore and contain only alphanumeric characters",
338
+ );
339
+ } else if (error.message.includes("Table not found")) {
340
+ console.error("The specified index does not exist");
341
+ } else {
342
+ console.error("Vector store error:", error.message);
343
+ }
344
+ }
345
+ ```
346
+
347
+ Common error cases include:
348
+
349
+ - Invalid index name format
350
+ - Invalid vector dimensions
351
+ - Table/index not found
352
+ - Database connection issues
353
+ - Transaction failures during upsert
354
+
355
+ ## Related
356
+
357
+ - [Metadata Filters](./metadata-filters)
@@ -0,0 +1,298 @@
1
+ ---
2
+ title: "Reference: Metadata Filters | Metadata Filtering | RAG | Mastra Docs"
3
+ description: Documentation for metadata filtering capabilities in Mastra, which allow for precise querying of vector search results across different vector stores.
4
+ ---
5
+
6
+ # Metadata Filters
7
+
8
+ Mastra provides a unified metadata filtering syntax across all vector stores, based on MongoDB/Sift query syntax. Each vector store translates these filters into their native format.
9
+
10
+ ## Basic Example
11
+
12
+ ```typescript
13
+ import { PgVector } from '@mastra/pg';
14
+
15
+ const store = new PgVector(connectionString);
16
+
17
+ const results = await store.query({
18
+ indexName: "my_index",
19
+ queryVector: queryVector,
20
+ topK: 10,
21
+ filter: {
22
+ category: "electronics", // Simple equality
23
+ price: { $gt: 100 }, // Numeric comparison
24
+ tags: { $in: ["sale", "new"] } // Array membership
25
+ }
26
+ });
27
+ ```
28
+
29
+ ## Supported Operators
30
+
31
+ <OperatorsTable
32
+ title="Basic Comparison"
33
+ operators={[
34
+ {
35
+ name: "$eq",
36
+ description: "Matches values equal to specified value",
37
+ example: "{ age: { $eq: 25 } }",
38
+ supportedBy: ["All"]
39
+ },
40
+ {
41
+ name: "$ne",
42
+ description: "Matches values not equal",
43
+ example: "{ status: { $ne: 'inactive' } }",
44
+ supportedBy: ["All"]
45
+ },
46
+ {
47
+ name: "$gt",
48
+ description: "Greater than",
49
+ example: "{ price: { $gt: 100 } }",
50
+ supportedBy: ["All"]
51
+ },
52
+ {
53
+ name: "$gte",
54
+ description: "Greater than or equal",
55
+ example: "{ rating: { $gte: 4.5 } }",
56
+ supportedBy: ["All"]
57
+ },
58
+ {
59
+ name: "$lt",
60
+ description: "Less than",
61
+ example: "{ stock: { $lt: 20 } }",
62
+ supportedBy: ["All"]
63
+ },
64
+ {
65
+ name: "$lte",
66
+ description: "Less than or equal",
67
+ example: "{ priority: { $lte: 3 } }",
68
+ supportedBy: ["All"]
69
+ }
70
+ ]}
71
+ />
72
+
73
+ <OperatorsTable
74
+ title="Array Operators"
75
+ operators={[
76
+ {
77
+ name: "$in",
78
+ description: "Matches any value in array",
79
+ example: '{ category: { $in: ["A", "B"] } }',
80
+ supportedBy: ["All"]
81
+ },
82
+ {
83
+ name: "$nin",
84
+ description: "Matches none of the values",
85
+ example: '{ status: { $nin: ["deleted", "archived"] } }',
86
+ supportedBy: ["All"]
87
+ },
88
+ {
89
+ name: "$all",
90
+ description: "Matches arrays containing all elements",
91
+ example: '{ tags: { $all: ["urgent", "high"] } }',
92
+ supportedBy: ["Astra", "Pinecone", "Upstash"]
93
+ },
94
+ {
95
+ name: "$elemMatch",
96
+ description: "Matches array elements meeting criteria",
97
+ example: '{ scores: { $elemMatch: { $gt: 80 } } }',
98
+ supportedBy: ["LibSQL", "PgVector"]
99
+ }
100
+ ]}
101
+ />
102
+
103
+ <OperatorsTable
104
+ title="Logical Operators"
105
+ operators={[
106
+ {
107
+ name: "$and",
108
+ description: "Logical AND",
109
+ example: '{ $and: [{ price: { $gt: 100 } }, { stock: { $gt: 0 } }] }',
110
+ supportedBy: ["All except Vectorize"]
111
+ },
112
+ {
113
+ name: "$or",
114
+ description: "Logical OR",
115
+ example: '{ $or: [{ status: "active" }, { priority: "high" }] }',
116
+ supportedBy: ["All except Vectorize"]
117
+ },
118
+ {
119
+ name: "$not",
120
+ description: "Logical NOT",
121
+ example: '{ price: { $not: { $lt: 100 } } }',
122
+ supportedBy: ["Astra", "Qdrant", "Upstash", "PgVector", "LibSQL"]
123
+ },
124
+ {
125
+ name: "$nor",
126
+ description: "Logical NOR",
127
+ example: '{ $nor: [{ status: "deleted" }, { archived: true }] }',
128
+ supportedBy: ["Qdrant", "Upstash", "PgVector", "LibSQL"]
129
+ }
130
+ ]}
131
+ />
132
+
133
+ <OperatorsTable
134
+ title="Element Operators"
135
+ operators={[
136
+ {
137
+ name: "$exists",
138
+ description: "Matches documents with field",
139
+ example: '{ rating: { $exists: true } }',
140
+ supportedBy: ["All except Vectorize, Chroma"]
141
+ }
142
+ ]}
143
+ />
144
+
145
+ <OperatorsTable
146
+ title="Custom Operators"
147
+ operators={[
148
+ {
149
+ name: "$contains",
150
+ description: "Text contains substring",
151
+ example: '{ description: { $contains: "sale" } }',
152
+ supportedBy: ["Upstash", "LibSQL", "PgVector"]
153
+ },
154
+ {
155
+ name: "$regex",
156
+ description: "Regular expression match",
157
+ example: '{ name: { $regex: "^test" } }',
158
+ supportedBy: ["Qdrant", "PgVector", "Upstash"]
159
+ },
160
+ {
161
+ name: "$size",
162
+ description: "Array length check",
163
+ example: '{ tags: { $size: { $gt: 2 } } }',
164
+ supportedBy: ["Astra", "LibSQL", "PgVector"]
165
+ },
166
+ {
167
+ name: "$geo",
168
+ description: "Geospatial query",
169
+ example: '{ location: { $geo: { type: "radius", ... } } }',
170
+ supportedBy: ["Qdrant"]
171
+ },
172
+ {
173
+ name: "$datetime",
174
+ description: "Datetime range query",
175
+ example: '{ created: { $datetime: { range: { gt: "2024-01-01" } } } }',
176
+ supportedBy: ["Qdrant"]
177
+ },
178
+ {
179
+ name: "$hasId",
180
+ description: "Vector ID existence check",
181
+ example: '{ $hasId: ["id1", "id2"] }',
182
+ supportedBy: ["Qdrant"]
183
+ },
184
+ {
185
+ name: "$hasVector",
186
+ description: "Vector existence check",
187
+ example: '{ $hasVector: true }',
188
+ supportedBy: ["Qdrant"]
189
+ }
190
+ ]}
191
+ />
192
+
193
+ ## Common Rules and Restrictions
194
+
195
+ 1. Field names cannot:
196
+ - Contain dots (.) unless referring to nested fields
197
+ - Start with $ or contain null characters
198
+ - Be empty strings
199
+
200
+ 2. Values must be:
201
+ - Valid JSON types (string, number, boolean, object, array)
202
+ - Not undefined
203
+ - Properly typed for the operator (e.g., numbers for numeric comparisons)
204
+
205
+ 3. Logical operators:
206
+ - Must contain valid conditions
207
+ - Cannot be empty
208
+ - Must be properly nested
209
+ - Can only be used at top level or nested within other logical operators
210
+ - Cannot be used at field level or nested inside a field
211
+ - Cannot be used inside an operator
212
+ - Valid: `{ "$and": [{ "field": { "$gt": 100 } }] }`
213
+ - Valid: `{ "$or": [{ "$and": [{ "field": { "$gt": 100 } }] }] }`
214
+ - Invalid: `{ "field": { "$and": [{ "$gt": 100 }] } }`
215
+ - Invalid: `{ "field": { "$gt": { "$and": [{...}] } } }`
216
+
217
+ 4. $not operator:
218
+ - Must be an object
219
+ - Cannot be empty
220
+ - Can be used at field level or top level
221
+ - Valid: `{ "$not": { "field": "value" } }`
222
+ - Valid: `{ "field": { "$not": { "$eq": "value" } } }`
223
+
224
+ 5. Operator nesting:
225
+ - Logical operators must contain field conditions, not direct operators
226
+ - Valid: `{ "$and": [{ "field": { "$gt": 100 } }] }`
227
+ - Invalid: `{ "$and": [{ "$gt": 100 }] }`
228
+
229
+ ## Store-Specific Notes
230
+
231
+ ### Astra
232
+ - Nested field queries are supported using dot notation
233
+ - Array fields must be explicitly defined as arrays in the metadata
234
+ - Metadata values are case-sensitive
235
+
236
+ ### ChromaDB
237
+ - Where filters only return results where the filtered field exists in metadata
238
+ - Empty metadata fields are not included in filter results
239
+ - Metadata fields must be present for negative matches (e.g., $ne won't match documents missing the field)
240
+
241
+ ### Cloudflare Vectorize
242
+ - Requires explicit metadata indexing before filtering can be used
243
+ - Use `createMetadataIndex()` to index fields you want to filter on
244
+ - Up to 10 metadata indexes per Vectorize index
245
+ - String values are indexed up to first 64 bytes (truncated on UTF-8 boundaries)
246
+ - Number values use float64 precision
247
+ - Filter JSON must be under 2048 bytes
248
+ - Field names cannot contain dots (.) or start with $
249
+ - Field names limited to 512 characters
250
+ - Vectors must be re-upserted after creating new metadata indexes to be included in filtered results
251
+ - Range queries may have reduced accuracy with very large datasets (~10M+ vectors)
252
+
253
+ ### LibSQL
254
+ - Supports nested object queries with dot notation
255
+ - Array fields are validated to ensure they contain valid JSON arrays
256
+ - Numeric comparisons maintain proper type handling
257
+ - Empty arrays in conditions are handled gracefully
258
+ - Metadata is stored in a JSONB column for efficient querying
259
+
260
+ ### PgVector
261
+ - Full support for PostgreSQL's native JSON querying capabilities
262
+ - Efficient handling of array operations using native array functions
263
+ - Proper type handling for numbers, strings, and booleans
264
+ - Nested field queries use PostgreSQL's JSON path syntax internally
265
+ - Metadata is stored in a JSONB column for efficient indexing
266
+
267
+ ### Pinecone
268
+ - Metadata field names are limited to 512 characters
269
+ - Numeric values must be within the range of ±1e38
270
+ - Arrays in metadata are limited to 64KB total size
271
+ - Nested objects are flattened with dot notation
272
+ - Metadata updates replace the entire metadata object
273
+
274
+ ### Qdrant
275
+ - Supports advanced filtering with nested conditions
276
+ - Payload (metadata) fields must be explicitly indexed for filtering
277
+ - Efficient handling of geo-spatial queries
278
+ - Special handling for null and empty values
279
+ - Vector-specific filtering capabilities
280
+ - Datetime values must be in RFC 3339 format
281
+
282
+ ### Upstash
283
+ - 512-character limit for metadata field keys
284
+ - Query size is limited (avoid large IN clauses)
285
+ - No support for null/undefined values in filters
286
+ - Translates to SQL-like syntax internally
287
+ - Case-sensitive string comparisons
288
+ - Metadata updates are atomic
289
+
290
+ ## Related
291
+ - [Astra](./astra)
292
+ - [Chroma](./chroma)
293
+ - [Cloudflare Vectorize](./vectorize)
294
+ - [LibSQL](./libsql)
295
+ - [PgStore](./pg)
296
+ - [Pinecone](./pinecone)
297
+ - [Qdrant](./qdrant)
298
+ - [Upstash](./upstash)