@functional-systems/lambdadb-mcp 0.1.4-dev.13 → 0.1.4-dev.15
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 +2 -2
- package/CONTRIBUTING.md +1 -1
- package/README.md +17 -13
- package/RELEASING.md +2 -2
- package/dist/tools/read.js +2 -2
- package/dist/tools/write.js +2 -2
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
|
|
17
17
|
- Pin the LambdaDB TypeScript SDK to 0.7.0 and expose all 49 fixed lowercase
|
|
18
18
|
analyzer presets in collection-tool guidance; preserve analyzer serialization.
|
|
19
|
-
- Add optional per-query
|
|
19
|
+
- Add optional per-query native reranking to the MCP schema and SDK request path,
|
|
20
20
|
preserving omission/null, distinct sizes, custom criteria, envelope scores and
|
|
21
21
|
status metadata, including document downloads. Retain SDK validation and errors.
|
|
22
22
|
- Extend local and installed-package contracts for analyzer expansion and reranking;
|
|
23
23
|
update the opt-in live analyzer check to cover all 49 names.
|
|
24
|
-
- Add a separate opt-in
|
|
24
|
+
- Add a separate opt-in native reranking live suite for real default/custom
|
|
25
25
|
inference, empty candidates, omitted/null behavior and docsUrl envelope
|
|
26
26
|
preservation, with owned-resource cleanup and no fixed relevance expectations.
|
|
27
27
|
- Native SDK usage is unchanged; no Qdrant mapping exists in this server. Supporting
|
package/CONTRIBUTING.md
CHANGED
|
@@ -8,7 +8,7 @@ changes outside the PR. Use a dedicated worktree when another checkout is in use
|
|
|
8
8
|
|
|
9
9
|
Use Node.js 22.14.0 or newer. CI verifies the exact minimum 22.14.0 and current
|
|
10
10
|
22.x and 24.x LTS releases. Node 20 is end-of-life and is no longer supported.
|
|
11
|
-
The runtime dependencies permit older Node versions (MCP SDK 1.
|
|
11
|
+
The runtime dependencies permit older Node versions (MCP SDK 1.31.0 declares
|
|
12
12
|
Node >=18), but that is not a promise to support end-of-life runtimes. The
|
|
13
13
|
22.14.0 floor also aligns with the CLI and npm's OIDC publishing runtime floor.
|
|
14
14
|
See the [Node release schedule](https://nodejs.org/en/about/previous-releases)
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ reproducibility or the default stable channel for initial setup. See
|
|
|
21
21
|
|
|
22
22
|
[MCP 0.1.3](https://github.com/lambdadb/lambdadb-mcp/releases/tag/v0.1.3) is the
|
|
23
23
|
published stable release with SDK 0.8.0, Bayesian hybrid search and native
|
|
24
|
-
embedding configuration, alongside
|
|
24
|
+
embedding configuration, alongside native reranking and all 49 text analyzers.
|
|
25
25
|
This synchronization starts the next `0.1.4-dev.1` source base; check npm for the
|
|
26
26
|
current published dev version. Use exact stable version `0.1.3` for reproducible
|
|
27
27
|
installed execution.
|
|
@@ -55,7 +55,9 @@ configurations for reproducibility. `@dev`, `@rc` and unqualified (`latest`) res
|
|
|
55
55
|
different release channels; installed copies do not update themselves.
|
|
56
56
|
|
|
57
57
|
The server uses stdio: stdout contains only MCP JSON-RPC messages, diagnostics go
|
|
58
|
-
to stderr, and stdin closure/SIGINT/SIGTERM ends the process.
|
|
58
|
+
to stderr, and stdin closure/SIGINT/SIGTERM ends the process. The MCP SDK limits
|
|
59
|
+
the stdio receive buffer to 10 MiB and closes the transport if that limit is
|
|
60
|
+
exceeded; keep incoming JSON-RPC messages below it. Running it without an
|
|
59
61
|
MCP client waits for protocol input. See the [MCP transport specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports).
|
|
60
62
|
|
|
61
63
|
## Project Structure
|
|
@@ -104,8 +106,8 @@ Optional write tools:
|
|
|
104
106
|
|
|
105
107
|
## API contract and tool inputs
|
|
106
108
|
|
|
107
|
-
The LambdaDB SDK is pinned to `@functional-systems/lambdadb@0.8.
|
|
108
|
-
the published package and [v0.8.
|
|
109
|
+
The LambdaDB SDK is pinned to `@functional-systems/lambdadb@0.8.1`, checked against
|
|
110
|
+
the published package and [v0.8.1 release](https://github.com/lambdadb/lambdadb-typescript-client/releases/tag/v0.8.1).
|
|
109
111
|
This dependency update applies to builds containing this change. Publishing the SDK
|
|
110
112
|
alone does not update previously published or installed MCP packages.
|
|
111
113
|
|
|
@@ -230,7 +232,7 @@ integer candidate budgets unchanged, and leaves Bayesian structure, bounds and
|
|
|
230
232
|
cross-field validation to the server, retaining service errors. No query defaults,
|
|
231
233
|
weights or candidate counts are inserted by MCP. Bayesian scores are heuristic
|
|
232
234
|
fusion scores; applied reranking preserves them in `retrievalScore` and retains
|
|
233
|
-
all rerank status metadata, including
|
|
235
|
+
all rerank status metadata, including when the SDK downloads documents from `docsUrl`.
|
|
234
236
|
|
|
235
237
|
The [Bayesian contract](https://github.com/lambdadb/lambdadb-typescript-client/blob/v0.8.0/docs/bayesian-search.md)
|
|
236
238
|
and native embedding additions below are pinned to backend
|
|
@@ -274,8 +276,8 @@ Bayesian example above. For example, call `lambdadb_query_collection` with:
|
|
|
274
276
|
}
|
|
275
277
|
```
|
|
276
278
|
|
|
277
|
-
Native dimensions and similarity are optional and belong inside `embedding`.
|
|
278
|
-
MCP does not infer a flag, provider, model or native dimensions/similarity default.
|
|
279
|
+
Native embedding dimensions and similarity are optional and belong inside `embedding`.
|
|
280
|
+
MCP does not infer a flag, provider, model or native embedding dimensions/similarity default.
|
|
279
281
|
The SDK rejects `managedEmbedding: false` with `embedding`, and native embedding
|
|
280
282
|
with top-level dimensions/similarity. Caller-provided vectors continue to use
|
|
281
283
|
top-level dimensions/similarity. Free-form nested object configurations retain
|
|
@@ -283,12 +285,14 @@ server validation. For older servers, explicitly add `managedEmbedding: true`
|
|
|
283
285
|
beside `type`; it is preserved. Normalized collection metadata may still contain
|
|
284
286
|
that true flag. See the [native embedding contract](https://github.com/lambdadb/lambdadb-typescript-client/blob/v0.8.0/docs/native-embeddings.md).
|
|
285
287
|
|
|
286
|
-
|
|
288
|
+
<a id="optional-managed-reranking"></a>
|
|
289
|
+
|
|
290
|
+
### Optional native reranking
|
|
287
291
|
|
|
288
292
|
`lambdadb_query_collection` accepts per-query `rerank`; omission or `null`
|
|
289
293
|
preserves existing searches. Collection creation has no rerank setting.
|
|
290
|
-
LambdaDB
|
|
291
|
-
See the [
|
|
294
|
+
LambdaDB supplies provider credentials; only the existing project API key is needed.
|
|
295
|
+
See the [native reranking contract](https://github.com/lambdadb/lambdadb-typescript-client/blob/v0.7.0/docs/managed-reranking.md).
|
|
292
296
|
|
|
293
297
|
```json
|
|
294
298
|
{
|
|
@@ -433,7 +437,7 @@ temporary collection in cleanup, and verifies that the collection is absent.
|
|
|
433
437
|
Branch/Tag/Alias setup and collection cleanup use the SDK directly because these
|
|
434
438
|
operations are not exposed as MCP tools. This test is separate from `npm run check`.
|
|
435
439
|
|
|
436
|
-
|
|
440
|
+
Native reranking has a separate live suite because it requires an enabled
|
|
437
441
|
`typesafe` / `jev-1.13.0` model and can incur inference cost. Use the same explicitly
|
|
438
442
|
authorized development project and write opt-in, with an additional inference opt-in:
|
|
439
443
|
|
|
@@ -454,8 +458,8 @@ suite does not deliberately induce failures or verify search quality, load,
|
|
|
454
458
|
production deployment or billing readiness. These live suites are outside default
|
|
455
459
|
checks and credential-free CI.
|
|
456
460
|
|
|
457
|
-
Bayesian/native embedding verification also requires explicit
|
|
458
|
-
opt-in for OpenAI
|
|
461
|
+
Bayesian/native embedding verification also requires explicit inference
|
|
462
|
+
opt-in for native embedding with OpenAI and native reranking with TypeSafe:
|
|
459
463
|
|
|
460
464
|
```bash
|
|
461
465
|
LAMBDADB_RUN_LIVE_TESTS=1 LAMBDADB_RUN_LIVE_RERANK_TESTS=1 LAMBDADB_LIVE_CONFIRM_PROJECT=YOUR_DEV_PROJECT npm run test:live:bayesian
|
package/RELEASING.md
CHANGED
|
@@ -34,7 +34,7 @@ A downloaded stable tarball matched registry integrity, source commit and SDK
|
|
|
34
34
|
0.7.0 and passed 31 clean-consumer stdio tests. Provenance statement repository,
|
|
35
35
|
workflow, tag, source commit and subject digest matched the publication.
|
|
36
36
|
|
|
37
|
-
SDK 0.7.0 adds 49 fixed text analyzer presets and optional per-query
|
|
37
|
+
SDK 0.7.0 adds 49 fixed text analyzer presets and optional per-query native
|
|
38
38
|
reranking. Read-only defaults and explicit write opt-in remain. See
|
|
39
39
|
`docs/validation/2026-10-04-0.1.2.md` for separate candidate, authorized
|
|
40
40
|
source-build live, published dev and published stable evidence. Do not repeat the
|
|
@@ -46,7 +46,7 @@ while `latest` stays on 0.1.2 until an explicitly authorized stable release.
|
|
|
46
46
|
Do not merge stable version metadata directly into develop.
|
|
47
47
|
|
|
48
48
|
Live suites require explicit designation of a development project. Reranking
|
|
49
|
-
also requires
|
|
49
|
+
also requires native reranking inference opt-in; no Jev API key is required. Live contract
|
|
50
50
|
checks do not establish production deployment, search quality, load/failure
|
|
51
51
|
coverage or billing readiness. Supporting backend deployment/model availability
|
|
52
52
|
and keyword-index requirements remain; existing collections/indexes are not migrated.
|
package/dist/tools/read.js
CHANGED
|
@@ -23,7 +23,7 @@ const rerankSchema = z.strictObject({
|
|
|
23
23
|
.describe("Omitted/null defaults to error. returnOriginal covers only eligible provider failures."),
|
|
24
24
|
criteria: z.array(z.string().min(1)).min(2).max(10).meta({ uniqueItems: true }).nullable().optional()
|
|
25
25
|
.describe("Distinct nonblank descriptions from lowest to highest relevance, at most 2 KiB each and 8 KiB total UTF-8. Omitted/null uses defaults.")
|
|
26
|
-
}).nullable().optional().describe("Optional per-query
|
|
26
|
+
}).nullable().optional().describe("Optional per-query native reranking; requires a scoring query and positive size, forbids sort. LambdaDB supplies provider credentials.");
|
|
27
27
|
export function registerReadTools(server, config) {
|
|
28
28
|
server.registerTool("lambdadb_list_collections", {
|
|
29
29
|
title: "List Collections",
|
|
@@ -68,7 +68,7 @@ export function registerReadTools(server, config) {
|
|
|
68
68
|
});
|
|
69
69
|
server.registerTool("lambdadb_query_collection", {
|
|
70
70
|
title: "Query Collection",
|
|
71
|
-
description: "Search documents with optional Bayesian hybrid search,
|
|
71
|
+
description: "Search documents with optional Bayesian hybrid search, native reranking and keyword facet counts across all matches. Omit query for match-all; size: 0 requires facets and forbids reranking. Reranking requires a scoring query and forbids sort; it does not enable vector/hybrid facets. Applied envelope score is an evaluation score, retrievalScore preserves search score, and rerank metadata reports status. Features require a supporting server; facets require newly built keyword indexes.",
|
|
72
72
|
annotations: {
|
|
73
73
|
readOnlyHint: true,
|
|
74
74
|
openWorldHint: false
|
package/dist/tools/write.js
CHANGED
|
@@ -6,13 +6,13 @@ import { jsonResult, nameSchema, partitionFilterSchema } from "./shared.js";
|
|
|
6
6
|
export function registerWriteTools(server, config) {
|
|
7
7
|
server.registerTool("lambdadb_create_collection", {
|
|
8
8
|
title: "Create Collection",
|
|
9
|
-
description: `Create a new collection in the configured project. Fixed lowercase text analyzer presets: ${Object.values(Analyzer).join(", ")}. Omitted analyzers uses standard; custom pipelines/options are unsupported. The keyword text analyzer is distinct from the keyword field type. Keyword indexes built on a supporting server support facets. Native vector fields accept embedding without managedEmbedding; explicit managedEmbedding: true remains supported for older servers.`,
|
|
9
|
+
description: `Create a new collection in the configured project. Fixed lowercase text analyzer presets: ${Object.values(Analyzer).join(", ")}. Omitted analyzers uses standard; custom pipelines/options are unsupported. The keyword text analyzer is distinct from the keyword field type. Keyword indexes built on a supporting server support facets. Native embedding vector fields accept embedding without managedEmbedding; explicit managedEmbedding: true remains supported for older servers.`,
|
|
10
10
|
annotations: {
|
|
11
11
|
openWorldHint: false
|
|
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 vectors: {type: 'vector', embedding: {provider, model, sourceField, dimensions?, similarity?}}; declare sourceField as text. Native 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 defaults are inferred. Caller-provided vectors retain top-level 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?}}; declare sourceField as text. 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."),
|
|
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.4-dev.
|
|
3
|
+
"version": "0.1.4-dev.15",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "MCP server for LambdaDB data plane",
|
|
6
6
|
"type": "module",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"test:package": "node scripts/test-package.mjs"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@functional-systems/lambdadb": "0.8.
|
|
28
|
-
"@modelcontextprotocol/sdk": "1.
|
|
27
|
+
"@functional-systems/lambdadb": "0.8.1",
|
|
28
|
+
"@modelcontextprotocol/sdk": "1.31.0",
|
|
29
29
|
"zod": "^4.1.12"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"access": "public",
|
|
63
63
|
"registry": "https://registry.npmjs.org"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "752fd825480556305f2a89025a0d87f5126b4d1b"
|
|
66
66
|
}
|