@functional-systems/lambdadb-mcp 0.1.6-dev.19 → 0.1.6-dev.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +11 -6
- package/dist/tools/read.js +6 -6
- package/dist/tools/write.js +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
- Pin the LambdaDB SDK to 0.10.0. Expand Query/Fetch/List and rerank limits to
|
|
6
|
+
1000 on supporting servers, retaining facet and collection-list limits of 100.
|
|
7
|
+
Vector dimensions now require integers from 64 to 4096 and similarity accepts
|
|
8
|
+
only cosine/euclidean; invalid requests and existing out-of-contract collection
|
|
9
|
+
metadata fail SDK validation. Update vector fixtures and native source guidance.
|
|
10
|
+
|
|
5
11
|
- Synchronize the 0.1.5 release history and start the 0.1.6 development line.
|
|
6
12
|
|
|
7
13
|
## [0.1.5] - 2026-10-25
|
package/README.md
CHANGED
|
@@ -112,8 +112,8 @@ Optional write tools:
|
|
|
112
112
|
|
|
113
113
|
## API contract and tool inputs
|
|
114
114
|
|
|
115
|
-
The LambdaDB SDK is pinned to `@functional-systems/lambdadb@0.
|
|
116
|
-
the published package and [v0.
|
|
115
|
+
The LambdaDB SDK is pinned to `@functional-systems/lambdadb@0.10.0`, checked against
|
|
116
|
+
the published package and [v0.10.0 changelog](https://github.com/lambdadb/lambdadb-typescript-client/blob/v0.10.0/CHANGELOG.md).
|
|
117
117
|
This dependency update applies to builds containing this change. Publishing the SDK
|
|
118
118
|
alone does not update previously published or installed MCP packages.
|
|
119
119
|
|
|
@@ -124,11 +124,13 @@ alone does not update previously published or installed MCP packages.
|
|
|
124
124
|
Omitting `ref` reads from `main`. `consistentRead: true` is supported only by
|
|
125
125
|
Query/Fetch with an omitted ref or a direct Branch ref. List has no `consistentRead`.
|
|
126
126
|
- Query may omit `query` for match-all and accepts `facets` for keyword bucket counts
|
|
127
|
-
across all matches. Document `size` is 1–
|
|
127
|
+
across all matches. Document `size` is 1–1000, or 0 when at least one facet is supplied.
|
|
128
128
|
Up to five facet fields (including dotted paths) are allowed. Each field's options
|
|
129
129
|
accept only `size`: an integer from 1–100, omitted, or `null`. Omitted/null bucket
|
|
130
130
|
size uses the server default of 10; MCP forwards it unchanged. Empty `facets: {}`
|
|
131
131
|
is accepted except with `size: 0`. Facet results survive inline and `docsUrl` responses.
|
|
132
|
+
- Fetch accepts up to 1000 IDs; List accepts `size` from 1–1000 (server default 100).
|
|
133
|
+
These expanded read and rerank limits require a supporting server deployment.
|
|
132
134
|
- List also accepts `filter`, `fields`, `includeVectors`, and `partitionFilter`.
|
|
133
135
|
The SDK selects the extended POST endpoint when needed and preserves pagination tokens.
|
|
134
136
|
- Upsert/Delete accept an optional `branch`; omitting it writes to `main`.
|
|
@@ -206,7 +208,7 @@ Bayesian requires exactly two signals. Boolean subqueries may combine clauses
|
|
|
206
208
|
within a signal, but explicit boosts (even `1`) on either signal or its Boolean
|
|
207
209
|
descendants and nested rank-fusion queries are unsupported. Do not supply fusion
|
|
208
210
|
weights. Without rerank, top-level `candidateSize` is required and must satisfy
|
|
209
|
-
`1 <= size <= candidateSize <=
|
|
211
|
+
`1 <= size <= candidateSize <= 1000`; omitted `size` retains the server default of
|
|
210
212
|
10. The budget is per signal, independent of final output size and `knn.k`.
|
|
211
213
|
|
|
212
214
|
With rerank, omit top-level `candidateSize` and use `rerank.candidateSize`:
|
|
@@ -270,7 +272,7 @@ With write tools enabled, call `lambdadb_create_collection` with:
|
|
|
270
272
|
|
|
271
273
|
Then call `lambdadb_upsert_docs` with
|
|
272
274
|
`{"collectionName":"native-articles","docs":[{"id":"one","body":"Restore a saved version."}]}`.
|
|
273
|
-
The source
|
|
275
|
+
The source may be an unindexed stored string path; omit the generated vector from documents.
|
|
274
276
|
Use `knn.queryText` instead of `queryVector` for this field, including in either
|
|
275
277
|
Bayesian example above. For example, call `lambdadb_query_collection` with:
|
|
276
278
|
|
|
@@ -283,6 +285,9 @@ Bayesian example above. For example, call `lambdadb_query_collection` with:
|
|
|
283
285
|
```
|
|
284
286
|
|
|
285
287
|
Native embedding dimensions and similarity are optional and belong inside `embedding`.
|
|
288
|
+
Supplied vector dimensions must be integers from 64 to 4096; similarity supports
|
|
289
|
+
only `cosine` or `euclidean`. Model-specific native maxima remain server-validated.
|
|
290
|
+
Existing collections with out-of-contract vector metadata fail SDK response validation.
|
|
286
291
|
MCP does not infer a flag, provider, model or native embedding dimensions/similarity default.
|
|
287
292
|
The SDK rejects `managedEmbedding: false` with `embedding`, and native embedding
|
|
288
293
|
with top-level dimensions/similarity. Caller-provided vectors continue to use
|
|
@@ -325,7 +330,7 @@ ordered from lowest to highest relevance (2 KiB each, 8 KiB total UTF-8).
|
|
|
325
330
|
Omitted/null criteria uses defaults; text, order, nulls and omission are preserved.
|
|
326
331
|
|
|
327
332
|
Final `size`, vector-leg `knn.k`, and merged `rerank.candidateSize` are separate.
|
|
328
|
-
Require `1 <= size <= candidateSize <=
|
|
333
|
+
Require `1 <= size <= candidateSize <= 1000`; omitted/null candidateSize defaults
|
|
329
334
|
on the server to `max(50, size)`, with final size defaulting to 10. MCP never
|
|
330
335
|
increases `k`. Reranking requires a scoring retrieval query, forbids `sort`,
|
|
331
336
|
match-all and filter-only Boolean requests, and preserves ref/consistentRead
|
package/dist/tools/read.js
CHANGED
|
@@ -17,7 +17,7 @@ const rerankSchema = z.strictObject({
|
|
|
17
17
|
queryText: z.string().min(1).describe("Required nonblank query text, at most 8 KiB UTF-8, including for raw vector queries."),
|
|
18
18
|
fields: z.array(z.string().min(1)).min(1).max(8).meta({ uniqueItems: true })
|
|
19
19
|
.describe("Unique stored scalar text paths in model input order; separate from returned fields projection."),
|
|
20
|
-
candidateSize: z.number().int().min(1).max(
|
|
20
|
+
candidateSize: z.number().int().min(1).max(1000).nullable().optional()
|
|
21
21
|
.describe("Merged candidate cap, at least final size. Omitted/null defaults to max(50, size); never changes knn.k."),
|
|
22
22
|
onFailure: z.enum(["error", "returnOriginal"]).nullable().optional()
|
|
23
23
|
.describe("Omitted/null defaults to error. returnOriginal covers only eligible provider failures."),
|
|
@@ -75,10 +75,10 @@ export function registerReadTools(server, config) {
|
|
|
75
75
|
},
|
|
76
76
|
inputSchema: z.strictObject({
|
|
77
77
|
collectionName: nameSchema,
|
|
78
|
-
size: z.number().int().min(0).max(
|
|
79
|
-
.describe("Documents to return (1–
|
|
78
|
+
size: z.number().int().min(0).max(1000).optional()
|
|
79
|
+
.describe("Documents to return (1–1000), or 0 with nonempty facets."),
|
|
80
80
|
// Preserve SDK/server validation and error classification for free-form queries.
|
|
81
|
-
candidateSize: z.number().int().optional().describe("Bayesian without rerank requires 1 <= size <= candidateSize <=
|
|
81
|
+
candidateSize: z.number().int().optional().describe("Bayesian without rerank requires 1 <= size <= candidateSize <= 1000 (size defaults to 10 on the server). With rerank, omit this field and use rerank.candidateSize, whose default is unchanged. Unsupported for other queries; server validates these combinations."),
|
|
82
82
|
query: z.record(z.string(), z.any()).optional().describe("Free-form query; omit for match-all. Top-level bayesian is an array of exactly two subqueries, with no explicit boosts on either subquery or its Boolean descendants. Nested rank fusion and fusion weights are unsupported. Server validates the query contract."),
|
|
83
83
|
facets: facetsSchema.optional(),
|
|
84
84
|
rerank: rerankSchema,
|
|
@@ -138,7 +138,7 @@ export function registerReadTools(server, config) {
|
|
|
138
138
|
},
|
|
139
139
|
inputSchema: z.strictObject({
|
|
140
140
|
collectionName: nameSchema,
|
|
141
|
-
size: z.number().int().min(1).max(
|
|
141
|
+
size: z.number().int().min(1).max(1000).optional(),
|
|
142
142
|
pageToken: z.string().optional(),
|
|
143
143
|
ref: readRefSchema.optional(),
|
|
144
144
|
filter: z.record(z.string(), z.any()).optional(),
|
|
@@ -173,7 +173,7 @@ export function registerReadTools(server, config) {
|
|
|
173
173
|
},
|
|
174
174
|
inputSchema: z.strictObject({
|
|
175
175
|
collectionName: nameSchema,
|
|
176
|
-
ids: z.array(z.string().min(1)).min(1).max(
|
|
176
|
+
ids: z.array(z.string().min(1)).min(1).max(1000),
|
|
177
177
|
ref: readRefSchema.optional(),
|
|
178
178
|
consistentRead: z.boolean().optional().describe("true requires a direct branch ref or omitted ref (main)."),
|
|
179
179
|
includeVectors: z.boolean().optional(),
|
package/dist/tools/write.js
CHANGED
|
@@ -12,7 +12,7 @@ export function registerWriteTools(server, config) {
|
|
|
12
12
|
},
|
|
13
13
|
inputSchema: z.strictObject({
|
|
14
14
|
collectionName: nameSchema,
|
|
15
|
-
indexConfigs: z.record(z.string(), z.any()).refine((value) => Object.keys(value).length > 0, "indexConfigs must contain at least one field.").describe("Field configurations validated by the SDK/server. Native embedding vectors: {type: 'vector', embedding: {provider, model, sourceField, dimensions?, similarity?}};
|
|
15
|
+
indexConfigs: z.record(z.string(), z.any()).refine((value) => Object.keys(value).length > 0, "indexConfigs must contain at least one field.").describe("Field configurations validated by the SDK/server. Native embedding vectors: {type: 'vector', embedding: {provider, model, sourceField, dimensions?, similarity?}}; sourceField may be an unindexed stored string path. Native embedding dimensions/similarity belong inside embedding, never at the field top level. Do not combine embedding with managedEmbedding: false. Legacy true is preserved; no provider/model or native embedding defaults are inferred. Caller-provided vectors retain top-level dimensions/similarity. Supplied dimensions must be integers from 64 to 4096; similarity supports only cosine or euclidean. Model-specific native dimension maxima are server-validated."),
|
|
16
16
|
description: z.string().max(255).optional(),
|
|
17
17
|
tags: z.record(z.string().regex(/^[A-Za-z0-9_.-]{1,63}$/), z.string().min(1).max(127).regex(/^[^:#,]+$/))
|
|
18
18
|
.refine((value) => Object.keys(value).length <= 5, "At most five tags are allowed.")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@functional-systems/lambdadb-mcp",
|
|
3
|
-
"version": "0.1.6-dev.
|
|
3
|
+
"version": "0.1.6-dev.20",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "MCP server for LambdaDB data plane",
|
|
6
6
|
"type": "module",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"test:package": "node scripts/test-package.mjs"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@functional-systems/lambdadb": "0.
|
|
27
|
+
"@functional-systems/lambdadb": "0.10.0",
|
|
28
28
|
"@modelcontextprotocol/sdk": "1.32.2",
|
|
29
29
|
"zod": "^4.6.7"
|
|
30
30
|
},
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"access": "public",
|
|
63
63
|
"registry": "https://registry.npmjs.org"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "3d73730f700f785062ba59832a1e506857992dbd"
|
|
66
66
|
}
|