@functional-systems/lambdadb-mcp 0.1.5 → 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 +8 -0
- package/README.md +22 -19
- package/RELEASING.md +28 -22
- 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,14 @@
|
|
|
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
|
+
|
|
11
|
+
- Synchronize the 0.1.5 release history and start the 0.1.6 development line.
|
|
12
|
+
|
|
5
13
|
## [0.1.5] - 2026-10-25
|
|
6
14
|
|
|
7
15
|
- Pin MCP SDK 1.32.2, raise the Zod minimum to 4.6.7, and refresh the affected
|
package/README.md
CHANGED
|
@@ -14,18 +14,16 @@ MCP server for LambdaDB using the official TypeScript MCP SDK and the official L
|
|
|
14
14
|
Package: `@functional-systems/lambdadb-mcp`. Executable: `lambdadb-mcp`.
|
|
15
15
|
Requires Node.js >=22.14.0; CI tests the minimum and current Node 22/24 LTS.
|
|
16
16
|
|
|
17
|
-
As verified on 2026-10-25 (KST), npm `latest` resolves to `0.1.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
and
|
|
26
|
-
and
|
|
27
|
-
Existing installations need an MCP release containing these changes; upgrading
|
|
28
|
-
the SDK separately does not update them.
|
|
17
|
+
As verified on 2026-10-25 (KST), npm `latest` resolves to `0.1.5`; `dev` advances
|
|
18
|
+
separately. Use an exact published version for reproducibility or the stable
|
|
19
|
+
channel for initial setup. See [release status and policy](RELEASING.md).
|
|
20
|
+
|
|
21
|
+
[MCP 0.1.5](https://github.com/lambdadb/lambdadb-mcp/releases/tag/v0.1.5) is published
|
|
22
|
+
with LambdaDB SDK `0.8.1`, MCP SDK `1.32.2`, patched dependencies and Kiro/Claude
|
|
23
|
+
query-schema compatibility. This checkout starts the next `0.1.6-dev.1` source
|
|
24
|
+
base; check npm for the current published dev version. Existing direct MCP
|
|
25
|
+
installations need the new MCP version and an agent restart. CLI 0.1.5 still pins
|
|
26
|
+
MCP 0.1.4 and needs a subsequent CLI release with an updated pin.
|
|
29
27
|
|
|
30
28
|
This checkout pins MCP SDK `1.32.2` and requires Zod `^4.6.7`, with patched
|
|
31
29
|
transitive dependencies in the lockfile. It replaces the query tool's top-level
|
|
@@ -39,7 +37,7 @@ those features to this stdio-only server. See the
|
|
|
39
37
|
```sh
|
|
40
38
|
npx --yes @functional-systems/lambdadb-mcp
|
|
41
39
|
# Pin the stable release:
|
|
42
|
-
npx --yes @functional-systems/lambdadb-mcp@0.1.
|
|
40
|
+
npx --yes @functional-systems/lambdadb-mcp@0.1.5
|
|
43
41
|
# Or install globally:
|
|
44
42
|
npm install -g @functional-systems/lambdadb-mcp
|
|
45
43
|
lambdadb-mcp
|
|
@@ -114,8 +112,8 @@ Optional write tools:
|
|
|
114
112
|
|
|
115
113
|
## API contract and tool inputs
|
|
116
114
|
|
|
117
|
-
The LambdaDB SDK is pinned to `@functional-systems/lambdadb@0.
|
|
118
|
-
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).
|
|
119
117
|
This dependency update applies to builds containing this change. Publishing the SDK
|
|
120
118
|
alone does not update previously published or installed MCP packages.
|
|
121
119
|
|
|
@@ -126,11 +124,13 @@ alone does not update previously published or installed MCP packages.
|
|
|
126
124
|
Omitting `ref` reads from `main`. `consistentRead: true` is supported only by
|
|
127
125
|
Query/Fetch with an omitted ref or a direct Branch ref. List has no `consistentRead`.
|
|
128
126
|
- Query may omit `query` for match-all and accepts `facets` for keyword bucket counts
|
|
129
|
-
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.
|
|
130
128
|
Up to five facet fields (including dotted paths) are allowed. Each field's options
|
|
131
129
|
accept only `size`: an integer from 1–100, omitted, or `null`. Omitted/null bucket
|
|
132
130
|
size uses the server default of 10; MCP forwards it unchanged. Empty `facets: {}`
|
|
133
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.
|
|
134
134
|
- List also accepts `filter`, `fields`, `includeVectors`, and `partitionFilter`.
|
|
135
135
|
The SDK selects the extended POST endpoint when needed and preserves pagination tokens.
|
|
136
136
|
- Upsert/Delete accept an optional `branch`; omitting it writes to `main`.
|
|
@@ -208,7 +208,7 @@ Bayesian requires exactly two signals. Boolean subqueries may combine clauses
|
|
|
208
208
|
within a signal, but explicit boosts (even `1`) on either signal or its Boolean
|
|
209
209
|
descendants and nested rank-fusion queries are unsupported. Do not supply fusion
|
|
210
210
|
weights. Without rerank, top-level `candidateSize` is required and must satisfy
|
|
211
|
-
`1 <= size <= candidateSize <=
|
|
211
|
+
`1 <= size <= candidateSize <= 1000`; omitted `size` retains the server default of
|
|
212
212
|
10. The budget is per signal, independent of final output size and `knn.k`.
|
|
213
213
|
|
|
214
214
|
With rerank, omit top-level `candidateSize` and use `rerank.candidateSize`:
|
|
@@ -272,7 +272,7 @@ With write tools enabled, call `lambdadb_create_collection` with:
|
|
|
272
272
|
|
|
273
273
|
Then call `lambdadb_upsert_docs` with
|
|
274
274
|
`{"collectionName":"native-articles","docs":[{"id":"one","body":"Restore a saved version."}]}`.
|
|
275
|
-
The source
|
|
275
|
+
The source may be an unindexed stored string path; omit the generated vector from documents.
|
|
276
276
|
Use `knn.queryText` instead of `queryVector` for this field, including in either
|
|
277
277
|
Bayesian example above. For example, call `lambdadb_query_collection` with:
|
|
278
278
|
|
|
@@ -285,6 +285,9 @@ Bayesian example above. For example, call `lambdadb_query_collection` with:
|
|
|
285
285
|
```
|
|
286
286
|
|
|
287
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.
|
|
288
291
|
MCP does not infer a flag, provider, model or native embedding dimensions/similarity default.
|
|
289
292
|
The SDK rejects `managedEmbedding: false` with `embedding`, and native embedding
|
|
290
293
|
with top-level dimensions/similarity. Caller-provided vectors continue to use
|
|
@@ -327,7 +330,7 @@ ordered from lowest to highest relevance (2 KiB each, 8 KiB total UTF-8).
|
|
|
327
330
|
Omitted/null criteria uses defaults; text, order, nulls and omission are preserved.
|
|
328
331
|
|
|
329
332
|
Final `size`, vector-leg `knn.k`, and merged `rerank.candidateSize` are separate.
|
|
330
|
-
Require `1 <= size <= candidateSize <=
|
|
333
|
+
Require `1 <= size <= candidateSize <= 1000`; omitted/null candidateSize defaults
|
|
331
334
|
on the server to `max(50, size)`, with final size defaulting to 10. MCP never
|
|
332
335
|
increases `k`. Reranking requires a scoring retrieval query, forbids `sort`,
|
|
333
336
|
match-all and filter-only Boolean requests, and preserves ref/consistentRead
|
package/RELEASING.md
CHANGED
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
# Releasing LambdaDB MCP
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
`
|
|
7
|
-
[
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
3
|
+
## Current stable release: 0.1.5 (2026-10-25 KST)
|
|
4
|
+
|
|
5
|
+
[v0.1.5](https://github.com/lambdadb/lambdadb-mcp/releases/tag/v0.1.5) tags main
|
|
6
|
+
commit `1ae40dcbebea734e34ddde024e0991c8bf3fda64`, which merged
|
|
7
|
+
[release PR #27](https://github.com/lambdadb/lambdadb-mcp/pull/27) with preserved
|
|
8
|
+
ancestry. The user explicitly authorized the annotated tag, non-prerelease
|
|
9
|
+
GitHub Release and npm latest publication. The
|
|
10
|
+
[release workflow](https://github.com/lambdadb/lambdadb-mcp/actions/runs/40169478215)
|
|
11
|
+
passed Node.js 22.14.0 / 22 / 24 validation and published its exact tested artifact
|
|
12
|
+
with OIDC and provenance. Registry snapshot: `latest=0.1.5`, `dev=0.1.5-dev.18`.
|
|
13
|
+
|
|
14
|
+
The downloaded 15-file stable artifact matched the tagged source and registry
|
|
15
|
+
integrity, passed 37 installed-package tests, and had zero consumer audit
|
|
16
|
+
findings. `npm audit signatures` reported no invalid or missing signatures;
|
|
17
|
+
provenance repository, workflow, tag, commit and artifact digest matched.
|
|
18
|
+
Actual Kiro V2/Sonnet called the published MCP directly against a synthetic
|
|
19
|
+
backend without a resolver substitution. A separate actual development-service
|
|
20
|
+
check verified authentication and collection-list access only. No writes or
|
|
21
|
+
search readiness are claimed. See the
|
|
22
|
+
[validation record](docs/validation/2026-10-25-0.1.5.md). Do not repeat publication
|
|
23
|
+
or move the immutable tag.
|
|
24
|
+
|
|
25
|
+
`release/sync-0.1.5` brings this main history back into develop with the next
|
|
26
|
+
`0.1.6-dev.1` source base. Merge with preserved ancestry. Eligible develop merges
|
|
27
|
+
can publish dev versions while latest stays on 0.1.5. CLI 0.1.5 still pins MCP
|
|
28
|
+
0.1.4; its separate pin update/release is required for stable CLI users.
|
|
29
|
+
|
|
30
|
+
## Previous stable release: 0.1.4 (2026-10-07 KST)
|
|
25
31
|
|
|
26
32
|
[v0.1.4](https://github.com/lambdadb/lambdadb-mcp/releases/tag/v0.1.4) tags main
|
|
27
33
|
commit `f84038962bbdc6f5375b873727d0cf54d843c7b2`, which merged
|
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.
|
|
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
|
}
|