clinicaltrialsgov-mcp-server 2.8.7 → 2.9.1
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/README.md +4 -3
- package/dist/mcp-server/resources/definitions/study.resource.d.ts +29 -2
- package/dist/mcp-server/resources/definitions/study.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/study.resource.js +122 -5
- package/dist/mcp-server/resources/definitions/study.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/find-eligible.tool.d.ts +2 -1
- package/dist/mcp-server/tools/definitions/find-eligible.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/find-eligible.tool.js +135 -27
- package/dist/mcp-server/tools/definitions/find-eligible.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-field-values.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/get-study-count.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/get-study-results.tool.d.ts +11 -1
- package/dist/mcp-server/tools/definitions/get-study-results.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-study-results.tool.js +136 -3
- package/dist/mcp-server/tools/definitions/get-study-results.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-study.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-study.tool.js +1 -112
- package/dist/mcp-server/tools/definitions/get-study.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-studies.tool.d.ts +1 -1
- package/dist/mcp-server/tools/utils/format-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/format-helpers.js +88 -12
- package/dist/mcp-server/tools/utils/format-helpers.js.map +1 -1
- package/dist/mcp-server/tools/utils/query-helpers.d.ts +5 -1
- package/dist/mcp-server/tools/utils/query-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/query-helpers.js +6 -2
- package/dist/mcp-server/tools/utils/query-helpers.js.map +1 -1
- package/dist/mcp-server/tools/utils/recovery-hints.d.ts +1 -1
- package/dist/mcp-server/tools/utils/recovery-hints.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/recovery-hints.js +1 -1
- package/dist/mcp-server/tools/utils/recovery-hints.js.map +1 -1
- package/dist/mcp-server/tools/utils/study-filters.d.ts +61 -0
- package/dist/mcp-server/tools/utils/study-filters.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/study-filters.js +120 -0
- package/dist/mcp-server/tools/utils/study-filters.js.map +1 -0
- package/dist/services/clinical-trials/field-search.d.ts +5 -0
- package/dist/services/clinical-trials/field-search.d.ts.map +1 -1
- package/dist/services/clinical-trials/field-search.js +25 -2
- package/dist/services/clinical-trials/field-search.js.map +1 -1
- package/package.json +1 -6
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](https://www.npmjs.com/package/clinicaltrialsgov-mcp-server) [](https://github.com/users/cyanheads/packages/container/package/clinicaltrialsgov-mcp-server) [](https://www.npmjs.com/package/clinicaltrialsgov-mcp-server) [](https://github.com/users/cyanheads/packages/container/package/clinicaltrialsgov-mcp-server) [](./CHANGELOG.md) [](https://modelcontextprotocol.io/) [](./LICENSE) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -38,12 +38,12 @@ Seven tools for searching, discovering, analyzing, and matching clinical trials:
|
|
|
38
38
|
| `clinicaltrials_get_study_count` | Get total study count for a query without fetching data. Fast statistics and breakdowns. |
|
|
39
39
|
| `clinicaltrials_get_field_values` | Discover valid values for API fields (status, phase, study type, etc.) with per-value counts. |
|
|
40
40
|
| `clinicaltrials_get_field_definitions` | Browse the study data model field tree — piece names, types, nesting. Supports subtree navigation and keyword search. |
|
|
41
|
-
| `clinicaltrials_get_study_results` | Extract outcomes, adverse events, participant flow, and baseline from completed studies. Optional summary mode reduces ~200KB payloads to ~5KB. |
|
|
41
|
+
| `clinicaltrials_get_study_results` | Extract outcomes, adverse events, participant flow, and baseline from completed studies. Optional summary mode reduces ~200KB payloads to ~5KB; `outcomeLimit` / `adverseEventLimit` cap full mode without leaving it. |
|
|
42
42
|
| `clinicaltrials_find_eligible` | Match patient demographics and conditions to eligible recruiting trials. Provide age, sex, conditions, and location to find studies with matching eligibility criteria, contacts, and recruiting locations. |
|
|
43
43
|
|
|
44
44
|
| Resource | Description |
|
|
45
45
|
| :------------------------- | :-------------------------------------------------- |
|
|
46
|
-
| `clinicaltrials://{nctId}` | Fetch a single clinical trial study by NCT ID.
|
|
46
|
+
| `clinicaltrials://{nctId}` | Fetch a single clinical trial study by NCT ID. Protocol JSON with capped locations/outcomes/references and results replaced by counts; omissions reported with the tool that retrieves them. |
|
|
47
47
|
|
|
48
48
|
| Prompt | Description |
|
|
49
49
|
| :------------------------ | :--------------------------------------------------------------------------------- |
|
|
@@ -84,6 +84,7 @@ Match a patient profile to eligible recruiting trials.
|
|
|
84
84
|
- Builds optimized API queries with demographic filters (age range, sex, healthy volunteers)
|
|
85
85
|
- Re-ranks results so studies whose own condition matches a requested condition surface above tangential matches from the upstream fuzzy condition search
|
|
86
86
|
- Returns studies with eligibility and location fields for the caller to evaluate
|
|
87
|
+
- Bounds each candidate to the sites matching the requested location (capped by `locationLimit`) rather than every site the study registers worldwide, adds the nearest recruiting site when none of the matched ones is open, and discloses what was omitted
|
|
87
88
|
- Provides actionable hints when no studies match (broaden conditions, adjust filters)
|
|
88
89
|
|
|
89
90
|
## Features
|
|
@@ -1,12 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Single clinical study resource by NCT ID
|
|
2
|
+
* @fileoverview Single clinical study resource by NCT ID, bounded to a size a
|
|
3
|
+
* client can hold. A resource read takes no arguments, so the caps are fixed
|
|
4
|
+
* server-side and every omission is disclosed with the tool that retrieves it.
|
|
3
5
|
* @module mcp-server/resources/definitions/study.resource
|
|
4
6
|
*/
|
|
5
7
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
6
8
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
9
|
export declare const studyResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
|
|
8
10
|
nctId: z.ZodString;
|
|
9
|
-
}, z.core.$strip>,
|
|
11
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
12
|
+
nctId: z.ZodString;
|
|
13
|
+
study: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
14
|
+
resultsSummary: z.ZodOptional<z.ZodObject<{
|
|
15
|
+
outcomeMeasures: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
seriousAdverseEvents: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
otherAdverseEvents: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
participantFlowPeriods: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
baselineMeasures: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
filtersApplied: z.ZodObject<{
|
|
22
|
+
totalLocations: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
locationLimit: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
totalSecondaryOutcomes: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
totalOtherOutcomes: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
totalReferences: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
outcomeLimit: z.ZodOptional<z.ZodNumber>;
|
|
28
|
+
referenceLimit: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
truncated: z.ZodBoolean;
|
|
31
|
+
retrieval: z.ZodOptional<z.ZodObject<{
|
|
32
|
+
nctId: z.ZodString;
|
|
33
|
+
studyRecordTool: z.ZodString;
|
|
34
|
+
studyResultsTool: z.ZodString;
|
|
35
|
+
}, z.core.$strip>>;
|
|
36
|
+
}, z.core.$strip>, readonly [{
|
|
10
37
|
readonly reason: "study_not_found";
|
|
11
38
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
12
39
|
readonly when: "The provided NCT ID does not match any study at ClinicalTrials.gov.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"study.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"study.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgBjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsJxB,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Single clinical study resource by NCT ID
|
|
2
|
+
* @fileoverview Single clinical study resource by NCT ID, bounded to a size a
|
|
3
|
+
* client can hold. A resource read takes no arguments, so the caps are fixed
|
|
4
|
+
* server-side and every omission is disclosed with the tool that retrieves it.
|
|
3
5
|
* @module mcp-server/resources/definitions/study.resource
|
|
4
6
|
*/
|
|
5
7
|
import { resource, z } from '@cyanheads/mcp-ts-core';
|
|
@@ -7,9 +9,18 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
|
7
9
|
import { getClinicalTrialsService } from '../../../services/clinical-trials/clinical-trials-service.js';
|
|
8
10
|
import { nctIdSchema } from '../../tools/utils/_schemas.js';
|
|
9
11
|
import { RECOVERY_HINTS } from '../../tools/utils/recovery-hints.js';
|
|
12
|
+
import { applyFilters, summarizeResults } from '../../tools/utils/study-filters.js';
|
|
13
|
+
/**
|
|
14
|
+
* Fixed cap on each of the study's three unbounded protocol lists — locations,
|
|
15
|
+
* secondary/other outcomes, references. Deliberately below the per-list maxima
|
|
16
|
+
* clinicaltrials_get_study_record accepts (500 / 100 / 100): that tool is the
|
|
17
|
+
* retrieval path for a caller who wants more, and it can be asked for the full
|
|
18
|
+
* list. A read of this resource cannot.
|
|
19
|
+
*/
|
|
20
|
+
const LIST_LIMIT = 50;
|
|
10
21
|
export const studyResource = resource('clinicaltrials://{nctId}', {
|
|
11
22
|
name: 'Clinical Trial Study',
|
|
12
|
-
description:
|
|
23
|
+
description: `Fetch a single clinical study by NCT ID as JSON. The protocol record comes back whole apart from three capped lists (locations, secondary/other outcomes, references — ${LIST_LIMIT} each), and the results data, which reaches ~600KB on a large trial, is replaced by its counts. Anything omitted is reported in truncated, filtersApplied, and resultsSummary, with the tool that retrieves it named in retrieval.`,
|
|
13
24
|
mimeType: 'application/json',
|
|
14
25
|
errors: [
|
|
15
26
|
{
|
|
@@ -29,11 +40,117 @@ export const studyResource = resource('clinicaltrials://{nctId}', {
|
|
|
29
40
|
params: z.object({
|
|
30
41
|
nctId: nctIdSchema.describe('NCT identifier (e.g., NCT03722472).'),
|
|
31
42
|
}),
|
|
43
|
+
output: z.object({
|
|
44
|
+
nctId: z.string().describe('NCT identifier of the study read.'),
|
|
45
|
+
study: z
|
|
46
|
+
.record(z.string(), z.unknown())
|
|
47
|
+
.describe('The study record with the caps below already applied. Top-level keys: protocolSection (identification, status, sponsor, conditions, design, arms/interventions, outcomes, eligibility, contacts/locations), derivedSection (MeSH-normalized terms), documentSection, hasResults. resultsSection is omitted — see resultsSummary.'),
|
|
48
|
+
resultsSummary: z
|
|
49
|
+
.object({
|
|
50
|
+
outcomeMeasures: z.number().int().optional().describe('Posted outcome measures.'),
|
|
51
|
+
seriousAdverseEvents: z
|
|
52
|
+
.number()
|
|
53
|
+
.int()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('Distinct serious adverse-event terms.'),
|
|
56
|
+
otherAdverseEvents: z
|
|
57
|
+
.number()
|
|
58
|
+
.int()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe('Distinct other (non-serious) adverse-event terms.'),
|
|
61
|
+
participantFlowPeriods: z.number().int().optional().describe('Participant-flow periods.'),
|
|
62
|
+
baselineMeasures: z.number().int().optional().describe('Baseline characteristic measures.'),
|
|
63
|
+
})
|
|
64
|
+
.optional()
|
|
65
|
+
.describe('Counts of the posted results data omitted from study, present when the study has results to count. Fetch the data itself with clinicaltrials_get_study_results.'),
|
|
66
|
+
filtersApplied: z
|
|
67
|
+
.object({
|
|
68
|
+
totalLocations: z
|
|
69
|
+
.number()
|
|
70
|
+
.int()
|
|
71
|
+
.optional()
|
|
72
|
+
.describe('Upstream location count before the cap trimmed the list.'),
|
|
73
|
+
locationLimit: z
|
|
74
|
+
.number()
|
|
75
|
+
.int()
|
|
76
|
+
.optional()
|
|
77
|
+
.describe('The location cap — present only when it trimmed the list.'),
|
|
78
|
+
totalSecondaryOutcomes: z
|
|
79
|
+
.number()
|
|
80
|
+
.int()
|
|
81
|
+
.optional()
|
|
82
|
+
.describe('Upstream secondary outcomes count before the cap trimmed the list.'),
|
|
83
|
+
totalOtherOutcomes: z
|
|
84
|
+
.number()
|
|
85
|
+
.int()
|
|
86
|
+
.optional()
|
|
87
|
+
.describe('Upstream other outcomes count before the cap trimmed the list.'),
|
|
88
|
+
totalReferences: z
|
|
89
|
+
.number()
|
|
90
|
+
.int()
|
|
91
|
+
.optional()
|
|
92
|
+
.describe('Upstream reference count before the cap trimmed the list.'),
|
|
93
|
+
outcomeLimit: z
|
|
94
|
+
.number()
|
|
95
|
+
.int()
|
|
96
|
+
.optional()
|
|
97
|
+
.describe('The outcome cap — present only when it trimmed a list.'),
|
|
98
|
+
referenceLimit: z
|
|
99
|
+
.number()
|
|
100
|
+
.int()
|
|
101
|
+
.optional()
|
|
102
|
+
.describe('The reference cap — present only when it trimmed the list.'),
|
|
103
|
+
})
|
|
104
|
+
.describe('Which caps trimmed a list, with the upstream total for each. Empty when every list came back whole. Primary outcomes and seeAlsoLinks are never capped.'),
|
|
105
|
+
truncated: z
|
|
106
|
+
.boolean()
|
|
107
|
+
.describe('True when results data or any capped list was omitted from study.'),
|
|
108
|
+
retrieval: z
|
|
109
|
+
.object({
|
|
110
|
+
nctId: z.string().describe('NCT identifier to pass to either tool.'),
|
|
111
|
+
studyRecordTool: z
|
|
112
|
+
.string()
|
|
113
|
+
.describe('Tool that returns the protocol record with caller-controlled locationLimit / outcomeLimit / referenceLimit — omit them for the uncapped lists.'),
|
|
114
|
+
studyResultsTool: z
|
|
115
|
+
.string()
|
|
116
|
+
.describe('Tool that returns the omitted results data, by section and with its own outcomeLimit / adverseEventLimit caps.'),
|
|
117
|
+
})
|
|
118
|
+
.optional()
|
|
119
|
+
.describe('How to retrieve what was omitted. Present only when truncated is true.'),
|
|
120
|
+
}),
|
|
32
121
|
async handler(params, ctx) {
|
|
33
122
|
const service = getClinicalTrialsService();
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
123
|
+
const raw = (await service.getStudy(params.nctId, ctx));
|
|
124
|
+
const { study, meta } = applyFilters(raw, {
|
|
125
|
+
locationLimit: LIST_LIMIT,
|
|
126
|
+
outcomeLimit: LIST_LIMIT,
|
|
127
|
+
referenceLimit: LIST_LIMIT,
|
|
128
|
+
});
|
|
129
|
+
// The results data is the tail that overflows a context window — a large
|
|
130
|
+
// trial carries ~600KB of it against ~70KB of protocol. Carry its counts
|
|
131
|
+
// and point at the tool that fetches it section by section.
|
|
132
|
+
const resultsSummary = summarizeResults(study);
|
|
133
|
+
const droppedResults = study.resultsSection != null;
|
|
134
|
+
const studyOut = { ...study };
|
|
135
|
+
delete studyOut.resultsSection;
|
|
136
|
+
const truncated = droppedResults || Object.keys(meta).length > 0;
|
|
137
|
+
ctx.log.info('Study fetched', { nctId: params.nctId, truncated });
|
|
138
|
+
return {
|
|
139
|
+
nctId: params.nctId,
|
|
140
|
+
study: studyOut,
|
|
141
|
+
...(resultsSummary ? { resultsSummary } : {}),
|
|
142
|
+
filtersApplied: meta,
|
|
143
|
+
truncated,
|
|
144
|
+
...(truncated
|
|
145
|
+
? {
|
|
146
|
+
retrieval: {
|
|
147
|
+
nctId: params.nctId,
|
|
148
|
+
studyRecordTool: 'clinicaltrials_get_study_record',
|
|
149
|
+
studyResultsTool: 'clinicaltrials_get_study_results',
|
|
150
|
+
},
|
|
151
|
+
}
|
|
152
|
+
: {}),
|
|
153
|
+
};
|
|
37
154
|
},
|
|
38
155
|
});
|
|
39
156
|
//# sourceMappingURL=study.resource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"study.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"study.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AAEjG,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,0BAA0B,EAAE;IAChE,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,0KAA0K,UAAU,oOAAoO;IACra,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE;QACN;YACE,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,qEAAqE;YAC3E,QAAQ,EAAE,cAAc,CAAC,eAAe;SACzC;QACD;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,WAAW;YAClC,IAAI,EAAE,+DAA+D;YACrE,QAAQ,EAAE,cAAc,CAAC,YAAY;YACrC,SAAS,EAAE,IAAI;SAChB;KACF;IACD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACnE,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC/D,KAAK,EAAE,CAAC;aACL,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC/B,QAAQ,CACP,kUAAkU,CACnU;QACH,cAAc,EAAE,CAAC;aACd,MAAM,CAAC;YACN,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACjF,oBAAoB,EAAE,CAAC;iBACpB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,uCAAuC,CAAC;YACpD,kBAAkB,EAAE,CAAC;iBAClB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACzF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAC5F,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CACP,iKAAiK,CAClK;QACH,cAAc,EAAE,CAAC;aACd,MAAM,CAAC;YACN,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;YACvE,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,2DAA2D,CAAC;YACxE,sBAAsB,EAAE,CAAC;iBACtB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,oEAAoE,CAAC;YACjF,kBAAkB,EAAE,CAAC;iBAClB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,gEAAgE,CAAC;YAC7E,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,2DAA2D,CAAC;YACxE,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;YACrE,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;SAC1E,CAAC;aACD,QAAQ,CACP,yJAAyJ,CAC1J;QACH,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,CAAC,mEAAmE,CAAC;QAChF,SAAS,EAAE,CAAC;aACT,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACpE,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,CACP,gJAAgJ,CACjJ;YACH,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,CACP,gHAAgH,CACjH;SACJ,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,wEAAwE,CAAC;KACtF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAkB,CAAC;QAEzE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE;YACxC,aAAa,EAAE,UAAU;YACzB,YAAY,EAAE,UAAU;YACxB,cAAc,EAAE,UAAU;SAC3B,CAAC,CAAC;QAEH,yEAAyE;QACzE,yEAAyE;QACzE,4DAA4D;QAC5D,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC;QACpD,MAAM,QAAQ,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC,cAAc,CAAC;QAE/B,MAAM,SAAS,GAAG,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAElE,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,QAAQ;YACf,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,cAAc,EAAE,IAAI;YACpB,SAAS;YACT,GAAG,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,SAAS,EAAE;wBACT,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,eAAe,EAAE,iCAAiC;wBAClD,gBAAgB,EAAE,kCAAkC;qBACrD;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -45,6 +45,7 @@ export declare const findEligible: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
45
45
|
healthyVolunteer: z.ZodDefault<z.ZodBoolean>;
|
|
46
46
|
recruitingOnly: z.ZodDefault<z.ZodBoolean>;
|
|
47
47
|
maxResults: z.ZodDefault<z.ZodNumber>;
|
|
48
|
+
locationLimit: z.ZodDefault<z.ZodNumber>;
|
|
48
49
|
}, z.core.$strip>, z.ZodObject<{
|
|
49
50
|
studies: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
50
51
|
totalCount: z.ZodOptional<z.ZodNumber>;
|
|
@@ -52,7 +53,7 @@ export declare const findEligible: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
52
53
|
readonly reason: "blank_value";
|
|
53
54
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
54
55
|
readonly when: "A parameter was supplied with a blank, whitespace-only, or empty-list value.";
|
|
55
|
-
readonly recovery: "
|
|
56
|
+
readonly recovery: "Supply a value containing non-whitespace, or for a list parameter at least one non-blank entry. Only when the parameter is optional and you meant to leave it unset, omit it entirely instead — omission and a blank value mean different things here.";
|
|
56
57
|
}, {
|
|
57
58
|
readonly reason: "rate_limited";
|
|
58
59
|
readonly code: JsonRpcErrorCode.RateLimited;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-eligible.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-eligible.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"find-eligible.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-eligible.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgJjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAiC1F;AA2CD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4gBvB,CAAC"}
|
|
@@ -9,11 +9,11 @@ import { formatRemainingStudyFields } from '../utils/format-helpers.js';
|
|
|
9
9
|
import { blankValueMessage, firstBlankListParam, firstBlankParam } from '../utils/query-helpers.js';
|
|
10
10
|
import { RECOVERY_HINTS } from '../utils/recovery-hints.js';
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* How closely a site's geography matches the user's stated location. City
|
|
13
|
+
* equality dominates, then state, then country, so the score doubles as a match
|
|
14
|
+
* tier: every site sharing the study's best score matched at the same level.
|
|
15
15
|
*/
|
|
16
|
-
function
|
|
16
|
+
function locationGeoScore(loc, user) {
|
|
17
17
|
const eq = (a, b) => a !== undefined && b !== undefined && a.toLowerCase() === b.toLowerCase();
|
|
18
18
|
let score = 0;
|
|
19
19
|
if (eq(loc.city, user.city))
|
|
@@ -22,10 +22,79 @@ function locationMatchScore(loc, user) {
|
|
|
22
22
|
score += 2;
|
|
23
23
|
if (eq(loc.country, user.country))
|
|
24
24
|
score += 1;
|
|
25
|
-
if (loc.status === 'RECRUITING')
|
|
26
|
-
score += 0.5;
|
|
27
25
|
return score;
|
|
28
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Whether a site can enroll a patient who is searching for a trial. Only
|
|
29
|
+
* `RECRUITING` qualifies: `ENROLLING_BY_INVITATION` admits invited participants
|
|
30
|
+
* only, `NOT_YET_RECRUITING` has not opened, and the remaining statuses
|
|
31
|
+
* (`ACTIVE_NOT_RECRUITING`, `SUSPENDED`, `WITHDRAWN`, `TERMINATED`,
|
|
32
|
+
* `COMPLETED`) are closed. Same definition the study-level `recruitingOnly`
|
|
33
|
+
* filter applies upstream.
|
|
34
|
+
*/
|
|
35
|
+
function isRecruiting(loc) {
|
|
36
|
+
return loc.status === 'RECRUITING';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Score a study location against the user's stated location. Higher = better
|
|
40
|
+
* match. Geography dominates; recruiting status breaks ties between
|
|
41
|
+
* geographically-equivalent sites.
|
|
42
|
+
*/
|
|
43
|
+
function locationMatchScore(loc, user) {
|
|
44
|
+
return locationGeoScore(loc, user) + (isRecruiting(loc) ? 0.5 : 0);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Bound a candidate's site list to the sites that answer the caller's question.
|
|
48
|
+
*
|
|
49
|
+
* A location-constrained eligibility query qualifies a *study*, but the study
|
|
50
|
+
* still carries every site it has ever registered — hundreds of them, dominating
|
|
51
|
+
* both the payload and the answer with sites nowhere near the patient. Keep the
|
|
52
|
+
* sites that matched at the narrowest level the caller's location reached (city,
|
|
53
|
+
* else state, else country), then cap what survives.
|
|
54
|
+
*
|
|
55
|
+
* Geography alone decides the tier, so a tier can hold nothing but closed sites
|
|
56
|
+
* while the study's one open site sits further out — a patient-matching answer
|
|
57
|
+
* whose every shown site can enroll no one (#114). When that happens, admit the
|
|
58
|
+
* nearest recruiting site alongside the tier. Admitting one site keeps the
|
|
59
|
+
* local answer local; widening to that site's whole tier would trade a
|
|
60
|
+
* city-precise answer for a statewide dump and reinflate the payload this bound
|
|
61
|
+
* exists to hold down.
|
|
62
|
+
*
|
|
63
|
+
* The summary is returned only when the returned set is genuinely smaller than
|
|
64
|
+
* the upstream one — reporting a bound that dropped nothing would imply a filter
|
|
65
|
+
* ran where none did.
|
|
66
|
+
*/
|
|
67
|
+
function boundLocations(sortedLocations, user, limit) {
|
|
68
|
+
const total = sortedLocations.length;
|
|
69
|
+
let best = 0;
|
|
70
|
+
for (const loc of sortedLocations)
|
|
71
|
+
best = Math.max(best, locationGeoScore(loc, user));
|
|
72
|
+
// best === 0 keeps every site: a study can qualify upstream on a facility or
|
|
73
|
+
// ZIP match with no city/state/country hit, and dropping all of its sites
|
|
74
|
+
// would answer with a candidate that appears to have nowhere to enroll.
|
|
75
|
+
const matched = sortedLocations.filter((loc) => locationGeoScore(loc, user) === best);
|
|
76
|
+
const capped = matched.slice(0, limit);
|
|
77
|
+
// sortedLocations runs best-match first, so the first recruiting site below
|
|
78
|
+
// the tier is the nearest one. Nothing is found when best === 0 (no site
|
|
79
|
+
// scores below it) or when the study registers no recruiting site at all —
|
|
80
|
+
// both leave the tier answer exactly as it was.
|
|
81
|
+
const admitted = capped.some(isRecruiting)
|
|
82
|
+
? undefined
|
|
83
|
+
: sortedLocations.find((loc) => isRecruiting(loc) && locationGeoScore(loc, user) < best);
|
|
84
|
+
const locations = admitted ? [...capped, admitted] : capped;
|
|
85
|
+
if (locations.length === total)
|
|
86
|
+
return { locations };
|
|
87
|
+
return {
|
|
88
|
+
locations,
|
|
89
|
+
summary: {
|
|
90
|
+
totalLocations: total,
|
|
91
|
+
matchedLocations: matched.length,
|
|
92
|
+
locationsTruncated: matched.length > capped.length,
|
|
93
|
+
...(admitted ? { nearestRecruitingSiteAdded: true } : {}),
|
|
94
|
+
retrieveFullStudyWith: 'clinicaltrials_get_study_record',
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
29
98
|
/**
|
|
30
99
|
* Generic condition tokens that carry no disease-specificity. Excluded from
|
|
31
100
|
* token-overlap scoring so "Cardiovascular Disease" doesn't spuriously match
|
|
@@ -119,6 +188,9 @@ const ELIGIBLE_RENDERED = new Set([
|
|
|
119
188
|
'protocolSection.descriptionModule.briefSummary',
|
|
120
189
|
'protocolSection.eligibilityModule',
|
|
121
190
|
'protocolSection.contactsLocationsModule',
|
|
191
|
+
// Rendered by the Sites line, not the field dump — otherwise it reads as a
|
|
192
|
+
// stray upstream field rather than the bound the handler applied.
|
|
193
|
+
'locationSummary',
|
|
122
194
|
]);
|
|
123
195
|
/** Fields requested for eligibility evaluation. */
|
|
124
196
|
const ELIGIBLE_FIELDS = [
|
|
@@ -145,7 +217,7 @@ const ELIGIBLE_FIELDS = [
|
|
|
145
217
|
'CentralContactEMail',
|
|
146
218
|
];
|
|
147
219
|
export const findEligible = tool('clinicaltrials_find_eligible', {
|
|
148
|
-
description: "Match patient demographics and conditions to eligible recruiting clinical trials. Provide age, sex, conditions, and location to find studies with matching eligibility criteria, contact information, and recruiting locations. Results are re-ranked so studies whose own condition matches a requested condition surface above tangential matches from ClinicalTrials.gov's fuzzy condition search.",
|
|
220
|
+
description: "Match patient demographics and conditions to eligible recruiting clinical trials. Provide age, sex, conditions, and location to find studies with matching eligibility criteria, contact information, and recruiting locations. Results are re-ranked so studies whose own condition matches a requested condition surface above tangential matches from ClinicalTrials.gov's fuzzy condition search. Each candidate returns only the sites matching the requested location (capped by locationLimit), not the study's full registered site list — a large trial can register hundreds of sites worldwide. When none of a candidate's matched sites is recruiting, its nearest recruiting site is added, so an enrollable site is never hidden behind a closer closed one. Fetch a study's complete record with clinicaltrials_get_study_record.",
|
|
149
221
|
annotations: {
|
|
150
222
|
readOnlyHint: true,
|
|
151
223
|
idempotentHint: true,
|
|
@@ -187,11 +259,18 @@ export const findEligible = tool('clinicaltrials_find_eligible', {
|
|
|
187
259
|
.describe('Whether the patient is a healthy volunteer. When true, only studies accepting healthy volunteers are queried.'),
|
|
188
260
|
recruitingOnly: z.boolean().default(true).describe('Only include actively recruiting studies.'),
|
|
189
261
|
maxResults: z.number().int().min(1).max(50).default(10).describe('Maximum results to return.'),
|
|
262
|
+
locationLimit: z
|
|
263
|
+
.number()
|
|
264
|
+
.int()
|
|
265
|
+
.min(1)
|
|
266
|
+
.max(500)
|
|
267
|
+
.default(10)
|
|
268
|
+
.describe("Cap on the sites returned per candidate. Each candidate keeps only the sites matching the requested location at the narrowest level that matched (city, else state, else country), capped at this many; the rest of the study's registered sites are omitted. The cap governs those matched sites — when none of them is recruiting, the candidate's nearest recruiting site is added on top of it, so a candidate can carry one site more than this. Raise it to see more nearby sites, or fetch the complete site list with clinicaltrials_get_study_record. Each candidate reports totalLocations / matchedLocations / locationsTruncated / nearestRecruitingSiteAdded in locationSummary only when the bound actually dropped sites."),
|
|
190
269
|
}),
|
|
191
270
|
output: z.object({
|
|
192
271
|
studies: z
|
|
193
272
|
.array(z.record(z.string(), z.unknown()))
|
|
194
|
-
.describe(
|
|
273
|
+
.describe("Matching studies with eligibility and location fields. Each candidate's protocolSection.contactsLocationsModule.locations is BOUNDED to the sites matching the requested location (capped at locationLimit) plus, when none of those is recruiting, the candidate's nearest recruiting site — not the study's full registered site list. A candidate whose sites were bounded also carries a top-level locationSummary object — { totalLocations, matchedLocations, locationsTruncated, nearestRecruitingSiteAdded?, retrieveFullStudyWith } — absent when nothing was dropped; nearestRecruitingSiteAdded is present only when that extra site was added. Fetch a study's complete record and site list with clinicaltrials_get_study_record."),
|
|
195
274
|
totalCount: z.number().optional().describe('Total matching studies from the API.'),
|
|
196
275
|
}),
|
|
197
276
|
// Agent-facing context — search echo, funnel diagnostics, and no-match guidance.
|
|
@@ -385,16 +464,31 @@ export const findEligible = tool('clinicaltrials_find_eligible', {
|
|
|
385
464
|
return (conditionMatchScore(bConds, input.conditions) -
|
|
386
465
|
conditionMatchScore(aConds, input.conditions));
|
|
387
466
|
});
|
|
388
|
-
// Sort each study's locations by match to the user's input
|
|
389
|
-
//
|
|
390
|
-
//
|
|
391
|
-
// sites
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
467
|
+
// Sort each study's locations by match to the user's input, then bound the
|
|
468
|
+
// list to the sites that answer the question. A location-constrained query
|
|
469
|
+
// qualifies a study, but the study carries every site it ever registered —
|
|
470
|
+
// one candidate can publish 963 sites against 6 near the patient, which
|
|
471
|
+
// buries the answer and dominates the payload. The bound is applied here,
|
|
472
|
+
// once, before either output channel sees the record, so structuredContent
|
|
473
|
+
// and format() render the same sites (#46, #91). Stable sort preserves
|
|
474
|
+
// upstream order for sites with equal match scores.
|
|
475
|
+
const studies = result.studies.map((study) => {
|
|
476
|
+
const raw = study;
|
|
477
|
+
const locationsModule = raw.protocolSection?.contactsLocationsModule;
|
|
478
|
+
const upstream = locationsModule?.locations;
|
|
479
|
+
if (!upstream?.length)
|
|
480
|
+
return study;
|
|
481
|
+
const sorted = [...upstream].sort((a, b) => locationMatchScore(b, input.location) - locationMatchScore(a, input.location));
|
|
482
|
+
const { locations, summary } = boundLocations(sorted, input.location, input.locationLimit);
|
|
483
|
+
return {
|
|
484
|
+
...study,
|
|
485
|
+
protocolSection: {
|
|
486
|
+
...raw.protocolSection,
|
|
487
|
+
contactsLocationsModule: { ...locationsModule, locations },
|
|
488
|
+
},
|
|
489
|
+
...(summary ? { locationSummary: summary } : {}),
|
|
490
|
+
};
|
|
491
|
+
});
|
|
398
492
|
const conditionMatched = conditionStage.totalCount ?? 0;
|
|
399
493
|
const locationMatched = locationStage.totalCount ?? 0;
|
|
400
494
|
const demographicsMatched = result.totalCount ?? 0;
|
|
@@ -449,7 +543,7 @@ export const findEligible = tool('clinicaltrials_find_eligible', {
|
|
|
449
543
|
ctx.enrich.notice(noticeParts.join(' '));
|
|
450
544
|
}
|
|
451
545
|
return {
|
|
452
|
-
studies
|
|
546
|
+
studies,
|
|
453
547
|
totalCount: result.totalCount,
|
|
454
548
|
};
|
|
455
549
|
},
|
|
@@ -517,14 +611,28 @@ export const findEligible = tool('clinicaltrials_find_eligible', {
|
|
|
517
611
|
eligParts.push(`Healthy Volunteers: ${elig.healthyVolunteers ? 'Yes' : 'No'}`);
|
|
518
612
|
if (eligParts.length)
|
|
519
613
|
lines.push(` Eligibility: ${eligParts.join(' | ')}`);
|
|
520
|
-
//
|
|
521
|
-
//
|
|
522
|
-
//
|
|
523
|
-
//
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
614
|
+
// Disclose the bound the handler applied, so a content[]-only reader knows
|
|
615
|
+
// the site list is the near-the-patient subset rather than the full one,
|
|
616
|
+
// and knows how to reach the rest. Every locationSummary value renders
|
|
617
|
+
// here — absent from the record means nothing was dropped (#80).
|
|
618
|
+
const locationSummary = study.locationSummary;
|
|
619
|
+
if (locationSummary) {
|
|
620
|
+
const truncated = locationSummary.locationsTruncated ? ', list truncated' : '';
|
|
621
|
+
const admitted = locationSummary.nearestRecruitingSiteAdded
|
|
622
|
+
? '; none of them is recruiting, so the nearest recruiting site is included'
|
|
623
|
+
: '';
|
|
624
|
+
lines.push(` Sites: showing ${locs.length} of ${locationSummary.totalLocations} registered (${locationSummary.matchedLocations} match the requested location${truncated}${admitted}). Full site list: ${locationSummary.retrieveFullStudyWith} with ${nctId}.`);
|
|
625
|
+
}
|
|
626
|
+
// Locations are sorted by match-score and bounded in the handler, so the
|
|
627
|
+
// most relevant sites (typically the user's city/state) lead. Render
|
|
628
|
+
// every site the record carries — a first-3 preview with a "(+N more)"
|
|
629
|
+
// tail left content-only clients unable to see the rest (#91), and the
|
|
630
|
+
// bound itself belongs at the handler boundary where both channels see
|
|
631
|
+
// it, never in one channel's formatter (#46). Each site's own status
|
|
632
|
+
// rides along: the tool requests LocationStatus and returns it in
|
|
633
|
+
// structuredContent, and a site-level status can differ from the study's
|
|
634
|
+
// overall status, so omitting it made a NOT_YET_RECRUITING site read as
|
|
635
|
+
// currently open (#91).
|
|
528
636
|
if (locs.length > 0) {
|
|
529
637
|
const locStr = locs
|
|
530
638
|
.map((l) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-eligible.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-eligible.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"find-eligible.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-eligible.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export declare const getFieldValues: import("@cyanheads/mcp-ts-core").ToolDefini
|
|
|
25
25
|
readonly reason: "blank_value";
|
|
26
26
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
27
27
|
readonly when: "A parameter was supplied with a blank, whitespace-only, or empty-list value.";
|
|
28
|
-
readonly recovery: "
|
|
28
|
+
readonly recovery: "Supply a value containing non-whitespace, or for a list parameter at least one non-blank entry. Only when the parameter is optional and you meant to leave it unset, omit it entirely instead — omission and a blank value mean different things here.";
|
|
29
29
|
}, {
|
|
30
30
|
readonly reason: "field_invalid";
|
|
31
31
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
@@ -22,7 +22,7 @@ export declare const getStudyCount: import("@cyanheads/mcp-ts-core").ToolDefinit
|
|
|
22
22
|
readonly reason: "blank_value";
|
|
23
23
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
24
24
|
readonly when: "A parameter was supplied with a blank, whitespace-only, or empty-list value.";
|
|
25
|
-
readonly recovery: "
|
|
25
|
+
readonly recovery: "Supply a value containing non-whitespace, or for a list parameter at least one non-blank entry. Only when the parameter is optional and you meant to leave it unset, omit it entirely instead — omission and a blank value mean different things here.";
|
|
26
26
|
}, {
|
|
27
27
|
readonly reason: "field_invalid";
|
|
28
28
|
readonly code: JsonRpcErrorCode.ValidationError;
|