@clien-ai/mcp 0.3.0 → 0.5.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 +105 -0
- package/README.md +32 -7
- package/dist/auth/oauth.js +69 -39
- package/dist/auth/oauth.js.map +1 -1
- package/dist/server.js +37 -9
- package/dist/server.js.map +1 -1
- package/dist/tools/collections.js +262 -23
- package/dist/tools/collections.js.map +1 -1
- package/dist/tools/interview.js +77 -6
- package/dist/tools/interview.js.map +1 -1
- package/dist/tools/output-schemas.js +130 -0
- package/dist/tools/output-schemas.js.map +1 -0
- package/dist/tools/personas.js +195 -25
- package/dist/tools/personas.js.map +1 -1
- package/dist/tools/projects.js +56 -11
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/registry.js +141 -58
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/report-digest.js +640 -0
- package/dist/tools/report-digest.js.map +1 -0
- package/dist/tools/reports.js +78 -6
- package/dist/tools/reports.js.map +1 -1
- package/dist/tools/research.js +249 -1
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/scoped-research.js +86 -22
- package/dist/tools/scoped-research.js.map +1 -1
- package/dist/tools/status.js +41 -5
- package/dist/tools/status.js.map +1 -1
- package/dist/util/single-flight.js +63 -0
- package/dist/util/single-flight.js.map +1 -0
- package/package.json +3 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@clien-ai/mcp`.
|
|
4
|
+
|
|
5
|
+
This file starts at 0.5.0. The 0.3.0 and 0.4.0 entries below were reconstructed
|
|
6
|
+
from merge history after the fact and are deliberately terse — they record what
|
|
7
|
+
changed, not the reasoning, which lives in the linked PRs. Versions before 0.3.0
|
|
8
|
+
have no entry; nothing was written down at the time and inventing one now would
|
|
9
|
+
be worse than the gap.
|
|
10
|
+
|
|
11
|
+
The client and the Clien.ai app ship on **independent release cycles**. An
|
|
12
|
+
upgrade here does not imply the deployed app speaks the same shape, and the
|
|
13
|
+
client strips unknown fields by construction — so a field described below only
|
|
14
|
+
reaches you once both sides have shipped.
|
|
15
|
+
|
|
16
|
+
## 0.5.0
|
|
17
|
+
|
|
18
|
+
The release where **agent-visible output stops being forgeable**.
|
|
19
|
+
|
|
20
|
+
0.4.0 made the trust spine reach the agent. This one makes what reaches the
|
|
21
|
+
agent trustworthy: every renderer in this package builds line-structured text
|
|
22
|
+
(`- Name (id: uuid)`, `Funding: X [GROUNDED]`) that an agent parses as the
|
|
23
|
+
server's own statements, and until now several of them interpolated untrusted
|
|
24
|
+
values into those lines raw.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **Line-structured forgery, closed across nine renderers** (FUL-253, #493).
|
|
29
|
+
A newline inside an interpolated value ended the line early, and everything
|
|
30
|
+
after it became a line the agent read as the server's own. Untrusted values
|
|
31
|
+
are now whitespace-flattened before rendering, so a crafted forum post cannot
|
|
32
|
+
forge a line that reads as this server's output. The value is still shown in
|
|
33
|
+
full-width — flattening bounds where it can appear, not whether it appears.
|
|
34
|
+
|
|
35
|
+
Covered: `list_community_signals`, `search_forums` (`renderThreads` and
|
|
36
|
+
`renderCompetitors`), `clien_research_status`, `list_personas`,
|
|
37
|
+
`list_interviews`, and the `get_report` trust digest's claim spines, receipt
|
|
38
|
+
lines and robustness rows.
|
|
39
|
+
|
|
40
|
+
The sharpest case was the claim spine, where a newline in a claim's text could
|
|
41
|
+
forge `- [GROUNDED] … ← RRCP-s0` — a receipt for a claim nothing had checked,
|
|
42
|
+
which is the exact invariant the digest exists to hold.
|
|
43
|
+
|
|
44
|
+
⚠️ The GROUNDED gates deliberately read the **raw** state while the row renders
|
|
45
|
+
the flattened one. Flattening trims, so gating on the flattened value would
|
|
46
|
+
newly admit a padded `" GROUNDED "` as grounded and put a row's badge at odds
|
|
47
|
+
with the tallies, which read raw. Flattening is for the render; it must never
|
|
48
|
+
widen what counts as a receipt. There is a test per spine holding this — the
|
|
49
|
+
two variables are load-bearing, not redundant.
|
|
50
|
+
|
|
51
|
+
- **Receipt quotes are windowed around the verified span** (FUL-252, #492).
|
|
52
|
+
A quote longer than the excerpt cap was clipped from the head, so the span the
|
|
53
|
+
verifier actually grounded could fall outside the text a reader sees — a
|
|
54
|
+
receipt that did not show its own evidence. The excerpt is now centred on the
|
|
55
|
+
span.
|
|
56
|
+
|
|
57
|
+
⚠️ The span lookup matches the **verifier's** comparison (NFC, case-folded,
|
|
58
|
+
whitespace-collapsed, fuzzy at 0.95), not a case-sensitive `indexOf`. A
|
|
59
|
+
language-default lookup silently re-creates the bug for exactly the claims the
|
|
60
|
+
verifier was most generous about.
|
|
61
|
+
|
|
62
|
+
- `clien_research_status` renders its disambiguators, and `list_competitors`
|
|
63
|
+
bounds its payload (FUL-252, #492). Measured: 20.7 → 15.4 KB at `limit=20`,
|
|
64
|
+
99.9 → 72.8 KB at `limit=100`.
|
|
65
|
+
|
|
66
|
+
- **`null` is preserved where it means "we asked, the answer is nothing"**
|
|
67
|
+
(FUL-246, #490). Identity-prior fields are now `string | null` rather than
|
|
68
|
+
collapsing to absent. The two are not interchangeable across independent
|
|
69
|
+
release cycles: absent reads as "this deploy never computed it", `null` reads
|
|
70
|
+
as "it computed it and there was nothing." Dropping the distinction made a
|
|
71
|
+
real answer indistinguishable from an old deployment.
|
|
72
|
+
|
|
73
|
+
### Added
|
|
74
|
+
|
|
75
|
+
- **Fields that previously reached no agent-visible channel are now rendered**
|
|
76
|
+
(FUL-247, #491), with a test guarding that every declared entity field either
|
|
77
|
+
renders or carries a written reason for not doing so.
|
|
78
|
+
|
|
79
|
+
## 0.4.0
|
|
80
|
+
|
|
81
|
+
The trust spine reaches the agent.
|
|
82
|
+
|
|
83
|
+
- **`_meta` is not a delivery channel** (FUL-243, #482). Hosts are not obliged
|
|
84
|
+
to surface a tool result's `_meta`, and Claude Code drops it outright — so the
|
|
85
|
+
entire Trust Engine was being sent and never read. Trust state is now rendered
|
|
86
|
+
into result **text**. Anything an agent must act on has to appear there.
|
|
87
|
+
- Render-coverage guard: every declared entity field is rendered or allowlisted
|
|
88
|
+
with a reason (FUL-245, #484).
|
|
89
|
+
- Persona identity priors on the read path (FUL-208, #483).
|
|
90
|
+
- Dropped the phantom `Persona.includeInInsights` (FUL-242, #481).
|
|
91
|
+
- In-process single-flight token refresh (FUL-236, #474).
|
|
92
|
+
- Transcript-free interview list via `fields=summary` (FUL-237, #470, #472).
|
|
93
|
+
|
|
94
|
+
## 0.3.0
|
|
95
|
+
|
|
96
|
+
The agent-first read + update surface — **12 → 20 tools**.
|
|
97
|
+
|
|
98
|
+
- Read tools: `list_interviews`, `get_interview`, `list_personas`, `get_persona`,
|
|
99
|
+
`list_competitors`, `list_community_signals`, `get_project` (#457, #459, #465,
|
|
100
|
+
#466).
|
|
101
|
+
- `update_persona` (#457).
|
|
102
|
+
- `snake_case` parameters with `camelCase` aliases accepted on both spellings
|
|
103
|
+
(#467, #468).
|
|
104
|
+
- Persona and market/competitor trust spine typed into the report schema (#456).
|
|
105
|
+
- Per-tool-call usage telemetry (#455).
|
package/README.md
CHANGED
|
@@ -53,7 +53,20 @@ Restart Claude Code. First call triggers OAuth.
|
|
|
53
53
|
|
|
54
54
|
```jsonc
|
|
55
55
|
{
|
|
56
|
-
|
|
56
|
+
// The text is the full markdown report, followed by a machine-checked
|
|
57
|
+
// TRUST DIGEST (claim states + receipt ids + QA flags + sycophancy signals
|
|
58
|
+
// + robustness). The digest is rendered into the text on purpose: `_meta` is
|
|
59
|
+
// an optional host channel that many hosts — including Claude Code — do not
|
|
60
|
+
// surface to the model, so anything an agent must act on has to be here.
|
|
61
|
+
"content": [{ "type": "text", "text": "<full markdown report>\n\n---\n\n## Trust digest …" }],
|
|
62
|
+
// MCP 2025-06-18 structured results. Declared via `outputSchema` on the
|
|
63
|
+
// read tools, and the channel a host is expected to surface.
|
|
64
|
+
"structuredContent": {
|
|
65
|
+
"job_id": "...",
|
|
66
|
+
"status": "complete",
|
|
67
|
+
"report_data": { /* identical to `_meta.report_data` below */ }
|
|
68
|
+
},
|
|
69
|
+
// Retained unchanged for back-compat with existing consumers.
|
|
57
70
|
"_meta": {
|
|
58
71
|
"job_id": "...",
|
|
59
72
|
"status": "complete",
|
|
@@ -85,13 +98,22 @@ the top 3 threats", etc.
|
|
|
85
98
|
|
|
86
99
|
### Trust signals
|
|
87
100
|
|
|
101
|
+
Every field below is **summarised into the result text** as a trust digest, so an
|
|
102
|
+
agent receives it on any host. The typed fields themselves are in
|
|
103
|
+
`structuredContent.report_data` (and `_meta.report_data`) when you want to read
|
|
104
|
+
them programmatically.
|
|
105
|
+
|
|
106
|
+
When a section is missing, the digest says so explicitly ("NOT PRESENT on this
|
|
107
|
+
run") rather than omitting it — an absent claim spine is not a clean one, and
|
|
108
|
+
silence would read as "nothing to worry about".
|
|
109
|
+
|
|
88
110
|
`report_data` carries a typed **trust layer** so you can judge how well-evidenced
|
|
89
111
|
a finding is, rather than taking the prose at face value:
|
|
90
112
|
|
|
91
113
|
| Field | What it tells you |
|
|
92
114
|
|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
|
|
93
115
|
| `claims[]` | Every persona/interview claim with a `state`: `GROUNDED` (span-verified against a cached source quote), `SPECULATION`, or `NO_RECEIPT` (evidence-shaped but unsourced). A `GROUNDED` claim carries a `sourceId` receipt and the `quoteSpan` that grounds it. |
|
|
94
|
-
| `personas[].sources[]` | The cached forum posts (`url`, `platform`, `quote`, `retrievedAt`) a claim's `sourceId` (`RCP-p{i}-s{j}`) points at — the receipts.
|
|
116
|
+
| `personas[].sources[]` | The cached forum posts (`url`, `platform`, `quote`, `retrievedAt`) a claim's `sourceId` (`RCP-p{i}-s{j}`) points at — the receipts. In the digest text each quote is shown as a 200-character excerpt **windowed around the span that grounded the claim**, with a leading `…` when the window starts mid-quote; the untruncated `quote` is in the structured payload. |
|
|
95
117
|
| `personas[].qaFlagged` / `insufficientEvidence` / `sourcesFound` | Per-persona quality flags: `qaFlagged` means the persona failed a QA check; `insufficientEvidence` / `sourcesFound` tell you whether a `NO_RECEIPT` reflects a weak claim or just a thin evidence base. |
|
|
96
118
|
| `hypothesisResults[].robustness` | How many reworded re-asks a verdict survived (`survived`/`total`); when `flipped` is true, `downgradedStatus` is the verdict to trust, not the top-level `status`. |
|
|
97
119
|
| `sycophancySignals` | Anti-sycophancy readout: broken-persona flags (`lowDiscrimination`), per-hypothesis disagreement splits, and explicit `totalRejections`. |
|
|
@@ -151,8 +173,8 @@ name — the aliases exist for callers written before the rename.
|
|
|
151
173
|
|
|
152
174
|
| Tool | Required | Cost | What it does |
|
|
153
175
|
|------|----------|------|--------------|
|
|
154
|
-
| `list_personas` | `project_id` | free | The project's personas, newest first, paginated — including ones created in the web app.
|
|
155
|
-
| `get_persona` | `persona_id` | free | One persona entity in full.
|
|
176
|
+
| `list_personas` | `project_id` | free | The project's personas, newest first, paginated — including ones created in the web app. Entries carry read-only `seniority` / `careerPath` when the persona has identity grounding. |
|
|
177
|
+
| `get_persona` | `persona_id` | free | One persona entity in full, including flat read-only `seniority` / `careerPath` when grounded. Forum `sources[]` and `identityProvenance` live on `report_data` via `get_report`, which nests the same two names under `identityPriors`. |
|
|
156
178
|
| `create_persona` | `project_id`, `name`, `role` | free | Create a persona from fields you already know. No AI, no credit. |
|
|
157
179
|
| `update_persona` | `persona_id` | free | Correct explicit scalar fields on an existing persona. No AI, no credit. |
|
|
158
180
|
| `generate_persona` | `project_id`, `name`, `role` | 1 credit | AI-generate a persona from a short brief, grounded by default in real user-voice evidence. A failed generation is never charged. |
|
|
@@ -163,7 +185,7 @@ name — the aliases exist for callers written before the rename.
|
|
|
163
185
|
| Tool | Required | Cost | What it does |
|
|
164
186
|
|------|----------|------|--------------|
|
|
165
187
|
| `interview_persona` | `action` | see note | Stateful multi-turn interview. `action:start` → `turn` (repeatedly) → `complete`, plus `transcript` and `reopen`. Each `turn` generates a real AI reply, metered by your monthly usage; per-turn credit pricing is not yet applied. |
|
|
166
|
-
| `list_interviews` | `project_id` | free | The project's interviews, newest first, paginated — recovers ids for interviews started in the web app. |
|
|
188
|
+
| `list_interviews` | `project_id` | free | The project's interviews, newest first, paginated — recovers ids for interviews started in the web app. Entries carry `messageCount`, not transcripts; use `get_interview` for one. |
|
|
167
189
|
| `get_interview` | `interview_id` | free | One interview's full transcript, from just an id. |
|
|
168
190
|
|
|
169
191
|
### Reports & collections
|
|
@@ -213,7 +235,10 @@ stays discoverable in the web UI.
|
|
|
213
235
|
|
|
214
236
|
## Outputs
|
|
215
237
|
|
|
216
|
-
The tool returns markdown content plus
|
|
238
|
+
The tool returns markdown content — with the trust digest appended to it — plus
|
|
239
|
+
`_meta`. The read tools additionally declare an `outputSchema` and return the
|
|
240
|
+
same payload as `structuredContent`; see
|
|
241
|
+
[What the tool returns](#what-the-tool-returns).
|
|
217
242
|
|
|
218
243
|
| `_meta` field | Type | Notes |
|
|
219
244
|
|--------------------|-----------------|-------------------------------------------------------------------------------------|
|
|
@@ -261,7 +286,7 @@ npx @clien-ai/mcp logout --json
|
|
|
261
286
|
# Snapshot of credentials state without triggering OAuth.
|
|
262
287
|
npx @clien-ai/mcp status
|
|
263
288
|
|
|
264
|
-
# @clien-ai/mcp v0.
|
|
289
|
+
# @clien-ai/mcp v0.3.0
|
|
265
290
|
#
|
|
266
291
|
# Backend: file
|
|
267
292
|
# Has token: yes
|
package/dist/auth/oauth.js
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import { createServer, } from 'node:http';
|
|
17
17
|
import { URL, URLSearchParams } from 'node:url';
|
|
18
18
|
import { z } from 'zod';
|
|
19
|
+
import { createSingleFlight } from '../util/single-flight.js';
|
|
19
20
|
import { generatePkcePair, generateState, } from './pkce.js';
|
|
20
21
|
// 30 seconds. Token endpoint should respond within a few hundred ms; longer
|
|
21
22
|
// means hung. Single bound covers both the network-issue case (#173) and the
|
|
@@ -413,6 +414,26 @@ export async function ensureSession(opts) {
|
|
|
413
414
|
/** Build the externally-visible Session object backed by mutable token state. */
|
|
414
415
|
function makeSession(initial, opts) {
|
|
415
416
|
const state = { current: initial };
|
|
417
|
+
// FUL-236: in-process single-flight over the whole refresh sequence.
|
|
418
|
+
//
|
|
419
|
+
// `get_project` fans out SIX parallel bearer reads over this one Session. On
|
|
420
|
+
// an expired access token every leg 401s and calls refresh(); without this,
|
|
421
|
+
// each leg would take `withTokenLock` in turn and burn its own token
|
|
422
|
+
// round-trip — six sequential lock acquisitions, and six presentations of a
|
|
423
|
+
// refresh token the server rotates on every use (the shape the reload-on-
|
|
424
|
+
// already-used retry exists to recover from). Collapsed here, exactly one
|
|
425
|
+
// refresh runs and the other five join it.
|
|
426
|
+
//
|
|
427
|
+
// Scoped to this closure, so it lives and dies with the Session object: an
|
|
428
|
+
// `invalidateSession()` that rebuilds the session starts with an empty slot,
|
|
429
|
+
// and tests constructing a fresh session start cold.
|
|
430
|
+
//
|
|
431
|
+
// ⚠️ This sits ABOVE `withTokenLock`, deliberately. The disk lock coordinates
|
|
432
|
+
// separate PROCESSES sharing `~/.clien-ai/tokens.json.enc` and is still
|
|
433
|
+
// required; single-flight only collapses callers inside THIS process. The
|
|
434
|
+
// lock is inside the flight body so the six callers stop queueing on lock
|
|
435
|
+
// acquisition too, not just on the fetch.
|
|
436
|
+
const refreshFlight = createSingleFlight();
|
|
416
437
|
return {
|
|
417
438
|
get accessToken() {
|
|
418
439
|
return state.current.accessToken;
|
|
@@ -421,49 +442,58 @@ function makeSession(initial, opts) {
|
|
|
421
442
|
return state.current.refreshToken;
|
|
422
443
|
},
|
|
423
444
|
async refresh() {
|
|
424
|
-
const fresh = await
|
|
425
|
-
|
|
426
|
-
//
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
445
|
+
const fresh = await refreshFlight.run(async () => {
|
|
446
|
+
const rotated = await refreshSequence();
|
|
447
|
+
// Assigned inside the flight body so it happens exactly once, before
|
|
448
|
+
// any joining caller resumes — not once per caller.
|
|
449
|
+
state.current = rotated;
|
|
450
|
+
return rotated;
|
|
451
|
+
});
|
|
452
|
+
return fresh.accessToken;
|
|
453
|
+
},
|
|
454
|
+
};
|
|
455
|
+
/** The load -> refresh -> save sequence, under the cross-process lock. */
|
|
456
|
+
async function refreshSequence() {
|
|
457
|
+
return opts.withTokenLock(async () => {
|
|
458
|
+
// Re-read disk inside the lock so a peer's recent rotation wins
|
|
459
|
+
// over our (potentially stale) in-memory copy.
|
|
460
|
+
const current = (await opts.loadRefreshToken()) ?? state.current.refreshToken;
|
|
461
|
+
try {
|
|
462
|
+
const refreshed = await refreshAccessToken(opts.config, current);
|
|
463
|
+
await opts.saveRefreshToken(refreshed.refreshToken);
|
|
464
|
+
return refreshed;
|
|
465
|
+
}
|
|
466
|
+
catch (err) {
|
|
467
|
+
// Bubble transient errors WITHOUT clearing storage — same guard as
|
|
468
|
+
// ensureSession to avoid wiping a still-valid token on a network blip.
|
|
469
|
+
if (err instanceof OAuthError && err.code === 'oauth_network_error') {
|
|
470
|
+
throw err;
|
|
432
471
|
}
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
await opts.saveRefreshToken(refreshed.refreshToken);
|
|
445
|
-
return refreshed;
|
|
446
|
-
}
|
|
447
|
-
catch (retryErr) {
|
|
448
|
-
if (retryErr instanceof OAuthError && retryErr.code === 'oauth_network_error') {
|
|
449
|
-
throw retryErr;
|
|
450
|
-
}
|
|
451
|
-
// fall through to clearTokens
|
|
472
|
+
if (isAlreadyUsedError(err)) {
|
|
473
|
+
const reloaded = await opts.loadRefreshToken();
|
|
474
|
+
if (reloaded && reloaded !== current) {
|
|
475
|
+
try {
|
|
476
|
+
const refreshed = await refreshAccessToken(opts.config, reloaded);
|
|
477
|
+
await opts.saveRefreshToken(refreshed.refreshToken);
|
|
478
|
+
return refreshed;
|
|
479
|
+
}
|
|
480
|
+
catch (retryErr) {
|
|
481
|
+
if (retryErr instanceof OAuthError && retryErr.code === 'oauth_network_error') {
|
|
482
|
+
throw retryErr;
|
|
452
483
|
}
|
|
484
|
+
// fall through to clearTokens
|
|
453
485
|
}
|
|
454
486
|
}
|
|
455
|
-
// Genuinely revoked refresh token — clear stored credentials so
|
|
456
|
-
// the next ensureSession run doesn't reload the same dead token
|
|
457
|
-
// and burn another round-trip. Symmetric with ensureSession's
|
|
458
|
-
// step-2 path. Best-effort: an unwritable HOME shouldn't mask
|
|
459
|
-
// the original refresh failure.
|
|
460
|
-
await opts.clearTokens().catch(() => { });
|
|
461
|
-
throw err;
|
|
462
487
|
}
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
488
|
+
// Genuinely revoked refresh token — clear stored credentials so
|
|
489
|
+
// the next ensureSession run doesn't reload the same dead token
|
|
490
|
+
// and burn another round-trip. Symmetric with ensureSession's
|
|
491
|
+
// step-2 path. Best-effort: an unwritable HOME shouldn't mask
|
|
492
|
+
// the original refresh failure.
|
|
493
|
+
await opts.clearTokens().catch(() => { });
|
|
494
|
+
throw err;
|
|
495
|
+
}
|
|
496
|
+
});
|
|
497
|
+
}
|
|
468
498
|
}
|
|
469
499
|
//# sourceMappingURL=oauth.js.map
|
package/dist/auth/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -14,6 +14,7 @@ import { ensureSession, } from './auth/oauth.js';
|
|
|
14
14
|
import { clearTokens, loadRefreshToken, saveRefreshToken, withTokenLock, } from './auth/storage.js';
|
|
15
15
|
import { ToolError } from './tools/errors.js';
|
|
16
16
|
import { TOOLS } from './tools/registry.js';
|
|
17
|
+
import { createSingleFlight } from './util/single-flight.js';
|
|
17
18
|
function log(...args) {
|
|
18
19
|
// stderr only — stdout is the MCP transport.
|
|
19
20
|
console.error('[clien-mcp]', ...args);
|
|
@@ -46,19 +47,35 @@ export function createMcpServer() {
|
|
|
46
47
|
// gymnastics. In production we only ever construct one server per process
|
|
47
48
|
// (`startStdioServer`), so behavior is identical.
|
|
48
49
|
let cachedSession = null;
|
|
50
|
+
// FUL-236, same hazard one level up from `Session.refresh()`: the MCP SDK
|
|
51
|
+
// dispatches `tools/call` requests concurrently, so two tool calls arriving
|
|
52
|
+
// on a COLD cache would both see `cachedSession === null` and both run
|
|
53
|
+
// `ensureSession` — two refreshes of a rotating refresh token, the second of
|
|
54
|
+
// which lands on the `invalid_grant` reload-and-retry path. Collapsing them
|
|
55
|
+
// means the second call joins the first build.
|
|
56
|
+
//
|
|
57
|
+
// Unlike the refresh flight this one also has a cache in front of it, so the
|
|
58
|
+
// steady state (`cachedSession` set) never reaches the flight at all.
|
|
59
|
+
const sessionFlight = createSingleFlight();
|
|
49
60
|
async function getSession() {
|
|
61
|
+
// No re-check of `cachedSession` inside the flight body: `run` invokes its
|
|
62
|
+
// callback SYNCHRONOUSLY, so there is no async gap between the miss above
|
|
63
|
+
// and the build below in which the cache could have been filled.
|
|
50
64
|
if (cachedSession)
|
|
51
65
|
return cachedSession;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
return sessionFlight.run(async () => {
|
|
67
|
+
const opener = await defaultBrowserOpener();
|
|
68
|
+
const session = await ensureSession({
|
|
69
|
+
config,
|
|
70
|
+
loadRefreshToken,
|
|
71
|
+
saveRefreshToken,
|
|
72
|
+
clearTokens,
|
|
73
|
+
openBrowser: opener,
|
|
74
|
+
withTokenLock,
|
|
75
|
+
});
|
|
76
|
+
cachedSession = session;
|
|
77
|
+
return session;
|
|
60
78
|
});
|
|
61
|
-
return cachedSession;
|
|
62
79
|
}
|
|
63
80
|
// Invalidate the in-memory session so the next tool call rebuilds it from
|
|
64
81
|
// disk. Called from the polling loop when a 401 indicates server-side
|
|
@@ -68,11 +85,16 @@ export function createMcpServer() {
|
|
|
68
85
|
cachedSession = null;
|
|
69
86
|
}
|
|
70
87
|
const server = new Server({ name: PACKAGE_NAME, version: PACKAGE_VERSION }, { capabilities: { tools: {} } });
|
|
88
|
+
// `outputSchema` is spread conditionally rather than set to `undefined`:
|
|
89
|
+
// advertising an explicit `outputSchema: undefined` on the 11 tools that have
|
|
90
|
+
// none would serialise the key on the wire, and a client is entitled to read a
|
|
91
|
+
// present-but-empty schema differently from an absent one.
|
|
71
92
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
72
93
|
tools: TOOLS.map((tool) => ({
|
|
73
94
|
name: tool.name,
|
|
74
95
|
description: tool.description,
|
|
75
96
|
inputSchema: tool.jsonSchema,
|
|
97
|
+
...(tool.outputSchema ? { outputSchema: tool.outputSchema } : {}),
|
|
76
98
|
})),
|
|
77
99
|
}));
|
|
78
100
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
@@ -120,9 +142,15 @@ export function createMcpServer() {
|
|
|
120
142
|
onProgress,
|
|
121
143
|
invalidateSession,
|
|
122
144
|
});
|
|
145
|
+
// FUL-243: `structuredContent` is the MCP 2025-06-18 machine-readable
|
|
146
|
+
// result channel — unlike `_meta`, a host is expected to surface it. It is
|
|
147
|
+
// populated by `defineTool` for exactly the tools that declare an
|
|
148
|
+
// `outputSchema`, so this passes through whatever the registry produced
|
|
149
|
+
// and never invents one. `_meta` is still sent unchanged for back-compat.
|
|
123
150
|
return {
|
|
124
151
|
content: result.content,
|
|
125
152
|
_meta: result._meta,
|
|
153
|
+
...(result.structuredContent ? { structuredContent: result.structuredContent } : {}),
|
|
126
154
|
};
|
|
127
155
|
}
|
|
128
156
|
catch (err) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EACL,aAAa,GAGd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|