@qverisai/mcp 0.14.6 → 0.15.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 +12 -1
- package/README.md +10 -2
- package/dist/api/client.d.ts +12 -2
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +131 -35
- package/dist/api/client.js.map +1 -1
- package/dist/http.d.ts +2 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +64 -18
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -19
- package/dist/index.js.map +1 -1
- package/dist/operation-lifecycle.d.ts +4 -0
- package/dist/operation-lifecycle.d.ts.map +1 -0
- package/dist/operation-lifecycle.js +23 -0
- package/dist/operation-lifecycle.js.map +1 -0
- package/dist/output-schemas.d.ts.map +1 -1
- package/dist/output-schemas.js +12 -0
- package/dist/output-schemas.js.map +1 -1
- package/dist/tools/execute.d.ts +6 -0
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/execute.js +28 -2
- package/dist/tools/execute.js.map +1 -1
- package/dist/tools/lookup-execution.d.ts +19 -0
- package/dist/tools/lookup-execution.d.ts.map +1 -0
- package/dist/tools/lookup-execution.js +28 -0
- package/dist/tools/lookup-execution.js.map +1 -0
- package/dist/types.d.ts +65 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,12 +6,22 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.15.0] - 2026-10-23
|
|
10
|
+
|
|
9
11
|
### Fixed
|
|
10
12
|
|
|
13
|
+
- Finish accepted HTTP tool operations before shutting down sessions, including operations whose clients disconnected; stop accepting new requests as shutdown begins.
|
|
14
|
+
|
|
15
|
+
- Report successful Calls with pending settlement review as manual review required, preserving execution results without replaying the Call.
|
|
16
|
+
|
|
11
17
|
- Expose the additive catalog `updated_at` field, matching the SDK contract surfaces.
|
|
12
18
|
|
|
13
19
|
### Added
|
|
14
20
|
|
|
21
|
+
- Expose typed zero-quote settlement review details and preserve an explicitly supplied false zero-quote guard in the Call request.
|
|
22
|
+
|
|
23
|
+
- Add host-controlled Call idempotency keys, read-only `lookup_execution`, and host-side `reconcileToolExecution(key)`. Add `require_zero_quote` for guarded execution after an exact zero-credit Probe; submitted Calls remain single-submit. ([#436])
|
|
24
|
+
|
|
15
25
|
- Expose typed Probe one-of alternatives (`required_any_of`) and unsatisfied parameter groups (`missing_field_groups`), while retaining compatibility with older responses.
|
|
16
26
|
|
|
17
27
|
- MCP success/error payloads now include machine-readable `next_action` guidance for authentication, required parameters, billing, retries, and unknown Call settlement.
|
|
@@ -201,7 +211,8 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
|
201
211
|
|
|
202
212
|
- Handle empty/non-JSON success responses gracefully; `params_to_tool` documented as an object.
|
|
203
213
|
|
|
204
|
-
[Unreleased]: https://github.com/QVerisAI/qveris-agent-toolkit/compare/mcp-v0.
|
|
214
|
+
[Unreleased]: https://github.com/QVerisAI/qveris-agent-toolkit/compare/mcp-v0.15.0...HEAD
|
|
215
|
+
[0.15.0]: https://github.com/QVerisAI/qveris-agent-toolkit/compare/mcp-v0.14.6...mcp-v0.15.0
|
|
205
216
|
[0.14.4]: https://github.com/QVerisAI/qveris-agent-toolkit/compare/mcp-v0.14.3...mcp-v0.14.4
|
|
206
217
|
[0.14.3]: https://github.com/QVerisAI/qveris-agent-toolkit/compare/mcp-v0.14.2...mcp-v0.14.3
|
|
207
218
|
[0.14.2]: https://github.com/QVerisAI/qveris-agent-toolkit/compare/mcp-v0.14.1...mcp-v0.14.2
|
package/README.md
CHANGED
|
@@ -163,6 +163,7 @@ Call a discovered tool with specific parameters.
|
|
|
163
163
|
| `model` | string | | Model that selected and parameterized the call (maximum 128 characters) |
|
|
164
164
|
| `max_response_size` | number | | Automatic inline limit in UTF-8 bytes (default: 20480; `-1` is unlimited); explicit `full` takes precedence over a finite value |
|
|
165
165
|
| `respond_with` | string | | Omit for compatibility auto-delivery; use `full` to force complete inline data, `summary`, or `fields:<JSONPath,...>` |
|
|
166
|
+
| `require_zero_quote` | boolean | | Probe schema and exact quote, then require server-side zero-credit admission |
|
|
166
167
|
|
|
167
168
|
**Example:**
|
|
168
169
|
|
|
@@ -172,10 +173,17 @@ Call a discovered tool with specific parameters.
|
|
|
172
173
|
"search_id": "abcd1234-ab12-ab12-ab12-abcdef123456",
|
|
173
174
|
"params_to_tool": {"city": "London", "units": "metric"},
|
|
174
175
|
"model": "router-model-v1",
|
|
175
|
-
"respond_with": "summary"
|
|
176
|
+
"respond_with": "summary",
|
|
177
|
+
"require_zero_quote": true
|
|
176
178
|
}
|
|
177
179
|
```
|
|
178
180
|
|
|
181
|
+
When `require_zero_quote` is true, the server probes first and blocks the Call unless the capability is executable, advertises `require_zero_quote_v1`, the current schema is valid, and the exact quote is zero. The execute body carries this flag at the top level, outside `params_to_tool`. Idempotency keys are host/client-controlled transport metadata, not model-facing `call` arguments. Each Call gets a client-issued key; uncertain outcomes return that key for the read-only `lookup_execution` tool. Lookup accepts only keys issued by that client instance or explicitly bound by trusted host code. The client keeps a bounded in-memory set of 1,024 recent keys. After restart, host persistence must restore the original key with `QverisClient.bindExecutionKey(key)` and must retain the same authorization context. HTTP 409 conflicts skip automatic lookup, and the client never automatically resubmits Execute.
|
|
182
|
+
|
|
183
|
+
### `lookup_execution`
|
|
184
|
+
|
|
185
|
+
Read-only query for the outcome associated with a prior Call. It takes `idempotency_key` and never submits Execute.
|
|
186
|
+
|
|
179
187
|
The `call` response may include compact pre-settlement `billing`. Final charge status should be checked with `usage_history` or `credits_ledger`.
|
|
180
188
|
|
|
181
189
|
Projection inputs are opt-in. Explicit `respond_with: "full"` returns complete inline `result.data` without an overflow replacement; at the platform hard limit the call fails with `response_too_large`. Omitting `respond_with` retains the 20KB automatic overflow behavior. Paid `call` / `execute_tool` requests are always single-submit: the MCP server does not retry `429`/`503`, follow HTTP redirects, or remove a rejected projection field and resubmit. Projection errors remain errors.
|
|
@@ -328,7 +336,7 @@ npx -y @qverisai/mcp
|
|
|
328
336
|
|
|
329
337
|
- The endpoint is `POST/GET/DELETE {path}` (default `/mcp`); `GET /health` returns an unauthenticated liveness probe.
|
|
330
338
|
- **Inbound auth:** set `QVERIS_MCP_HTTP_AUTH_TOKEN` to require `Authorization: Bearer <token>` on the MCP endpoint. The server **refuses to start** when binding a non-loopback host without a token, unless you set `QVERIS_MCP_HTTP_ALLOW_UNAUTHENTICATED=true` to delegate auth to an external proxy/gateway. Your `QVERIS_API_KEY` is the server's *outbound* credential to QVeris — it is **not** an inbound check, so anyone reaching an unauthenticated endpoint would spend your credits.
|
|
331
|
-
- **Embedding API:** the package root exports `startHttpServer`, `resolveTransportConfig`, `QverisClient`, and the session-auth types. An independently operated service can set `requireSessionBearer` on its resolved transport config and provide an asynchronous session factory. The transport requires a bearer, passes it only to that factory, stores only a credential fingerprint for session binding, and rejects credential changes. A hosted embedding can call `createQverisServer(client, sessionId, { includeDeprecatedAliases: false })` to advertise only the
|
|
339
|
+
- **Embedding API:** the package root exports `startHttpServer`, `resolveTransportConfig`, `QverisClient`, and the session-auth types. An independently operated service can set `requireSessionBearer` on its resolved transport config and provide an asynchronous session factory. The transport requires a bearer, passes it only to that factory, stores only a credential fingerprint for session binding, and rejects credential changes. A hosted embedding can call `createQverisServer(client, sessionId, { includeDeprecatedAliases: false })` to advertise only the seven canonical tools; deprecated aliases remain callable for cached legacy clients. The embedding service owns validation, client construction, rate limits, deployment, and operations.
|
|
332
340
|
- DNS-rebinding protection is **on by default** (localhost + the bound host/port are allow-listed). When exposing the server publicly, add your public host via `QVERIS_MCP_ALLOWED_HOSTS`.
|
|
333
341
|
- Requests are capped at 4 MiB by default (`QVERIS_MCP_MAX_BODY_BYTES`), and idle sessions are evicted after 5 minutes (`QVERIS_MCP_SESSION_TIMEOUT_MS`).
|
|
334
342
|
- **Discovery:** registries and crawlers can learn about the server without connecting:
|
package/dist/api/client.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module api/client
|
|
8
8
|
*/
|
|
9
|
-
import type { SearchRequest, SearchResponse, GetToolsByIdsRequest, ExecuteRequest, ExecuteResponse, ProbeRequest, ProbeResponse, CreditsResponse, UsageHistoryRequest, UsageEventsResponse, CreditsLedgerRequest, CreditsLedgerResponse, ApiEnvelope, QverisClientConfig } from '../types.js';
|
|
9
|
+
import type { SearchRequest, SearchResponse, GetToolsByIdsRequest, ExecuteRequest, ExecuteResponse, ToolExecutionReconciliationData, ProbeRequest, ProbeResponse, CreditsResponse, UsageHistoryRequest, UsageEventsResponse, CreditsLedgerRequest, CreditsLedgerResponse, ApiEnvelope, QverisClientConfig, ExecuteTransportOptions } from '../types.js';
|
|
10
10
|
/**
|
|
11
11
|
* Qveris API Client
|
|
12
12
|
*
|
|
@@ -34,12 +34,18 @@ export declare class QverisClient {
|
|
|
34
34
|
private readonly defaultTimeoutMs;
|
|
35
35
|
private readonly maxRetries;
|
|
36
36
|
private rateLimitRetries;
|
|
37
|
+
private readonly issuedExecutionKeys;
|
|
37
38
|
constructor(config: QverisClientConfig);
|
|
38
39
|
/**
|
|
39
40
|
* How many times the client has backed off on a rate-limited (429) /
|
|
40
41
|
* transient (503) response so far — retried pressure, not failure.
|
|
41
42
|
*/
|
|
42
43
|
get rateLimitRetryCount(): number;
|
|
44
|
+
/** Bind a previously issued Call key restored by host-controlled persistence. */
|
|
45
|
+
bindExecutionKey(idempotencyKey: string): void;
|
|
46
|
+
/** Whether this client issued or the host explicitly bound a Call key. */
|
|
47
|
+
hasIssuedExecutionKey(idempotencyKey: string): boolean;
|
|
48
|
+
private rememberExecutionKey;
|
|
43
49
|
/** Sleep for `ms` (a seam so tests can stub out the wait). */
|
|
44
50
|
private sleep;
|
|
45
51
|
/**
|
|
@@ -66,7 +72,11 @@ export declare class QverisClient {
|
|
|
66
72
|
* This is the Call action; the response may include pre-settlement billing.
|
|
67
73
|
* Uses a longer timeout (120s) by default.
|
|
68
74
|
*/
|
|
69
|
-
executeTool(toolId: string, request: ExecuteRequest): Promise<ExecuteResponse>;
|
|
75
|
+
executeTool(toolId: string, request: ExecuteRequest, options?: ExecuteTransportOptions): Promise<ExecuteResponse>;
|
|
76
|
+
/** Read-only recovery for an execute request whose response may have been lost. */
|
|
77
|
+
getExecutionByIdempotencyKey(idempotencyKey: string): Promise<unknown>;
|
|
78
|
+
/** Read-only host API; deliberately not exposed as an MCP model argument. */
|
|
79
|
+
reconcileToolExecution(idempotencyKey: string): Promise<ToolExecutionReconciliationData>;
|
|
70
80
|
/**
|
|
71
81
|
* Get current credit balance and bucket details.
|
|
72
82
|
*/
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,+BAA+B,EAE/B,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAIlB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAyDrB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;gBAE7C,MAAM,EAAE,kBAAkB;IAYtC;;;OAGG;IACH,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,iFAAiF;IACjF,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAI9C,0EAA0E;IAC1E,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAItD,OAAO,CAAC,oBAAoB;IAY5B,8DAA8D;YAChD,KAAK;IAKnB;;OAEG;YACW,OAAO;IAwJrB;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAYlE;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI3E;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAUnF;;;;OAIG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,eAAe,CAAC;IA0E3B,mFAAmF;IAC7E,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB5E,6EAA6E;IACvE,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAqB9F;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;IAI3E;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IAWpH;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,CAAC;CAUvE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,CAalD"}
|
package/dist/api/client.js
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module api/client
|
|
8
8
|
*/
|
|
9
|
+
import { randomUUID } from 'node:crypto';
|
|
9
10
|
import { computeRetryDelayMs, DEFAULT_BASE_DELAY_MS, DEFAULT_MAX_DELAY_MS, parseRetryAfterMs, resolveMaxRetries, RETRYABLE_STATUS, } from '../retry.js';
|
|
10
11
|
import { normalizeCreditBalanceResponse } from './credit-balance.js';
|
|
11
12
|
const DEFAULT_BASE_URL = 'https://qveris.ai/api/v1';
|
|
13
|
+
const MAX_ISSUED_EXECUTION_KEYS = 1024;
|
|
12
14
|
/**
|
|
13
15
|
* Resolve the base URL for the QVeris API.
|
|
14
16
|
* Priority: explicit baseUrl > QVERIS_BASE_URL env > built-in default.
|
|
@@ -75,6 +77,7 @@ export class QverisClient {
|
|
|
75
77
|
defaultTimeoutMs;
|
|
76
78
|
maxRetries;
|
|
77
79
|
rateLimitRetries = 0;
|
|
80
|
+
issuedExecutionKeys = new Set();
|
|
78
81
|
constructor(config) {
|
|
79
82
|
if (!config.apiKey) {
|
|
80
83
|
throw new Error('Qveris API key is required');
|
|
@@ -93,6 +96,26 @@ export class QverisClient {
|
|
|
93
96
|
get rateLimitRetryCount() {
|
|
94
97
|
return this.rateLimitRetries;
|
|
95
98
|
}
|
|
99
|
+
/** Bind a previously issued Call key restored by host-controlled persistence. */
|
|
100
|
+
bindExecutionKey(idempotencyKey) {
|
|
101
|
+
this.rememberExecutionKey(idempotencyKey);
|
|
102
|
+
}
|
|
103
|
+
/** Whether this client issued or the host explicitly bound a Call key. */
|
|
104
|
+
hasIssuedExecutionKey(idempotencyKey) {
|
|
105
|
+
return this.issuedExecutionKeys.has(idempotencyKey);
|
|
106
|
+
}
|
|
107
|
+
rememberExecutionKey(idempotencyKey) {
|
|
108
|
+
if (typeof idempotencyKey !== 'string' || idempotencyKey.trim().length === 0) {
|
|
109
|
+
throw new Error('idempotency key must be a non-empty string.');
|
|
110
|
+
}
|
|
111
|
+
this.issuedExecutionKeys.delete(idempotencyKey);
|
|
112
|
+
this.issuedExecutionKeys.add(idempotencyKey);
|
|
113
|
+
if (this.issuedExecutionKeys.size > MAX_ISSUED_EXECUTION_KEYS) {
|
|
114
|
+
const oldest = this.issuedExecutionKeys.values().next().value;
|
|
115
|
+
if (oldest !== undefined)
|
|
116
|
+
this.issuedExecutionKeys.delete(oldest);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
96
119
|
/** Sleep for `ms` (a seam so tests can stub out the wait). */
|
|
97
120
|
async sleep(ms) {
|
|
98
121
|
if (ms <= 0)
|
|
@@ -102,7 +125,7 @@ export class QverisClient {
|
|
|
102
125
|
/**
|
|
103
126
|
* Makes an authenticated HTTP request to the Qveris API.
|
|
104
127
|
*/
|
|
105
|
-
async request(operation, method, endpoint, body, timeoutMs, query) {
|
|
128
|
+
async request(operation, method, endpoint, body, timeoutMs, query, headers = {}, sensitiveQueryKeys = []) {
|
|
106
129
|
const url = new URL(`${this.baseUrl}${endpoint}`);
|
|
107
130
|
if (query) {
|
|
108
131
|
for (const [key, value] of Object.entries(query)) {
|
|
@@ -112,13 +135,20 @@ export class QverisClient {
|
|
|
112
135
|
}
|
|
113
136
|
}
|
|
114
137
|
const resolvedTimeoutMs = timeoutMs ?? this.defaultTimeoutMs;
|
|
115
|
-
const queryParams = Object.fromEntries(url.searchParams.entries())
|
|
138
|
+
const queryParams = Object.fromEntries([...url.searchParams.entries()].map(([key, value]) => [
|
|
139
|
+
key,
|
|
140
|
+
sensitiveQueryKeys.includes(key) ? '[REDACTED]' : value,
|
|
141
|
+
]));
|
|
142
|
+
const observableUrl = new URL(url);
|
|
143
|
+
for (const key of sensitiveQueryKeys)
|
|
144
|
+
if (observableUrl.searchParams.has(key))
|
|
145
|
+
observableUrl.searchParams.set(key, '[REDACTED]');
|
|
116
146
|
const requestContext = {
|
|
117
147
|
source: 'qveris_api',
|
|
118
148
|
operation,
|
|
119
149
|
method,
|
|
120
150
|
endpoint,
|
|
121
|
-
url:
|
|
151
|
+
url: observableUrl.toString(),
|
|
122
152
|
...(Object.keys(queryParams).length > 0 && { query_params: queryParams }),
|
|
123
153
|
timeout_ms: resolvedTimeoutMs,
|
|
124
154
|
};
|
|
@@ -137,6 +167,7 @@ export class QverisClient {
|
|
|
137
167
|
headers: {
|
|
138
168
|
Authorization: `Bearer ${this.apiKey}`,
|
|
139
169
|
'Content-Type': 'application/json',
|
|
170
|
+
...headers,
|
|
140
171
|
},
|
|
141
172
|
body: body ? JSON.stringify(body) : undefined,
|
|
142
173
|
signal: controller.signal,
|
|
@@ -271,41 +302,94 @@ export class QverisClient {
|
|
|
271
302
|
* This is the Call action; the response may include pre-settlement billing.
|
|
272
303
|
* Uses a longer timeout (120s) by default.
|
|
273
304
|
*/
|
|
274
|
-
async executeTool(toolId, request) {
|
|
305
|
+
async executeTool(toolId, request, options = {}) {
|
|
275
306
|
const endpoint = `/tools/execute?tool_id=${encodeURIComponent(toolId)}`;
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
307
|
+
const idempotencyKey = options.idempotencyKey ?? randomUUID();
|
|
308
|
+
this.rememberExecutionKey(idempotencyKey);
|
|
309
|
+
try {
|
|
310
|
+
const result = await this.request('call', 'POST', endpoint, request, EXECUTE_TIMEOUT_MS, undefined, { 'Idempotency-Key': idempotencyKey });
|
|
311
|
+
const executionId = executionIdFrom(result) ?? null;
|
|
312
|
+
if (typeof result?.success === 'boolean' && executionId) {
|
|
313
|
+
if (result.success === false) {
|
|
314
|
+
return {
|
|
315
|
+
...result,
|
|
316
|
+
next_action: {
|
|
317
|
+
action: 'reconcile_settlement',
|
|
318
|
+
automatic: false,
|
|
319
|
+
requires_user: false,
|
|
320
|
+
missing_fields: [],
|
|
321
|
+
reason: 'call_failed_after_submission',
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
return result;
|
|
290
326
|
}
|
|
291
|
-
|
|
327
|
+
const malformed = {
|
|
328
|
+
status: 200,
|
|
329
|
+
message: 'Call response did not match the expected contract',
|
|
330
|
+
...(executionId && { details: { execution_id: executionId } }),
|
|
331
|
+
observability: {
|
|
332
|
+
source: 'qveris_api',
|
|
333
|
+
operation: 'call',
|
|
334
|
+
method: 'POST',
|
|
335
|
+
endpoint,
|
|
336
|
+
url: `${this.baseUrl}${endpoint}`,
|
|
337
|
+
timeout_ms: EXECUTE_TIMEOUT_MS,
|
|
338
|
+
http_status: 200,
|
|
339
|
+
error_type: 'invalid_response',
|
|
340
|
+
},
|
|
341
|
+
};
|
|
342
|
+
throw malformed;
|
|
292
343
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
344
|
+
catch (error) {
|
|
345
|
+
const uncertain = isUncertainCallError(error);
|
|
346
|
+
const status = error && typeof error === 'object' && 'status' in error ? error.status : undefined;
|
|
347
|
+
if (error && typeof error === 'object' && (uncertain || status === 200 || status === 409)) {
|
|
348
|
+
error.idempotency_key = idempotencyKey;
|
|
349
|
+
}
|
|
350
|
+
if (!uncertain)
|
|
351
|
+
throw error;
|
|
352
|
+
let recoveryData;
|
|
353
|
+
try {
|
|
354
|
+
const recovered = await this.getExecutionByIdempotencyKey(idempotencyKey);
|
|
355
|
+
const data = unwrapApiEnvelopeData(recovered);
|
|
356
|
+
if (data?.status === 'completed' && data.response && typeof data.response === 'object') {
|
|
357
|
+
const response = normalizeCreditBalanceResponse(data.response);
|
|
358
|
+
if (typeof response.success === 'boolean' && executionIdFrom(response))
|
|
359
|
+
return response;
|
|
360
|
+
}
|
|
361
|
+
recoveryData = data;
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
// Recovery is read-only. Never submit a second execute request with a new key.
|
|
365
|
+
}
|
|
366
|
+
if (error && typeof error === 'object') {
|
|
367
|
+
const recoverable = error;
|
|
368
|
+
if (recoveryData)
|
|
369
|
+
recoverable.recovery = recoveryData;
|
|
370
|
+
}
|
|
371
|
+
throw error;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/** Read-only recovery for an execute request whose response may have been lost. */
|
|
375
|
+
async getExecutionByIdempotencyKey(idempotencyKey) {
|
|
376
|
+
if (!this.hasIssuedExecutionKey(idempotencyKey)) {
|
|
377
|
+
throw new Error('Execution lookup key was not issued or bound by this QverisClient instance.');
|
|
378
|
+
}
|
|
379
|
+
return this.request('call', 'GET', '/tools/executions/by-idempotency-key', undefined, this.defaultTimeoutMs, { key: idempotencyKey }, {}, ['key']);
|
|
380
|
+
}
|
|
381
|
+
/** Read-only host API; deliberately not exposed as an MCP model argument. */
|
|
382
|
+
async reconcileToolExecution(idempotencyKey) {
|
|
383
|
+
if (!idempotencyKey.trim())
|
|
384
|
+
throw new Error('idempotencyKey must not be empty');
|
|
385
|
+
const response = await this.request('call_reconciliation', 'GET', '/tools/executions/by-idempotency-key', undefined, undefined, { key: idempotencyKey }, {}, ['key']);
|
|
386
|
+
if ('status' in response && 'data' in response) {
|
|
387
|
+
if (response.status !== 'success' || response.data == null) {
|
|
388
|
+
throw new Error(response.message || 'Call reconciliation failed');
|
|
389
|
+
}
|
|
390
|
+
return response.data;
|
|
391
|
+
}
|
|
392
|
+
return response;
|
|
309
393
|
}
|
|
310
394
|
/**
|
|
311
395
|
* Get current credit balance and bucket details.
|
|
@@ -401,4 +485,16 @@ function getErrorCause(error) {
|
|
|
401
485
|
return cause;
|
|
402
486
|
return undefined;
|
|
403
487
|
}
|
|
488
|
+
function isUncertainCallError(error) {
|
|
489
|
+
if (!error || typeof error !== 'object' || !('status' in error))
|
|
490
|
+
return false;
|
|
491
|
+
const status = error.status;
|
|
492
|
+
return status === 0 || status === 200 || status === 408 || (typeof status === 'number' && status >= 500);
|
|
493
|
+
}
|
|
494
|
+
function unwrapApiEnvelopeData(value) {
|
|
495
|
+
if (!value || typeof value !== 'object')
|
|
496
|
+
return undefined;
|
|
497
|
+
const record = value;
|
|
498
|
+
return typeof record.status === 'string' && 'data' in record ? record.data : value;
|
|
499
|
+
}
|
|
404
500
|
//# sourceMappingURL=client.js.map
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
CHANGED
|
@@ -79,7 +79,8 @@ export interface RunningHttpServer {
|
|
|
79
79
|
httpServer: HttpServer;
|
|
80
80
|
/** The port actually bound (useful when config.port is 0). */
|
|
81
81
|
port: number;
|
|
82
|
-
/**
|
|
82
|
+
/** Stop admission, finish accepted requests/operations, then close sessions.
|
|
83
|
+
* The embedder owns the shutdown deadline; this never force-cancels a Call. */
|
|
83
84
|
close: () => Promise<void>;
|
|
84
85
|
}
|
|
85
86
|
/**
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAsC,KAAK,MAAM,IAAI,UAAU,EAAuB,MAAM,WAAW,CAAC;AAG/G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAsC,KAAK,MAAM,IAAI,UAAU,EAAuB,MAAM,WAAW,CAAC;AAG/G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAUxE,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iFAAiF;IACjF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yEAAyE;IACzE,4BAA4B,EAAE,OAAO,CAAC;IACtC,oEAAoE;IACpE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6EAA6E;IAC7E,oBAAoB,EAAE,OAAO,CAAC;IAC9B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gFAAgF;AAChF,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAkB,IAAI,gCAAgC;CACvD;AAED,6EAA6E;AAC7E,qBAAa,qCAAsC,SAAQ,KAAK;IAC9D,SAAkB,IAAI,2CAA2C;CAClE;AAED,kFAAkF;AAClF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAkB,IAAI,2BAA2B;IACjD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,iBAAiB,SAAK;CAKpD;AAmED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,eAAe,CA8CnG;AAuED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;mFAC+E;IAC/E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAClF,QAAQ,CAAC,EAAE,cAAc,EACzB,MAAM,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAiD,GAC7E,OAAO,CAAC,iBAAiB,CAAC,CAsY5B"}
|
package/dist/http.js
CHANGED
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
import { createHash, randomUUID, timingSafeEqual } from 'node:crypto';
|
|
20
20
|
import { createServer } from 'node:http';
|
|
21
21
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
22
|
-
import {
|
|
22
|
+
import { waitForOperations } from './operation-lifecycle.js';
|
|
23
|
+
import { isInitializeRequest, isJSONRPCResultResponse, isJSONRPCErrorResponse, } from '@modelcontextprotocol/sdk/types.js';
|
|
23
24
|
import { buildCatalog, buildServerCard, CATALOG_PATH, SERVER_CARD_MEDIA_TYPE, } from './server-card.js';
|
|
24
25
|
/** The embedding service rejected the credential supplied for a new session. */
|
|
25
26
|
export class SessionAuthenticationError extends Error {
|
|
@@ -262,6 +263,9 @@ export async function startHttpServer(config, makeServer, cardInfo, logger = (me
|
|
|
262
263
|
const lastSeen = new Map();
|
|
263
264
|
const inflight = new Map(); // requests currently being handled per session
|
|
264
265
|
let boundPort = config.port;
|
|
266
|
+
let draining = false;
|
|
267
|
+
const servers = new Set();
|
|
268
|
+
const requests = new Set();
|
|
265
269
|
// In-flight guards keep the idle sweep from evicting a session that has an
|
|
266
270
|
// active request or a live (long-lived) SSE stream. A session is only
|
|
267
271
|
// eligible for idle eviction once it has zero in-flight requests.
|
|
@@ -305,16 +309,20 @@ export async function startHttpServer(config, makeServer, cardInfo, logger = (me
|
|
|
305
309
|
logger(`[qveris] MCP session initialized: ${sessionId}\n`);
|
|
306
310
|
},
|
|
307
311
|
});
|
|
312
|
+
let server;
|
|
308
313
|
transport.onclose = () => {
|
|
314
|
+
const closingServer = server;
|
|
315
|
+
if (closingServer)
|
|
316
|
+
void waitForOperations(closingServer).then(() => servers.delete(closingServer));
|
|
309
317
|
const sessionId = transport.sessionId;
|
|
310
318
|
if (sessionId && transports.get(sessionId) === transport) {
|
|
311
319
|
evict(sessionId);
|
|
312
320
|
logger(`[qveris] MCP session closed: ${sessionId}\n`);
|
|
313
321
|
}
|
|
314
322
|
};
|
|
315
|
-
let server;
|
|
316
323
|
try {
|
|
317
324
|
server = await makeServer(randomUUID(), auth);
|
|
325
|
+
servers.add(server);
|
|
318
326
|
await server.connect(transport);
|
|
319
327
|
return transport;
|
|
320
328
|
}
|
|
@@ -328,6 +336,11 @@ export async function startHttpServer(config, makeServer, cardInfo, logger = (me
|
|
|
328
336
|
const handler = async (req, res) => {
|
|
329
337
|
try {
|
|
330
338
|
const url = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
|
|
339
|
+
if (draining && (url.pathname !== config.path || req.method !== 'POST')) {
|
|
340
|
+
req.resume();
|
|
341
|
+
writeJson(res, 503, jsonRpcError(null, -32002, 'Server is draining'), { Connection: 'close' });
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
331
344
|
// Lightweight, unauthenticated health check for load balancers.
|
|
332
345
|
if (req.method === 'GET' && url.pathname === '/health') {
|
|
333
346
|
writeJson(res, 200, { status: 'ok', transport: 'streamable-http' });
|
|
@@ -429,6 +442,18 @@ export async function startHttpServer(config, makeServer, cardInfo, logger = (me
|
|
|
429
442
|
}
|
|
430
443
|
throw err;
|
|
431
444
|
}
|
|
445
|
+
// Accepted calls can still need a client response (billing consent).
|
|
446
|
+
// Keep authentication/session binding above and reject all new work,
|
|
447
|
+
// including mixed batches, while allowing only protocol responses.
|
|
448
|
+
if (draining &&
|
|
449
|
+
(!existing ||
|
|
450
|
+
!body ||
|
|
451
|
+
typeof body !== 'object' ||
|
|
452
|
+
'method' in body ||
|
|
453
|
+
(!isJSONRPCResultResponse(body) && !isJSONRPCErrorResponse(body)))) {
|
|
454
|
+
writeJson(res, 503, jsonRpcError(null, -32002, 'Server is draining'), { Connection: 'close' });
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
432
457
|
let transport = existing;
|
|
433
458
|
if (!transport) {
|
|
434
459
|
if (sessionId !== undefined) {
|
|
@@ -476,7 +501,15 @@ export async function startHttpServer(config, makeServer, cardInfo, logger = (me
|
|
|
476
501
|
}
|
|
477
502
|
}
|
|
478
503
|
else {
|
|
479
|
-
|
|
504
|
+
try {
|
|
505
|
+
await transport.handleRequest(req, res, body);
|
|
506
|
+
}
|
|
507
|
+
finally {
|
|
508
|
+
// SDK validation can reject initialize without issuing a session
|
|
509
|
+
// or closing its transport. Such servers cannot enter idle sweep.
|
|
510
|
+
if (!transport.sessionId)
|
|
511
|
+
await transport.close();
|
|
512
|
+
}
|
|
480
513
|
}
|
|
481
514
|
return;
|
|
482
515
|
}
|
|
@@ -509,7 +542,12 @@ export async function startHttpServer(config, makeServer, cardInfo, logger = (me
|
|
|
509
542
|
}
|
|
510
543
|
};
|
|
511
544
|
const httpServer = createServer((req, res) => {
|
|
512
|
-
|
|
545
|
+
const pending = handler(req, res);
|
|
546
|
+
// Standalone GET SSE is closed only after accepted operations finish.
|
|
547
|
+
if (req.method !== 'GET') {
|
|
548
|
+
requests.add(pending);
|
|
549
|
+
void pending.then(() => requests.delete(pending), () => requests.delete(pending));
|
|
550
|
+
}
|
|
513
551
|
});
|
|
514
552
|
await new Promise((resolve, reject) => {
|
|
515
553
|
httpServer.once('error', reject);
|
|
@@ -543,21 +581,29 @@ export async function startHttpServer(config, makeServer, cardInfo, logger = (me
|
|
|
543
581
|
}, SWEEP_INTERVAL_MS);
|
|
544
582
|
sweep.unref();
|
|
545
583
|
logger(`[qveris] Qveris MCP Server started (streamable-http) on http://${config.host}:${boundPort}${config.path}\n`);
|
|
546
|
-
|
|
584
|
+
let closing;
|
|
585
|
+
const close = () => {
|
|
586
|
+
if (closing)
|
|
587
|
+
return closing;
|
|
588
|
+
draining = true;
|
|
547
589
|
clearInterval(sweep);
|
|
548
|
-
for
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
590
|
+
// Retain the listener for authenticated protocol responses needed by
|
|
591
|
+
// accepted operations; the handler rejects new calls and health checks.
|
|
592
|
+
closing = (async () => {
|
|
593
|
+
while (requests.size)
|
|
594
|
+
await Promise.allSettled([...requests]);
|
|
595
|
+
await Promise.all([...servers].map(waitForOperations));
|
|
596
|
+
const listenerClosed = new Promise((resolve) => httpServer.close(() => resolve()));
|
|
597
|
+
httpServer.closeIdleConnections?.();
|
|
598
|
+
for (const transport of transports.values())
|
|
599
|
+
await transport.close();
|
|
600
|
+
transports.clear();
|
|
601
|
+
sessionCredentialFingerprints.clear();
|
|
602
|
+
lastSeen.clear();
|
|
603
|
+
inflight.clear();
|
|
604
|
+
await listenerClosed;
|
|
605
|
+
})();
|
|
606
|
+
return closing;
|
|
561
607
|
};
|
|
562
608
|
return { httpServer, port: boundPort, close };
|
|
563
609
|
}
|