@vectros-ai/mcp-server 0.17.2 → 0.18.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 +28 -0
- package/README.md +37 -20
- package/dist/cli-http.js +197 -166
- package/dist/cli-http.js.map +1 -1
- package/dist/cli-http.mjs +197 -166
- package/dist/cli-http.mjs.map +1 -1
- package/dist/cli.js +197 -166
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +197 -166
- package/dist/cli.mjs.map +1 -1
- package/dist/index.js +197 -166
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +197 -166
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
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.18.0 — 2026-10-01
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
- **`document_ingest` takes an optional `confirmUntyped`.** The platform refuses a document create that supplies an
|
|
11
|
+
`externalId` without a `schemaId` (`400`), because `externalId` is unique per schema. Pass `confirmUntyped: true`
|
|
12
|
+
to say an untyped document is intended; it works in both text and file mode and is never set for you. An agent
|
|
13
|
+
that calls `document_ingest` with an `externalId` and no `schemaId` gets that `400` unless it passes
|
|
14
|
+
`confirmUntyped: true` or a `schemaId`.
|
|
15
|
+
- **`rag_ask` and `document_ask` take an optional `providerAlias`.** It routes that one call through the model
|
|
16
|
+
provider your account has activated under that alias instead of platform-hosted Bedrock, and `model` then names a
|
|
17
|
+
model on that provider's own id space. It works only after your account has configured the provider and signed the
|
|
18
|
+
platform's risk-acceptance waiver; otherwise the platform refuses the call with a `403`, which the tool returns as
|
|
19
|
+
written. The README section on routing a call through your own provider has the details.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- **`rag_ask` and `document_ask` descriptions say where a call is served:** platform-hosted AWS Bedrock by default,
|
|
24
|
+
your own model provider when `providerAlias` is set.
|
|
25
|
+
- **`document_ingest` in file mode reports how to confirm a replacement.** When the call replaces an existing
|
|
26
|
+
document's file (`created: false`), the tool description and the response note say to watch the document's
|
|
27
|
+
`fileItemId` for the new file instead of `indexStatus`, and `document_get`'s `includeDownloadUrl` description says a
|
|
28
|
+
download URL can stop working before its stated `downloadExpires` once the file is replaced. The description also
|
|
29
|
+
states that re-ingesting a file against an existing `externalId` needs `documents:u`.
|
|
30
|
+
- **`rag_ask`'s model example is `claude-opus-5-5`,** since `claude-opus-4-8` is retired.
|
|
31
|
+
- **The README states that tool output is untrusted, API-supplied content.** No tool sanitizes, escapes or
|
|
32
|
+
pre-renders the text it returns; render it safely in your own client.
|
|
33
|
+
|
|
6
34
|
## 0.17.2 — 2026-09-22
|
|
7
35
|
|
|
8
36
|
### Changed
|
package/README.md
CHANGED
|
@@ -86,7 +86,7 @@ Prefer to wire it up by hand? See **Configure manually** below.
|
|
|
86
86
|
|---|---|---|
|
|
87
87
|
| **Claude Desktop** | [Desktop Extension (`.mcpb`)](https://github.com/vectros-ai/vectros-mcp-server/releases/latest/download/vectros.mcpb) — double-click, paste your key | [JSON snippet](#configure-manually-claude-desktop-or-any-mcp-client) |
|
|
88
88
|
| **Cursor** | [](https://cursor.com/install-mcp?name=vectros&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB2ZWN0cm9zLWFpL21jcC1zZXJ2ZXIiXSwiZW52Ijp7IlZFQ1RST1NfQVBJX0tFWSI6IiJ9fQ%3D%3D) | `.cursor/mcp.json`, same shape as below |
|
|
89
|
-
| **VS Code** | [](https://insiders.vscode.dev/redirect/mcp/install?name=vectros&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40vectros-ai%2Fmcp-server%22%5D%2C%22env%22%3A%7B%22VECTROS_API_KEY%22%3A%22%22%7D%7D) | `.vscode/mcp.json`, same
|
|
89
|
+
| **VS Code** | [](https://insiders.vscode.dev/redirect/mcp/install?name=vectros&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40vectros-ai%2Fmcp-server%22%5D%2C%22env%22%3A%7B%22VECTROS_API_KEY%22%3A%22%22%7D%7D) | `.vscode/mcp.json`, the same entry under a top-level `servers` key |
|
|
90
90
|
| **Claude Code** | `claude mcp add` (below) | [project `.mcp.json`](#configure-manually-claude-code) |
|
|
91
91
|
| **Cline / Continue** | — | same JSON snippet as Claude Desktop |
|
|
92
92
|
| **Smithery** | `npx -y @smithery/cli install @vectros-ai/mcp-server` | — |
|
|
@@ -207,8 +207,8 @@ directly with `-e VECTROS_API_KEY=ssk_live_...` — but then keep that config
|
|
|
207
207
|
**local**: add `.mcp.json` to `.gitignore` first, rather than committing it
|
|
208
208
|
with the key inside.
|
|
209
209
|
|
|
210
|
-
Add `-e VECTROS_API_BASE_URL
|
|
211
|
-
environment.
|
|
210
|
+
Add `-e VECTROS_API_BASE_URL=<your environment's API base URL>` to point the server at a
|
|
211
|
+
different environment.
|
|
212
212
|
|
|
213
213
|
**Load it into a session by restarting.** A Claude Code session that was
|
|
214
214
|
already open when you added the server won't pick it up mid-session — fully
|
|
@@ -219,12 +219,11 @@ instead. Config is keyed by the **git common root**, so a linked worktree
|
|
|
219
219
|
resolves to its main repo's `.mcp.json` — add and open from the same project.
|
|
220
220
|
|
|
221
221
|
> **Windows note:** if your `.npmrc` (or a global npm config) points the
|
|
222
|
-
> `@vectros-ai` scope at
|
|
223
|
-
> can resolve
|
|
224
|
-
>
|
|
225
|
-
>
|
|
226
|
-
>
|
|
227
|
-
> @vectros-ai/mcp-server@<version>`) known to work.
|
|
222
|
+
> `@vectros-ai` scope at another registry, a bare `npx -y @vectros-ai/mcp-server`
|
|
223
|
+
> can resolve a build other than the public release. If the command above fails
|
|
224
|
+
> to start, either remove the scoped-registry override for a plain `npx` run, or
|
|
225
|
+
> pin an explicit version (`npx -y @vectros-ai/mcp-server@<version>`) known to
|
|
226
|
+
> work.
|
|
228
227
|
|
|
229
228
|
## Tools (23 tools)
|
|
230
229
|
|
|
@@ -233,8 +232,8 @@ resolves to its main repo's `.mcp.json` — add and open from the same project.
|
|
|
233
232
|
| Tool | What it does |
|
|
234
233
|
|---|---|
|
|
235
234
|
| `hybrid_search` | Hybrid BM25 + dense search across the tenant's indexed content (records + documents). Narrow by ownership (`scope` for one dimension, `scopeFilters` for several at once — e.g. one client within one org), folder, type, metadata filters, a created date window, and keyword-precision (`textMode`) / relevance floors. Returns the indexed projection of each hit. |
|
|
236
|
-
| `rag_ask` | Ask a question grounded against the indexed corpus. Scope retrieval (ownership — `scope` or multi-dimension `scopeFilters` — / folder / type / metadata filters / date window) and steer generation (`instructions` / `temperature`). Streaming generation aggregated; progress notifications keep the call alive for the generation window. |
|
|
237
|
-
| `document_ask` | Ask a question grounded against a single document. Same aggregation + progress-notification shape as `rag_ask`. |
|
|
235
|
+
| `rag_ask` | Ask a question grounded against the indexed corpus. Scope retrieval (ownership — `scope` or multi-dimension `scopeFilters` — / folder / type / metadata filters / date window) and steer generation (`instructions` / `temperature`). Streaming generation aggregated; progress notifications keep the call alive for the generation window. Optional `providerAlias` routes one call through your own model provider (see below). |
|
|
236
|
+
| `document_ask` | Ask a question grounded against a single document. Same aggregation + progress-notification shape as `rag_ask`, including the optional `providerAlias`. |
|
|
238
237
|
|
|
239
238
|
**Records** (structured, schema-validated data)
|
|
240
239
|
|
|
@@ -253,8 +252,8 @@ resolves to its main repo's `.mcp.json` — add and open from the same project.
|
|
|
253
252
|
|
|
254
253
|
| Tool | What it does |
|
|
255
254
|
|---|---|
|
|
256
|
-
| `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. |
|
|
257
|
-
| `document_query` | Query documents by lookup field (equality / range / prefix, with `asc`/`desc` ordering) or list mode (filter by
|
|
255
|
+
| `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. An `externalId` with no `schemaId` is refused by platform 0.46.0 and later unless you also pass `confirmUntyped: true`. |
|
|
256
|
+
| `document_query` | Query documents by lookup field (equality / range / prefix, with `asc`/`desc` ordering) or list mode (filter by folder and ownership). |
|
|
258
257
|
| `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 — always forces a download, never inline rendering, regardless of file type). |
|
|
259
258
|
| `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`. |
|
|
260
259
|
| `document_delete` | Permanently delete a document by id (removes it and its indexed content). |
|
|
@@ -280,6 +279,19 @@ All 23 tools wrap published Vectros HTTP API endpoints. JSON
|
|
|
280
279
|
responses are what the agent sees as tool output. Per-call cost
|
|
281
280
|
surfaces via the `usage` field on inference responses.
|
|
282
281
|
|
|
282
|
+
### Routing a call through your own model provider
|
|
283
|
+
|
|
284
|
+
`rag_ask` and `document_ask` take an optional `providerAlias`: the alias of a model provider config your Vectros
|
|
285
|
+
account has activated. When you pass it, that one call is served by your own provider instead of the
|
|
286
|
+
platform-hosted default, and `model` then names a model on your provider's own id space (it falls back to that
|
|
287
|
+
provider config's default model when omitted). The server forwards `providerAlias` only when you supply it and
|
|
288
|
+
never fills it in.
|
|
289
|
+
|
|
290
|
+
It works only after your account has set up the provider and signed the platform's risk-acceptance waiver. Without
|
|
291
|
+
both, the platform refuses the call with a `403`, which the tool returns to you as written. A call served by your
|
|
292
|
+
own provider leaves the platform-hosted Bedrock path, and Vectros's AWS BAA boundary, so decide deliberately whether a given call should use it.
|
|
293
|
+
Nothing here is a statement about how a provider you chose handles your data.
|
|
294
|
+
|
|
283
295
|
### Opting into a subset
|
|
284
296
|
|
|
285
297
|
Pass `VECTROS_MCP_TOOLS=hybrid_search,rag_ask` to register only those
|
|
@@ -368,7 +380,7 @@ running as — `vectros keyring doctor` shows the same view.
|
|
|
368
380
|
|---|---|---|---|
|
|
369
381
|
| `VECTROS_API_KEY` | no\* | — | Vectros API key. Accepts `sk_*` / `ssk_*` / `st_*`; `ssk_*` recommended. \*Required **unless** the `vectros` CLI is installed with a usable keyring entry — see [Credential resolution](#credential-resolution). Takes precedence when set. |
|
|
370
382
|
| `VECTROS_KEYRING_ALIAS` | no | (the active entry) | Resolve this `vectros` keyring entry instead of the active one. Ignored when `VECTROS_API_KEY` is set. |
|
|
371
|
-
| `VECTROS_API_BASE_URL` | no | `https://api.vectros.ai` | Override for
|
|
383
|
+
| `VECTROS_API_BASE_URL` | no | `https://api.vectros.ai` | Override for another environment. Validated: must be `https://` (or `http://` to localhost) and an official `*.vectros.ai` host. |
|
|
372
384
|
| `VECTROS_ALLOW_INSECURE_BASE_URL` | no | — | Set `1` to bypass the base-URL allow-list (e.g. a trusted local proxy). **Not recommended** — sends your key to an unvalidated host; logs a warning. |
|
|
373
385
|
| `VECTROS_MCP_INGEST_ROOT` | no | process cwd | Directory `document_ingest`'s `filePath` mode is jailed to. Paths escaping it (traversal/absolute/symlink) or matching a sensitive pattern are rejected. |
|
|
374
386
|
| `VECTROS_MCP_TOOLS` | no | (all tools) | Comma-separated tool names (e.g. `hybrid_search,rag_ask`). |
|
|
@@ -498,17 +510,16 @@ The server is on a pre-1.0 track toward a stable 1.0 release.
|
|
|
498
510
|
|
|
499
511
|
## Rate limits
|
|
500
512
|
|
|
501
|
-
Tool calls hit the same per-
|
|
502
|
-
|
|
503
|
-
`Retry-After` hint so the agent can pace and retry rather than blind-retrying.
|
|
504
|
-
|
|
505
|
-
limits.
|
|
513
|
+
Tool calls hit the same per-minute rate limits as any API client; the
|
|
514
|
+
[rate limits guide](https://docs.vectros.ai/guides/operations-trust/rate-limits) says which requests count. On a `429` the server surfaces the error with its
|
|
515
|
+
`Retry-After` hint so the agent can pace and retry rather than blind-retrying. The guide also lists
|
|
516
|
+
the per-plan limits.
|
|
506
517
|
|
|
507
518
|
## Building from source
|
|
508
519
|
|
|
509
520
|
```sh
|
|
510
521
|
git clone https://github.com/vectros-ai/vectros-mcp-server
|
|
511
|
-
cd mcp-server
|
|
522
|
+
cd vectros-mcp-server
|
|
512
523
|
npm install
|
|
513
524
|
npm run build
|
|
514
525
|
npm test
|
|
@@ -530,6 +541,12 @@ tamper-evident audit and version history. Customer-facing surfaces are hardened
|
|
|
530
541
|
adversarial security review. For the full trust posture, drawn plainly with its boundaries, see the
|
|
531
542
|
[compliance and trust guide](https://docs.vectros.ai/guides/operations-trust/compliance).
|
|
532
543
|
|
|
544
|
+
**Tool output is untrusted, API-supplied content.** Every tool here returns your own tenant's data —
|
|
545
|
+
document text, search results, error messages — as plain text inside the MCP response. This server
|
|
546
|
+
does not sanitize, escape, or pre-render that text, and none of these tools evaluate or execute it.
|
|
547
|
+
Render tool output the same way you'd render any other data an agent pulled from an external source
|
|
548
|
+
— safely, in your client — rather than `eval`-ing it or trusting it as pre-sanitized.
|
|
549
|
+
|
|
533
550
|
## License
|
|
534
551
|
|
|
535
552
|
Apache-2.0. See the LICENSE file.
|