@mastra/mcp-docs-server 0.0.1-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 (246) 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%2Fclient-js.md +302 -0
  4. package/.docs/organized/changelogs/%40mastra%2Fcomposio.md +302 -0
  5. package/.docs/organized/changelogs/%40mastra%2Fcore.md +302 -0
  6. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +302 -0
  7. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +302 -0
  8. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +302 -0
  9. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +302 -0
  10. package/.docs/organized/changelogs/%40mastra%2Fevals.md +302 -0
  11. package/.docs/organized/changelogs/%40mastra%2Ffirecrawl.md +302 -0
  12. package/.docs/organized/changelogs/%40mastra%2Fgithub.md +302 -0
  13. package/.docs/organized/changelogs/%40mastra%2Floggers.md +302 -0
  14. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +11 -0
  15. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +302 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +302 -0
  17. package/.docs/organized/changelogs/%40mastra%2Fpg.md +302 -0
  18. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +302 -0
  19. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +302 -0
  20. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +302 -0
  21. package/.docs/organized/changelogs/%40mastra%2Frag.md +302 -0
  22. package/.docs/organized/changelogs/%40mastra%2Fragie.md +302 -0
  23. package/.docs/organized/changelogs/%40mastra%2Fspeech-azure.md +302 -0
  24. package/.docs/organized/changelogs/%40mastra%2Fspeech-deepgram.md +302 -0
  25. package/.docs/organized/changelogs/%40mastra%2Fspeech-elevenlabs.md +302 -0
  26. package/.docs/organized/changelogs/%40mastra%2Fspeech-google.md +302 -0
  27. package/.docs/organized/changelogs/%40mastra%2Fspeech-ibm.md +302 -0
  28. package/.docs/organized/changelogs/%40mastra%2Fspeech-murf.md +302 -0
  29. package/.docs/organized/changelogs/%40mastra%2Fspeech-openai.md +302 -0
  30. package/.docs/organized/changelogs/%40mastra%2Fspeech-playai.md +302 -0
  31. package/.docs/organized/changelogs/%40mastra%2Fspeech-replicate.md +302 -0
  32. package/.docs/organized/changelogs/%40mastra%2Fspeech-speechify.md +302 -0
  33. package/.docs/organized/changelogs/%40mastra%2Fstabilityai.md +302 -0
  34. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +59 -0
  35. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +302 -0
  36. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +302 -0
  37. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +302 -0
  38. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +302 -0
  39. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +302 -0
  40. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +302 -0
  41. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +24 -0
  42. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +302 -0
  43. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +302 -0
  44. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +12 -0
  45. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +302 -0
  46. package/.docs/organized/changelogs/create-mastra.md +302 -0
  47. package/.docs/organized/changelogs/mastra.md +302 -0
  48. package/.docs/organized/code-examples/agent.md +385 -0
  49. package/.docs/organized/code-examples/ai-sdk-useChat.md +377 -0
  50. package/.docs/organized/code-examples/assistant-ui.md +37 -0
  51. package/.docs/organized/code-examples/bird-checker-with-express.md +235 -0
  52. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +360 -0
  53. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +250 -0
  54. package/.docs/organized/code-examples/crypto-chatbot.md +96 -0
  55. package/.docs/organized/code-examples/fireworks-r1.md +159 -0
  56. package/.docs/organized/code-examples/integrations.md +184 -0
  57. package/.docs/organized/code-examples/mcp-configuration.md +341 -0
  58. package/.docs/organized/code-examples/memory-todo-agent.md +161 -0
  59. package/.docs/organized/code-examples/memory-with-context.md +167 -0
  60. package/.docs/organized/code-examples/memory-with-libsql.md +204 -0
  61. package/.docs/organized/code-examples/memory-with-pg.md +224 -0
  62. package/.docs/organized/code-examples/memory-with-upstash.md +268 -0
  63. package/.docs/organized/code-examples/quick-start.md +127 -0
  64. package/.docs/organized/code-examples/stock-price-tool.md +124 -0
  65. package/.docs/organized/code-examples/weather-agent.md +352 -0
  66. package/.docs/organized/code-examples/workflow-ai-recruiter.md +159 -0
  67. package/.docs/organized/code-examples/workflow-with-inline-steps.md +111 -0
  68. package/.docs/organized/code-examples/workflow-with-memory.md +393 -0
  69. package/.docs/organized/code-examples/workflow-with-separate-steps.md +131 -0
  70. package/.docs/raw/agents/00-overview.mdx +185 -0
  71. package/.docs/raw/agents/01-agent-memory.mdx +610 -0
  72. package/.docs/raw/agents/02-adding-tools.mdx +224 -0
  73. package/.docs/raw/agents/03-adding-voice.mdx +170 -0
  74. package/.docs/raw/deployment/deployment.mdx +156 -0
  75. package/.docs/raw/deployment/logging-and-tracing.mdx +242 -0
  76. package/.docs/raw/deployment/server.mdx +114 -0
  77. package/.docs/raw/evals/00-overview.mdx +106 -0
  78. package/.docs/raw/evals/01-supported-evals.mdx +31 -0
  79. package/.docs/raw/evals/02-custom-eval.mdx +187 -0
  80. package/.docs/raw/faq/index.mdx +63 -0
  81. package/.docs/raw/frameworks/01-next-js.mdx +238 -0
  82. package/.docs/raw/frameworks/02-ai-sdk.mdx +218 -0
  83. package/.docs/raw/getting-started/installation.mdx +436 -0
  84. package/.docs/raw/getting-started/project-structure.mdx +80 -0
  85. package/.docs/raw/guides/01-chef-michel.mdx +242 -0
  86. package/.docs/raw/guides/02-stock-agent.mdx +182 -0
  87. package/.docs/raw/guides/03-recruiter.mdx +187 -0
  88. package/.docs/raw/index.mdx +22 -0
  89. package/.docs/raw/local-dev/creating-projects.mdx +74 -0
  90. package/.docs/raw/local-dev/integrations.mdx +127 -0
  91. package/.docs/raw/local-dev/mastra-dev.mdx +65 -0
  92. package/.docs/raw/rag/chunking-and-embedding.mdx +128 -0
  93. package/.docs/raw/rag/overview.mdx +85 -0
  94. package/.docs/raw/rag/retrieval.mdx +362 -0
  95. package/.docs/raw/rag/vector-databases.mdx +271 -0
  96. package/.docs/raw/reference/agents/createTool.mdx +190 -0
  97. package/.docs/raw/reference/agents/generate.mdx +327 -0
  98. package/.docs/raw/reference/agents/getAgent.mdx +54 -0
  99. package/.docs/raw/reference/agents/stream.mdx +361 -0
  100. package/.docs/raw/reference/cli/build.mdx +48 -0
  101. package/.docs/raw/reference/cli/deploy.mdx +22 -0
  102. package/.docs/raw/reference/cli/dev.mdx +97 -0
  103. package/.docs/raw/reference/cli/init.mdx +43 -0
  104. package/.docs/raw/reference/client-js/agents.mdx +90 -0
  105. package/.docs/raw/reference/client-js/error-handling.mdx +38 -0
  106. package/.docs/raw/reference/client-js/index.mdx +127 -0
  107. package/.docs/raw/reference/client-js/logs.mdx +24 -0
  108. package/.docs/raw/reference/client-js/memory.mdx +94 -0
  109. package/.docs/raw/reference/client-js/telemetry.mdx +20 -0
  110. package/.docs/raw/reference/client-js/tools.mdx +44 -0
  111. package/.docs/raw/reference/client-js/vectors.mdx +79 -0
  112. package/.docs/raw/reference/client-js/workflows.mdx +137 -0
  113. package/.docs/raw/reference/core/mastra-class.mdx +232 -0
  114. package/.docs/raw/reference/deployer/cloudflare.mdx +176 -0
  115. package/.docs/raw/reference/deployer/deployer.mdx +159 -0
  116. package/.docs/raw/reference/deployer/netlify.mdx +88 -0
  117. package/.docs/raw/reference/deployer/vercel.mdx +97 -0
  118. package/.docs/raw/reference/evals/answer-relevancy.mdx +186 -0
  119. package/.docs/raw/reference/evals/bias.mdx +186 -0
  120. package/.docs/raw/reference/evals/completeness.mdx +174 -0
  121. package/.docs/raw/reference/evals/content-similarity.mdx +183 -0
  122. package/.docs/raw/reference/evals/context-position.mdx +190 -0
  123. package/.docs/raw/reference/evals/context-precision.mdx +189 -0
  124. package/.docs/raw/reference/evals/context-relevancy.mdx +188 -0
  125. package/.docs/raw/reference/evals/contextual-recall.mdx +191 -0
  126. package/.docs/raw/reference/evals/faithfulness.mdx +193 -0
  127. package/.docs/raw/reference/evals/hallucination.mdx +219 -0
  128. package/.docs/raw/reference/evals/keyword-coverage.mdx +176 -0
  129. package/.docs/raw/reference/evals/prompt-alignment.mdx +238 -0
  130. package/.docs/raw/reference/evals/summarization.mdx +205 -0
  131. package/.docs/raw/reference/evals/textual-difference.mdx +161 -0
  132. package/.docs/raw/reference/evals/tone-consistency.mdx +181 -0
  133. package/.docs/raw/reference/evals/toxicity.mdx +165 -0
  134. package/.docs/raw/reference/index.mdx +8 -0
  135. package/.docs/raw/reference/memory/Memory.mdx +186 -0
  136. package/.docs/raw/reference/memory/createThread.mdx +93 -0
  137. package/.docs/raw/reference/memory/getThreadById.mdx +43 -0
  138. package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +45 -0
  139. package/.docs/raw/reference/memory/query.mdx +164 -0
  140. package/.docs/raw/reference/observability/create-logger.mdx +106 -0
  141. package/.docs/raw/reference/observability/logger.mdx +55 -0
  142. package/.docs/raw/reference/observability/otel-config.mdx +120 -0
  143. package/.docs/raw/reference/observability/providers/braintrust.mdx +40 -0
  144. package/.docs/raw/reference/observability/providers/index.mdx +15 -0
  145. package/.docs/raw/reference/observability/providers/laminar.mdx +41 -0
  146. package/.docs/raw/reference/observability/providers/langfuse.mdx +51 -0
  147. package/.docs/raw/reference/observability/providers/langsmith.mdx +46 -0
  148. package/.docs/raw/reference/observability/providers/langwatch.mdx +45 -0
  149. package/.docs/raw/reference/observability/providers/new-relic.mdx +40 -0
  150. package/.docs/raw/reference/observability/providers/signoz.mdx +40 -0
  151. package/.docs/raw/reference/observability/providers/traceloop.mdx +40 -0
  152. package/.docs/raw/reference/rag/astra.mdx +258 -0
  153. package/.docs/raw/reference/rag/chroma.mdx +281 -0
  154. package/.docs/raw/reference/rag/chunk.mdx +237 -0
  155. package/.docs/raw/reference/rag/document.mdx +129 -0
  156. package/.docs/raw/reference/rag/embeddings.mdx +160 -0
  157. package/.docs/raw/reference/rag/extract-params.mdx +72 -0
  158. package/.docs/raw/reference/rag/graph-rag.mdx +182 -0
  159. package/.docs/raw/reference/rag/libsql.mdx +357 -0
  160. package/.docs/raw/reference/rag/metadata-filters.mdx +298 -0
  161. package/.docs/raw/reference/rag/pg.mdx +477 -0
  162. package/.docs/raw/reference/rag/pinecone.mdx +249 -0
  163. package/.docs/raw/reference/rag/qdrant.mdx +236 -0
  164. package/.docs/raw/reference/rag/rerank.mdx +212 -0
  165. package/.docs/raw/reference/rag/turbopuffer.mdx +249 -0
  166. package/.docs/raw/reference/rag/upstash.mdx +198 -0
  167. package/.docs/raw/reference/rag/vectorize.mdx +253 -0
  168. package/.docs/raw/reference/storage/libsql.mdx +74 -0
  169. package/.docs/raw/reference/storage/postgresql.mdx +48 -0
  170. package/.docs/raw/reference/storage/upstash.mdx +86 -0
  171. package/.docs/raw/reference/tools/client.mdx +180 -0
  172. package/.docs/raw/reference/tools/document-chunker-tool.mdx +141 -0
  173. package/.docs/raw/reference/tools/graph-rag-tool.mdx +154 -0
  174. package/.docs/raw/reference/tools/mcp-configuration.mdx +206 -0
  175. package/.docs/raw/reference/tools/vector-query-tool.mdx +212 -0
  176. package/.docs/raw/reference/voice/composite-voice.mdx +140 -0
  177. package/.docs/raw/reference/voice/deepgram.mdx +164 -0
  178. package/.docs/raw/reference/voice/elevenlabs.mdx +216 -0
  179. package/.docs/raw/reference/voice/google.mdx +198 -0
  180. package/.docs/raw/reference/voice/mastra-voice.mdx +394 -0
  181. package/.docs/raw/reference/voice/murf.mdx +251 -0
  182. package/.docs/raw/reference/voice/openai-realtime.mdx +431 -0
  183. package/.docs/raw/reference/voice/openai.mdx +168 -0
  184. package/.docs/raw/reference/voice/playai.mdx +159 -0
  185. package/.docs/raw/reference/voice/speechify.mdx +145 -0
  186. package/.docs/raw/reference/workflows/after.mdx +88 -0
  187. package/.docs/raw/reference/workflows/commit.mdx +37 -0
  188. package/.docs/raw/reference/workflows/createRun.mdx +77 -0
  189. package/.docs/raw/reference/workflows/else.mdx +72 -0
  190. package/.docs/raw/reference/workflows/execute.mdx +110 -0
  191. package/.docs/raw/reference/workflows/if.mdx +107 -0
  192. package/.docs/raw/reference/workflows/resume.mdx +155 -0
  193. package/.docs/raw/reference/workflows/start.mdx +84 -0
  194. package/.docs/raw/reference/workflows/step-class.mdx +100 -0
  195. package/.docs/raw/reference/workflows/step-condition.mdx +134 -0
  196. package/.docs/raw/reference/workflows/step-function.mdx +92 -0
  197. package/.docs/raw/reference/workflows/step-options.mdx +69 -0
  198. package/.docs/raw/reference/workflows/suspend.mdx +80 -0
  199. package/.docs/raw/reference/workflows/then.mdx +74 -0
  200. package/.docs/raw/reference/workflows/until.mdx +165 -0
  201. package/.docs/raw/reference/workflows/watch.mdx +118 -0
  202. package/.docs/raw/reference/workflows/while.mdx +168 -0
  203. package/.docs/raw/reference/workflows/workflow.mdx +233 -0
  204. package/.docs/raw/workflows/00-overview.mdx +168 -0
  205. package/.docs/raw/workflows/control-flow.mdx +712 -0
  206. package/.docs/raw/workflows/dynamic-workflows.mdx +232 -0
  207. package/.docs/raw/workflows/steps.mdx +98 -0
  208. package/.docs/raw/workflows/suspend-and-resume.mdx +196 -0
  209. package/.docs/raw/workflows/variables.mdx +248 -0
  210. package/LICENSE +44 -0
  211. package/README.md +129 -0
  212. package/dist/index.d.ts +3 -0
  213. package/dist/index.js +19 -0
  214. package/dist/prepare-docs/code-examples.d.ts +4 -0
  215. package/dist/prepare-docs/code-examples.js +91 -0
  216. package/dist/prepare-docs/copy-raw.d.ts +1 -0
  217. package/dist/prepare-docs/copy-raw.js +41 -0
  218. package/dist/prepare-docs/index.d.ts +1 -0
  219. package/dist/prepare-docs/index.js +8 -0
  220. package/dist/prepare-docs/package-changes.d.ts +4 -0
  221. package/dist/prepare-docs/package-changes.js +92 -0
  222. package/dist/prepare-docs/prepare.d.ts +1 -0
  223. package/dist/prepare-docs/prepare.js +13 -0
  224. package/dist/sse.d.ts +1 -0
  225. package/dist/sse.js +9 -0
  226. package/dist/stdio.d.ts +1 -0
  227. package/dist/stdio.js +8 -0
  228. package/dist/tools/__tests__/blog.test.d.ts +1 -0
  229. package/dist/tools/__tests__/blog.test.js +48 -0
  230. package/dist/tools/__tests__/changes.test.d.ts +1 -0
  231. package/dist/tools/__tests__/changes.test.js +36 -0
  232. package/dist/tools/__tests__/docs.test.d.ts +1 -0
  233. package/dist/tools/__tests__/docs.test.js +46 -0
  234. package/dist/tools/__tests__/examples.test.d.ts +1 -0
  235. package/dist/tools/__tests__/examples.test.js +52 -0
  236. package/dist/tools/blog.d.ts +15 -0
  237. package/dist/tools/blog.js +73 -0
  238. package/dist/tools/changes.d.ts +11 -0
  239. package/dist/tools/changes.js +69 -0
  240. package/dist/tools/docs.d.ts +11 -0
  241. package/dist/tools/docs.js +176 -0
  242. package/dist/tools/examples.d.ts +11 -0
  243. package/dist/tools/examples.js +61 -0
  244. package/dist/utils.d.ts +6 -0
  245. package/dist/utils.js +9 -0
  246. package/package.json +66 -0
@@ -0,0 +1,182 @@
1
+ ---
2
+ title: "Reference: GraphRAG | Graph-based RAG | RAG | Mastra Docs"
3
+ description: Documentation for the GraphRAG class in Mastra, which implements a graph-based approach to retrieval augmented generation.
4
+ ---
5
+
6
+ # GraphRAG
7
+
8
+ The `GraphRAG` class implements a graph-based approach to retrieval augmented generation. It creates a knowledge graph from document chunks where nodes represent documents and edges represent semantic relationships, enabling both direct similarity matching and discovery of related content through graph traversal.
9
+
10
+ ## Basic Usage
11
+
12
+ ```typescript
13
+ import { GraphRAG } from "@mastra/rag";
14
+
15
+ const graphRag = new GraphRAG({
16
+ dimension: 1536,
17
+ threshold: 0.7
18
+ });
19
+
20
+ // Create the graph from chunks and embeddings
21
+ graphRag.createGraph(documentChunks, embeddings);
22
+
23
+ // Query the graph with embedding
24
+ const results = await graphRag.query({
25
+ query: queryEmbedding,
26
+ topK: 10,
27
+ randomWalkSteps: 100,
28
+ restartProb: 0.15
29
+ });
30
+ ```
31
+
32
+ ## Constructor Parameters
33
+
34
+ <PropertiesTable
35
+ content={[
36
+ {
37
+ name: "dimension",
38
+ type: "number",
39
+ description: "Dimension of the embedding vectors",
40
+ isOptional: true,
41
+ defaultValue: "1536",
42
+ },
43
+ {
44
+ name: "threshold",
45
+ type: "number",
46
+ description: "Similarity threshold for creating edges between nodes (0-1)",
47
+ isOptional: true,
48
+ defaultValue: "0.7",
49
+ }
50
+ ]}
51
+ />
52
+
53
+ ## Methods
54
+
55
+ ### createGraph
56
+
57
+ Creates a knowledge graph from document chunks and their embeddings.
58
+
59
+ ```typescript
60
+ createGraph(chunks: GraphChunk[], embeddings: GraphEmbedding[]): void
61
+ ```
62
+
63
+ #### Parameters
64
+ <PropertiesTable
65
+ content={[
66
+ {
67
+ name: "chunks",
68
+ type: "GraphChunk[]",
69
+ description: "Array of document chunks with text and metadata",
70
+ isOptional: false,
71
+ },
72
+ {
73
+ name: "embeddings",
74
+ type: "GraphEmbedding[]",
75
+ description: "Array of embeddings corresponding to chunks",
76
+ isOptional: false,
77
+ }
78
+ ]}
79
+ />
80
+
81
+ ### query
82
+
83
+ Performs a graph-based search combining vector similarity and graph traversal.
84
+
85
+ ```typescript
86
+ query({
87
+ query,
88
+ topK = 10,
89
+ randomWalkSteps = 100,
90
+ restartProb = 0.15
91
+ }: {
92
+ query: number[];
93
+ topK?: number;
94
+ randomWalkSteps?: number;
95
+ restartProb?: number;
96
+ }): RankedNode[]
97
+ ```
98
+
99
+ #### Parameters
100
+ <PropertiesTable
101
+ content={[
102
+ {
103
+ name: "query",
104
+ type: "number[]",
105
+ description: "Query embedding vector",
106
+ isOptional: false,
107
+ },
108
+ {
109
+ name: "topK",
110
+ type: "number",
111
+ description: "Number of results to return",
112
+ isOptional: true,
113
+ defaultValue: "10",
114
+ },
115
+ {
116
+ name: "randomWalkSteps",
117
+ type: "number",
118
+ description: "Number of steps in random walk",
119
+ isOptional: true,
120
+ defaultValue: "100",
121
+ },
122
+ {
123
+ name: "restartProb",
124
+ type: "number",
125
+ description: "Probability of restarting walk from query node",
126
+ isOptional: true,
127
+ defaultValue: "0.15",
128
+ }
129
+ ]}
130
+ />
131
+
132
+ #### Returns
133
+ Returns an array of `RankedNode` objects, where each node contains:
134
+
135
+ <PropertiesTable
136
+ content={[
137
+ {
138
+ name: "id",
139
+ type: "string",
140
+ description: "Unique identifier for the node",
141
+ },
142
+ {
143
+ name: "content",
144
+ type: "string",
145
+ description: "Text content of the document chunk",
146
+ },
147
+ {
148
+ name: "metadata",
149
+ type: "Record<string, any>",
150
+ description: "Additional metadata associated with the chunk",
151
+ },
152
+ {
153
+ name: "score",
154
+ type: "number",
155
+ description: "Combined relevance score from graph traversal",
156
+ }
157
+ ]}
158
+ />
159
+
160
+ ## Advanced Example
161
+
162
+ ```typescript
163
+ const graphRag = new GraphRAG({
164
+ dimension: 1536,
165
+ threshold: 0.8 // Stricter similarity threshold
166
+ });
167
+
168
+ // Create graph from chunks and embeddings
169
+ graphRag.createGraph(documentChunks, embeddings);
170
+
171
+ // Query with custom parameters
172
+ const results = await graphRag.query({
173
+ query: queryEmbedding,
174
+ topK: 5,
175
+ randomWalkSteps: 200,
176
+ restartProb: 0.2
177
+ });
178
+ ```
179
+
180
+ ## Related
181
+
182
+ - [createGraphRAGTool](../tools/graph-rag-tool)
@@ -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: "my-collection",
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: "my-collection",
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: "my-collection",
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)