@vectros-ai/mcp-server 0.5.2 → 0.6.0
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 +66 -0
- package/README.md +17 -2
- package/dist/cli-http.js +388 -134
- package/dist/cli-http.js.map +1 -1
- package/dist/cli-http.mjs +388 -134
- package/dist/cli-http.mjs.map +1 -1
- package/dist/cli.js +388 -134
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +388 -134
- package/dist/cli.mjs.map +1 -1
- package/dist/index.js +388 -134
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +388 -134
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,72 @@
|
|
|
3
3
|
All notable changes to `@vectros-ai/mcp-server` are documented here.
|
|
4
4
|
This project adheres to [Semantic Versioning](https://semver.org).
|
|
5
5
|
|
|
6
|
+
## 0.6.0 — 2026-07-03
|
|
7
|
+
|
|
8
|
+
Curation-focused tool improvements: look records and documents up by your own
|
|
9
|
+
identifier, re-sync a changed body, archive and restore documents without delete
|
|
10
|
+
authority, and get a clear error when an argument is wrong.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`externalId` selector on `record_get`, `record_update`, `document_get`, and
|
|
15
|
+
`document_update`.** Pass `externalId` together with `type` as an alternative to the
|
|
16
|
+
Vectros `id` — the tool resolves it for you, so an agent that only knows its own
|
|
17
|
+
identifier no longer has to make a separate lookup call first. `id` still works and
|
|
18
|
+
takes precedence when both are supplied.
|
|
19
|
+
- **`upsert` on `document_ingest`.** With `upsert: true`, ingesting a document whose
|
|
20
|
+
`externalId` already exists overwrites its stored content and re-indexes it, instead
|
|
21
|
+
of returning the existing document unchanged. Re-supply the same `schemaId` so the
|
|
22
|
+
`externalId` resolves within the same type.
|
|
23
|
+
- **`text` on `document_update`.** Replace a text document's body in place; the document
|
|
24
|
+
is re-queued for indexing so search reflects the new content.
|
|
25
|
+
- **`status` on `document_update` — archive and restore a document.** Set
|
|
26
|
+
`status: "ARCHIVED"` to soft-retract a document: it is pulled from search and recall
|
|
27
|
+
but kept and recoverable. Set `status: "ACTIVE"` to re-index and restore it. This is
|
|
28
|
+
the way to retire superseded content with a credential that has no delete authority.
|
|
29
|
+
Document reads (`document_get`, `document_query`) surface the caller-controlled
|
|
30
|
+
lifecycle `status` alongside the read-only processing `indexStatus`.
|
|
31
|
+
- **`hybrid_search` results are now sized for an agent's context window.** Each hit returns
|
|
32
|
+
its matched `chunkText` plus a short `snippet` by default; the broader surrounding passage
|
|
33
|
+
(`contextText`) is opt-in via **`includeContext: true`** (and is de-duplicated against
|
|
34
|
+
`chunkText` when included, so the same text is never sent twice). Internal search-index
|
|
35
|
+
bookkeeping fields (`tenantId`, `owner_id`, `model_type`, `rootFolderId`, `folderId`) are
|
|
36
|
+
stripped from each hit's `metadata`, keeping the fields you ingested. An oversized response
|
|
37
|
+
is trimmed to the top hits with **`truncated: true`** so one search can't overflow the
|
|
38
|
+
context window. A **`textLegEmpty: true`** flag signals that the keyword (BM25) leg matched
|
|
39
|
+
nothing across every hit — usually a long natural-language query under the default
|
|
40
|
+
`PHRASE` matching; retry with a short keyword phrase or `textMode: "OR"`.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- Updated the bundled `@vectros-ai/sdk` to **0.32.0**, keeping the server aligned
|
|
45
|
+
with the current Vectros API (adds the document lifecycle `status` field, kept
|
|
46
|
+
distinct from the processing `indexStatus`).
|
|
47
|
+
- **Document responses keep the two status axes separate.** `status` is the
|
|
48
|
+
caller-controlled lifecycle (`ACTIVE`/`ARCHIVED`); `indexStatus` is the read-only
|
|
49
|
+
processing state (`PENDING_INDEX`, `INDEXED`, …), matching the current API.
|
|
50
|
+
`document_ingest`'s file mode accordingly reports its "uploaded, indexing queued"
|
|
51
|
+
marker as `indexStatus: "PENDING_INDEX"` — previously it overwrote `status` with
|
|
52
|
+
that value. Poll `document_get` until `indexStatus` is `INDEXED`.
|
|
53
|
+
- **Unknown arguments are now rejected, not ignored.** Calling a tool with an argument
|
|
54
|
+
it does not accept returns an error that names the unrecognized key and lists the
|
|
55
|
+
valid arguments for that tool, instead of silently dropping it. This surfaces typos
|
|
56
|
+
and stale parameter names immediately rather than letting a call quietly do the wrong
|
|
57
|
+
thing. `record_query`'s `field` documentation now also calls out that `externalId` is
|
|
58
|
+
always queryable.
|
|
59
|
+
|
|
60
|
+
## 0.5.3 — 2026-06-29
|
|
61
|
+
|
|
62
|
+
SDK refresh. No tool, parameter, or result shapes changed.
|
|
63
|
+
|
|
64
|
+
### Changed
|
|
65
|
+
|
|
66
|
+
- Updated the bundled `@vectros-ai/sdk` to **0.31.0**, keeping the server aligned
|
|
67
|
+
with the current Vectros API (create endpoints now report whether a resource was
|
|
68
|
+
newly created and accept an opt-in `upsert`). The `record_create`, `folder_create`,
|
|
69
|
+
and `document_ingest` tools were adjusted to the regenerated client's request shape;
|
|
70
|
+
their MCP-facing inputs and outputs are unchanged.
|
|
71
|
+
|
|
6
72
|
## 0.5.2 — 2026-06-26
|
|
7
73
|
|
|
8
74
|
Distribution fix + SDK refresh. No tool, parameter, or result shapes changed.
|
package/README.md
CHANGED
|
@@ -55,6 +55,21 @@ developer portal. The command then:
|
|
|
55
55
|
Restart your MCP client and you're done. It's idempotent (re-run any time);
|
|
56
56
|
`--rotate` replaces this machine's key.
|
|
57
57
|
|
|
58
|
+
**Want to browse the data yourself?** `bootstrap` sets up the key for your
|
|
59
|
+
*agent*, not a login for *you* — so a blueprint's context won't appear in the
|
|
60
|
+
data-plane app's switcher until you join your own user to it (the app lists only
|
|
61
|
+
contexts your user has access in). Grant yourself a role once, either in the admin
|
|
62
|
+
app (**Access → Contexts → _your context_ → Profiles → Create profile**, pick
|
|
63
|
+
yourself from the by-email picker, choose a role — no raw id needed) or from the
|
|
64
|
+
CLI with `--principal me` (resolves to your own user):
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
vectros access grant --principal me --context <context-id> --role <role>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Blueprints that ship a human role (e.g. `agentic-sdlc`'s `editor`) let you use
|
|
71
|
+
`--role`; otherwise grant inline scopes with `--actions records:r,search:r,…`.
|
|
72
|
+
|
|
58
73
|
For scripted / agent use, set the sign-in token in the environment and skip
|
|
59
74
|
the prompts:
|
|
60
75
|
|
|
@@ -181,8 +196,8 @@ available.
|
|
|
181
196
|
|---|---|
|
|
182
197
|
| `document_ingest` | Create a document — inline text body OR local file upload (file mode is stdio-transport only). Idempotent by `externalId`; optional `schemaId` + `payload` for a typed, lookup-queryable document. |
|
|
183
198
|
| `document_query` | Query documents by lookup field (equality / range / prefix, with `asc`/`desc` ordering) or list mode (filter by ownership + type). |
|
|
184
|
-
| `document_get` | Fetch a document by id (metadata
|
|
185
|
-
| `document_update` | Patch a document's metadata / typed payload (deep-merged); optimistic concurrency via `expectedVersion`. |
|
|
199
|
+
| `document_get` | Fetch a document by id (metadata incl. lifecycle `status` + processing `indexStatus`; optional text truncated at ~8K tokens; optional presigned `downloadUrl` for file-backed documents). |
|
|
200
|
+
| `document_update` | Patch a document's metadata / typed payload (deep-merged); archive/restore via `status` (`ARCHIVED` soft-retracts from search, `ACTIVE` restores); optimistic concurrency via `expectedVersion`. |
|
|
186
201
|
| `document_delete` | Permanently delete a document by id (removes it and its indexed content). |
|
|
187
202
|
|
|
188
203
|
**Folders** (group records + documents)
|