clinicaltrialsgov-mcp-server 2.4.2 → 2.4.4
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 +1 -7
- package/dist/mcp-server/prompts/definitions/analyze-trial-landscape.prompt.d.ts.map +1 -1
- package/dist/mcp-server/prompts/definitions/analyze-trial-landscape.prompt.js +3 -1
- package/dist/mcp-server/prompts/definitions/analyze-trial-landscape.prompt.js.map +1 -1
- package/dist/mcp-server/prompts/definitions/index.d.ts +2 -4
- package/dist/mcp-server/prompts/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/prompts/definitions/index.js.map +1 -1
- package/dist/mcp-server/resources/definitions/index.d.ts +2 -3
- package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/index.js.map +1 -1
- package/dist/mcp-server/resources/definitions/study.resource.d.ts +13 -1
- package/dist/mcp-server/resources/definitions/study.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/study.resource.js +17 -0
- package/dist/mcp-server/resources/definitions/study.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/find-eligible.tool.d.ts +8 -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 +11 -0
- package/dist/mcp-server/tools/definitions/find-eligible.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-field-definitions.tool.d.ts +18 -2
- package/dist/mcp-server/tools/definitions/get-field-definitions.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-field-definitions.tool.js +68 -11
- package/dist/mcp-server/tools/definitions/get-field-definitions.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-field-values.tool.d.ts +13 -1
- package/dist/mcp-server/tools/definitions/get-field-values.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-field-values.tool.js +20 -3
- package/dist/mcp-server/tools/definitions/get-field-values.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-study-count.tool.d.ts +13 -1
- package/dist/mcp-server/tools/definitions/get-study-count.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-study-count.tool.js +18 -1
- package/dist/mcp-server/tools/definitions/get-study-count.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-study-results.tool.d.ts +18 -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 +27 -4
- 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 +13 -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 +20 -1
- package/dist/mcp-server/tools/definitions/get-study.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +2 -128
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-studies.tool.d.ts +18 -1
- package/dist/mcp-server/tools/definitions/search-studies.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-studies.tool.js +29 -4
- package/dist/mcp-server/tools/definitions/search-studies.tool.js.map +1 -1
- package/dist/mcp-server/tools/utils/recovery-hints.d.ts +16 -0
- package/dist/mcp-server/tools/utils/recovery-hints.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/recovery-hints.js +16 -0
- package/dist/mcp-server/tools/utils/recovery-hints.js.map +1 -0
- package/dist/services/clinical-trials/clinical-trials-service.d.ts +16 -1
- package/dist/services/clinical-trials/clinical-trials-service.d.ts.map +1 -1
- package/dist/services/clinical-trials/clinical-trials-service.js +83 -7
- package/dist/services/clinical-trials/clinical-trials-service.js.map +1 -1
- package/dist/services/clinical-trials/field-search.d.ts +36 -0
- package/dist/services/clinical-trials/field-search.d.ts.map +1 -0
- package/dist/services/clinical-trials/field-search.js +144 -0
- package/dist/services/clinical-trials/field-search.js.map +1 -0
- package/package.json +5 -8
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/clinicaltrialsgov-mcp-server)
|
|
12
12
|
[](https://github.com/users/cyanheads/packages/container/package/clinicaltrialsgov-mcp-server)
|
|
13
|
-
[](./CHANGELOG.md)
|
|
14
14
|
[](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
15
15
|
|
|
16
16
|
|
|
@@ -196,12 +196,6 @@ All configuration is optional — the server works with defaults and no API keys
|
|
|
196
196
|
bun run start:http # or start:stdio
|
|
197
197
|
```
|
|
198
198
|
|
|
199
|
-
- **Run in dev mode (with watch):**
|
|
200
|
-
|
|
201
|
-
```sh
|
|
202
|
-
bun run dev:http # or dev:stdio
|
|
203
|
-
```
|
|
204
|
-
|
|
205
199
|
- **Run checks and tests:**
|
|
206
200
|
```sh
|
|
207
201
|
bun run devcheck # Lints, formats, type-checks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-trial-landscape.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/analyze-trial-landscape.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,qBAAqB;;;
|
|
1
|
+
{"version":3,"file":"analyze-trial-landscape.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/analyze-trial-landscape.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,qBAAqB;;;kBA8ChC,CAAC"}
|
|
@@ -27,11 +27,13 @@ export const analyzeTrialLandscape = prompt('analyze_trial_landscape', {
|
|
|
27
27
|
type: 'text',
|
|
28
28
|
text: `Analyze the clinical trial landscape for: **${args.topic}**
|
|
29
29
|
|
|
30
|
-
Use the ClinicalTrials.gov MCP tools to build a data-driven analysis.
|
|
30
|
+
Use the ClinicalTrials.gov MCP tools to build a data-driven analysis. Most useful for landscape work:
|
|
31
31
|
|
|
32
32
|
- **clinicaltrials_get_study_count** — fast counts for a query with optional filters (status, phase, etc.). Use this to build breakdowns and comparisons.
|
|
33
33
|
- **clinicaltrials_search_studies** — full study search with field selection, sorting, and pagination. Use to sample key studies, identify sponsors, or examine recent activity.
|
|
34
34
|
- **clinicaltrials_get_field_values** — discover valid filter values and their frequency. Useful when you need to know what values exist for a field.
|
|
35
|
+
- **clinicaltrials_get_field_definitions** — discover available field names by keyword or path. Use when you need a field name for filtering or sorting that you don't already know.
|
|
36
|
+
- **clinicaltrials_get_study_results** — fetch outcomes, adverse events, participant flow, and baseline for completed studies. Use when the analysis benefits from outcome trends across completed trials.
|
|
35
37
|
|
|
36
38
|
${focus}
|
|
37
39
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-trial-landscape.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/analyze-trial-landscape.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,yBAAyB,EAAE;IACrE,WAAW,EACT,oKAAoK;IAEtK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC9E,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4GAA4G,CAC7G;KACJ,CAAC;IAEF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GACT,IAAI,CAAC,UAAU;YACb,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;YACxB,CAAC,CAAC,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACnD,CAAC,CAAC,kKAAkK,CAAC;QAEvK,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,+CAA+C,IAAI,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"analyze-trial-landscape.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/analyze-trial-landscape.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,yBAAyB,EAAE;IACrE,WAAW,EACT,oKAAoK;IAEtK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC9E,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4GAA4G,CAC7G;KACJ,CAAC;IAEF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GACT,IAAI,CAAC,UAAU;YACb,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;YACxB,CAAC,CAAC,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACnD,CAAC,CAAC,kKAAkK,CAAC;QAEvK,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,+CAA+C,IAAI,CAAC,KAAK;;;;;;;;;;EAUvE,KAAK;;qJAE8I;iBAC5I;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
* @fileoverview Barrel export for all prompt definitions.
|
|
3
3
|
* @module mcp-server/prompts/definitions
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
focusAreas: import("zod").ZodOptional<import("zod").ZodString>;
|
|
8
|
-
}, import("zod/v4/core").$strip>>[];
|
|
5
|
+
import type { AnyPromptDefinition } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
export declare const allPromptDefinitions: AnyPromptDefinition[];
|
|
9
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,MAAM,CAAC,MAAM,oBAAoB,GAA0B,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* @fileoverview Barrel export for all resource definitions.
|
|
3
3
|
* @module mcp-server/resources/definitions
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}, import("zod/v4/core").$strip>, undefined>[];
|
|
5
|
+
import type { AnyResourceDefinition } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
export declare const allResourceDefinitions: AnyResourceDefinition[];
|
|
8
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGpE,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,EAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAA4B,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -3,7 +3,19 @@
|
|
|
3
3
|
* @module mcp-server/resources/definitions/study.resource
|
|
4
4
|
*/
|
|
5
5
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
6
7
|
export declare const studyResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
|
|
7
8
|
nctId: z.ZodString;
|
|
8
|
-
}, z.core.$strip>, undefined
|
|
9
|
+
}, z.core.$strip>, undefined, readonly [{
|
|
10
|
+
readonly reason: "study_not_found";
|
|
11
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
12
|
+
readonly when: "The provided NCT ID does not match any study at ClinicalTrials.gov.";
|
|
13
|
+
readonly recovery: "Verify the NCT ID at clinicaltrials.gov or call clinicaltrials_search_studies to discover a valid identifier.";
|
|
14
|
+
}, {
|
|
15
|
+
readonly reason: "rate_limited";
|
|
16
|
+
readonly code: JsonRpcErrorCode.RateLimited;
|
|
17
|
+
readonly when: "ClinicalTrials.gov returned 429 after retry budget exhausted.";
|
|
18
|
+
readonly recovery: "ClinicalTrials.gov rate-limited the request after several retries; wait about a minute before trying again.";
|
|
19
|
+
readonly retryable: true;
|
|
20
|
+
}]>;
|
|
9
21
|
//# sourceMappingURL=study.resource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"study.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"study.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;GA6BxB,CAAC"}
|
|
@@ -3,12 +3,29 @@
|
|
|
3
3
|
* @module mcp-server/resources/definitions/study.resource
|
|
4
4
|
*/
|
|
5
5
|
import { resource, z } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
6
7
|
import { getClinicalTrialsService } from '../../../services/clinical-trials/clinical-trials-service.js';
|
|
7
8
|
import { nctIdSchema } from '../../tools/utils/_schemas.js';
|
|
9
|
+
import { RECOVERY_HINTS } from '../../tools/utils/recovery-hints.js';
|
|
8
10
|
export const studyResource = resource('clinicaltrials://{nctId}', {
|
|
9
11
|
name: 'Clinical Trial Study',
|
|
10
12
|
description: 'Fetch a single clinical study by NCT ID. Returns full study data as JSON.',
|
|
11
13
|
mimeType: 'application/json',
|
|
14
|
+
errors: [
|
|
15
|
+
{
|
|
16
|
+
reason: 'study_not_found',
|
|
17
|
+
code: JsonRpcErrorCode.NotFound,
|
|
18
|
+
when: 'The provided NCT ID does not match any study at ClinicalTrials.gov.',
|
|
19
|
+
recovery: RECOVERY_HINTS.study_not_found,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
reason: 'rate_limited',
|
|
23
|
+
code: JsonRpcErrorCode.RateLimited,
|
|
24
|
+
when: 'ClinicalTrials.gov returned 429 after retry budget exhausted.',
|
|
25
|
+
recovery: RECOVERY_HINTS.rate_limited,
|
|
26
|
+
retryable: true,
|
|
27
|
+
},
|
|
28
|
+
],
|
|
12
29
|
params: z.object({
|
|
13
30
|
nctId: nctIdSchema.describe('NCT identifier (e.g., NCT03722472).'),
|
|
14
31
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"study.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"study.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/study.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;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;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,0BAA0B,EAAE;IAChE,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,2EAA2E;IACxF,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,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* @module mcp-server/tools/definitions/find-eligible.tool
|
|
4
4
|
*/
|
|
5
5
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
6
7
|
export declare const findEligible: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
7
8
|
age: z.ZodNumber;
|
|
8
9
|
sex: z.ZodEnum<{
|
|
@@ -29,5 +30,11 @@ export declare const findEligible: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
29
30
|
sex: z.ZodString;
|
|
30
31
|
}, z.core.$strip>;
|
|
31
32
|
noMatchHints: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
32
|
-
}, z.core.$strip
|
|
33
|
+
}, z.core.$strip>, readonly [{
|
|
34
|
+
readonly reason: "rate_limited";
|
|
35
|
+
readonly code: JsonRpcErrorCode.RateLimited;
|
|
36
|
+
readonly when: "ClinicalTrials.gov returned 429 after retry budget exhausted.";
|
|
37
|
+
readonly recovery: "ClinicalTrials.gov rate-limited the request after several retries; wait about a minute before trying again.";
|
|
38
|
+
readonly retryable: true;
|
|
39
|
+
}]>;
|
|
33
40
|
//# sourceMappingURL=find-eligible.tool.d.ts.map
|
|
@@ -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;
|
|
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;AA4CjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgQvB,CAAC"}
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
* @module mcp-server/tools/definitions/find-eligible.tool
|
|
4
4
|
*/
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
6
7
|
import { getClinicalTrialsService } from '../../../services/clinical-trials/clinical-trials-service.js';
|
|
7
8
|
import { formatRemainingStudyFields } from '../utils/format-helpers.js';
|
|
9
|
+
import { RECOVERY_HINTS } from '../utils/recovery-hints.js';
|
|
8
10
|
/** Dot-notation prefixes already rendered by the eligible formatter. */
|
|
9
11
|
const ELIGIBLE_RENDERED = new Set([
|
|
10
12
|
'protocolSection.identificationModule',
|
|
@@ -48,6 +50,15 @@ export const findEligible = tool('clinicaltrials_find_eligible', {
|
|
|
48
50
|
idempotentHint: true,
|
|
49
51
|
openWorldHint: true,
|
|
50
52
|
},
|
|
53
|
+
errors: [
|
|
54
|
+
{
|
|
55
|
+
reason: 'rate_limited',
|
|
56
|
+
code: JsonRpcErrorCode.RateLimited,
|
|
57
|
+
when: 'ClinicalTrials.gov returned 429 after retry budget exhausted.',
|
|
58
|
+
recovery: RECOVERY_HINTS.rate_limited,
|
|
59
|
+
retryable: true,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
51
62
|
input: z.object({
|
|
52
63
|
age: z.number().int().min(0).max(120).describe('Patient age in years.'),
|
|
53
64
|
sex: z
|
|
@@ -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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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview
|
|
2
|
+
* @fileoverview Discover valid field names from the ClinicalTrials.gov data model.
|
|
3
|
+
* Supports keyword search, path-based drill-down, and top-level overview.
|
|
3
4
|
* @module mcp-server/tools/definitions/get-field-definitions.tool
|
|
4
5
|
*/
|
|
5
6
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
7
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
6
8
|
export declare const getFieldDefinitions: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
9
|
+
query: z.ZodOptional<z.ZodString>;
|
|
7
10
|
path: z.ZodOptional<z.ZodString>;
|
|
11
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
8
12
|
includeIndexedOnly: z.ZodOptional<z.ZodBoolean>;
|
|
9
13
|
}, z.core.$strip>, z.ZodObject<{
|
|
10
14
|
fields: z.ZodArray<z.ZodObject<{
|
|
@@ -19,5 +23,17 @@ export declare const getFieldDefinitions: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
19
23
|
}, z.core.$strip>>;
|
|
20
24
|
totalFields: z.ZodNumber;
|
|
21
25
|
resolvedPath: z.ZodOptional<z.ZodString>;
|
|
22
|
-
|
|
26
|
+
searchQuery: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, z.core.$strip>, readonly [{
|
|
28
|
+
readonly reason: "path_not_found";
|
|
29
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
30
|
+
readonly when: "The dot-notation path does not match any node in the field tree.";
|
|
31
|
+
readonly recovery: "Call clinicaltrials_get_field_definitions with no path to see top-level sections.";
|
|
32
|
+
}, {
|
|
33
|
+
readonly reason: "rate_limited";
|
|
34
|
+
readonly code: JsonRpcErrorCode.RateLimited;
|
|
35
|
+
readonly when: "ClinicalTrials.gov returned 429 after retry budget exhausted.";
|
|
36
|
+
readonly recovery: "ClinicalTrials.gov rate-limited the request after several retries; wait about a minute before trying again.";
|
|
37
|
+
readonly retryable: true;
|
|
38
|
+
}]>;
|
|
23
39
|
//# sourceMappingURL=get-field-definitions.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-field-definitions.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-definitions.tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"get-field-definitions.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-definitions.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;AAuClF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgL9B,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview
|
|
2
|
+
* @fileoverview Discover valid field names from the ClinicalTrials.gov data model.
|
|
3
|
+
* Supports keyword search, path-based drill-down, and top-level overview.
|
|
3
4
|
* @module mcp-server/tools/definitions/get-field-definitions.tool
|
|
4
5
|
*/
|
|
5
6
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
7
|
+
import { JsonRpcErrorCode, validationError } from '@cyanheads/mcp-ts-core/errors';
|
|
8
|
+
import { RECOVERY_HINTS } from '../../../mcp-server/tools/utils/recovery-hints.js';
|
|
6
9
|
import { getClinicalTrialsService } from '../../../services/clinical-trials/clinical-trials-service.js';
|
|
7
10
|
/** Build a result object, omitting undefined optional fields (exactOptionalPropertyTypes). */
|
|
8
11
|
function toFieldResult(node, path) {
|
|
@@ -19,22 +22,61 @@ function toFieldResult(node, path) {
|
|
|
19
22
|
r.description = node.description;
|
|
20
23
|
return r;
|
|
21
24
|
}
|
|
25
|
+
/** Convert a flat search-index entry into the tool's output shape. */
|
|
26
|
+
function indexEntryToResult(entry) {
|
|
27
|
+
const r = { name: entry.name, path: entry.path, piece: entry.piece };
|
|
28
|
+
if (entry.sourceType != null)
|
|
29
|
+
r.sourceType = entry.sourceType;
|
|
30
|
+
if (entry.type != null)
|
|
31
|
+
r.type = entry.type;
|
|
32
|
+
if (entry.isEnum != null)
|
|
33
|
+
r.isEnum = entry.isEnum;
|
|
34
|
+
if (entry.description != null)
|
|
35
|
+
r.description = entry.description;
|
|
36
|
+
return r;
|
|
37
|
+
}
|
|
22
38
|
export const getFieldDefinitions = tool('clinicaltrials_get_field_definitions', {
|
|
23
|
-
description:
|
|
39
|
+
description: 'Discover valid field names from the ClinicalTrials.gov data model. Call this FIRST when you need to know which field names to use in `fields`, `advancedFilter`, or `sort` parameters of other tools, or as input to clinicaltrials_get_field_values. Three usage modes: pass `query` for keyword search by concept (e.g., "enrollment", "sponsor", "adverse events") returning a ranked list of matches; pass `path` for drill-down into a section by dot-notation (e.g., "protocolSection.designModule") returning its individual fields; omit both for a top-level overview of all sections. Returns canonical PascalCase identifiers like OverallStatus, EnrollmentCount, LeadSponsorName — the exact names the API accepts.',
|
|
24
40
|
annotations: {
|
|
25
41
|
readOnlyHint: true,
|
|
26
42
|
idempotentHint: true,
|
|
27
43
|
openWorldHint: true,
|
|
28
44
|
},
|
|
45
|
+
errors: [
|
|
46
|
+
{
|
|
47
|
+
reason: 'path_not_found',
|
|
48
|
+
code: JsonRpcErrorCode.NotFound,
|
|
49
|
+
when: 'The dot-notation path does not match any node in the field tree.',
|
|
50
|
+
recovery: RECOVERY_HINTS.path_not_found,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
reason: 'rate_limited',
|
|
54
|
+
code: JsonRpcErrorCode.RateLimited,
|
|
55
|
+
when: 'ClinicalTrials.gov returned 429 after retry budget exhausted.',
|
|
56
|
+
recovery: RECOVERY_HINTS.rate_limited,
|
|
57
|
+
retryable: true,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
29
60
|
input: z.object({
|
|
61
|
+
query: z
|
|
62
|
+
.string()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe(`Keyword to search field names by — e.g., "enrollment", "sponsor", "adverse events". Returns matching field names ranked by relevance with their full paths and data types. Cannot be combined with \`path\`.`),
|
|
30
65
|
path: z
|
|
31
66
|
.string()
|
|
32
67
|
.optional()
|
|
33
|
-
.describe(`Dot-notation path to
|
|
68
|
+
.describe(`Dot-notation path to drill into a section. E.g., "protocolSection.designModule", "protocolSection.eligibilityModule", "resultsSection". Returns the section's individual fields. Cannot be combined with \`query\`. Omit both \`path\` and \`query\` for a top-level overview.`),
|
|
69
|
+
limit: z
|
|
70
|
+
.number()
|
|
71
|
+
.int()
|
|
72
|
+
.min(1)
|
|
73
|
+
.max(100)
|
|
74
|
+
.default(20)
|
|
75
|
+
.describe('Maximum results to return when using `query`. Default: 20.'),
|
|
34
76
|
includeIndexedOnly: z
|
|
35
77
|
.boolean()
|
|
36
78
|
.optional()
|
|
37
|
-
.describe('Only return indexed (searchable) fields. Default: false. Has no visible effect at the top level — use with
|
|
79
|
+
.describe('Only return indexed (searchable) fields. Default: false. Has no visible effect at the top level — use with `path` to filter.'),
|
|
38
80
|
}),
|
|
39
81
|
output: z.object({
|
|
40
82
|
fields: z
|
|
@@ -44,11 +86,14 @@ export const getFieldDefinitions = tool('clinicaltrials_get_field_definitions',
|
|
|
44
86
|
piece: z
|
|
45
87
|
.string()
|
|
46
88
|
.optional()
|
|
47
|
-
.describe('PascalCase
|
|
89
|
+
.describe('PascalCase identifier for use in `fields`/`AREA[]`/`sort` params.'),
|
|
48
90
|
sourceType: z.string().optional().describe('Data type in the model.'),
|
|
49
91
|
type: z.string().optional().describe('Semantic type.'),
|
|
50
92
|
isEnum: z.boolean().optional().describe('Whether the field is an enum type.'),
|
|
51
|
-
description: z
|
|
93
|
+
description: z
|
|
94
|
+
.string()
|
|
95
|
+
.optional()
|
|
96
|
+
.describe('Human-readable description from the upstream data model. Often absent.'),
|
|
52
97
|
path: z.string().optional().describe('Full dot-notation path.'),
|
|
53
98
|
children: z
|
|
54
99
|
.array(z.record(z.string(), z.unknown()))
|
|
@@ -56,24 +101,33 @@ export const getFieldDefinitions = tool('clinicaltrials_get_field_definitions',
|
|
|
56
101
|
.describe('Child fields (top-level overview only).'),
|
|
57
102
|
})
|
|
58
103
|
.describe('A single field definition node.'))
|
|
59
|
-
.describe('Field definitions.'),
|
|
104
|
+
.describe('Field definitions, ordered by relevance when `query` is used.'),
|
|
60
105
|
totalFields: z.number().describe('Total fields returned.'),
|
|
61
|
-
resolvedPath: z.string().optional().describe('Resolved path when path
|
|
106
|
+
resolvedPath: z.string().optional().describe('Resolved path when `path` was used.'),
|
|
107
|
+
searchQuery: z.string().optional().describe('Echo of the keyword when `query` was used.'),
|
|
62
108
|
}),
|
|
63
109
|
async handler(input, ctx) {
|
|
110
|
+
if (input.query && input.path) {
|
|
111
|
+
throw validationError('Provide either `query` or `path`, not both. Use `query` for keyword search; use `path` to drill into a known section.');
|
|
112
|
+
}
|
|
64
113
|
const service = getClinicalTrialsService();
|
|
114
|
+
if (input.query) {
|
|
115
|
+
const matches = await service.searchFieldDefinitions(input.query, input.limit, ctx);
|
|
116
|
+
const fields = matches.map(indexEntryToResult);
|
|
117
|
+
ctx.log.info('Field search completed', { query: input.query, matchCount: fields.length });
|
|
118
|
+
return { fields, totalFields: fields.length, searchQuery: input.query };
|
|
119
|
+
}
|
|
65
120
|
const tree = await service.getMetadata(input.includeIndexedOnly ?? false, ctx);
|
|
66
121
|
if (input.path) {
|
|
67
122
|
const node = navigateToPath(tree, input.path);
|
|
68
123
|
if (!node) {
|
|
69
|
-
throw
|
|
70
|
-
`${tree.map((n) => n.name).join(', ')}.`);
|
|
124
|
+
throw ctx.fail('path_not_found', `Path '${input.path}' not found. Top-level sections: ${tree.map((n) => n.name).join(', ')}.`, { ...ctx.recoveryFor('path_not_found') });
|
|
71
125
|
}
|
|
72
126
|
const fields = flattenChildren(node, input.path);
|
|
73
127
|
ctx.log.info('Field path resolved', { path: input.path, fieldCount: fields.length });
|
|
74
128
|
return { fields, totalFields: fields.length, resolvedPath: input.path };
|
|
75
129
|
}
|
|
76
|
-
/** No path — return top-level overview (2 levels deep). */
|
|
130
|
+
/** No path or query — return top-level overview (2 levels deep). */
|
|
77
131
|
const overview = tree.map((section) => {
|
|
78
132
|
const r = toFieldResult(section, section.name);
|
|
79
133
|
if (section.children) {
|
|
@@ -93,6 +147,9 @@ export const getFieldDefinitions = tool('clinicaltrials_get_field_definitions',
|
|
|
93
147
|
},
|
|
94
148
|
format: (result) => {
|
|
95
149
|
const lines = [];
|
|
150
|
+
if (result.searchQuery) {
|
|
151
|
+
lines.push(`**${result.totalFields} field(s) matching '${result.searchQuery}':**\n`);
|
|
152
|
+
}
|
|
96
153
|
if (result.resolvedPath) {
|
|
97
154
|
lines.push(`**${result.resolvedPath}** (${result.totalFields} fields):\n`);
|
|
98
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-field-definitions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-definitions.tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"get-field-definitions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-definitions.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* @module mcp-server/tools/definitions/get-field-values.tool
|
|
4
4
|
*/
|
|
5
5
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
6
7
|
export declare const getFieldValues: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
7
8
|
fields: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
8
9
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -19,5 +20,16 @@ export declare const getFieldValues: import("@cyanheads/mcp-ts-core").ToolDefini
|
|
|
19
20
|
trueCount: z.ZodOptional<z.ZodNumber>;
|
|
20
21
|
falseCount: z.ZodOptional<z.ZodNumber>;
|
|
21
22
|
}, z.core.$strip>>;
|
|
22
|
-
}, z.core.$strip
|
|
23
|
+
}, z.core.$strip>, readonly [{
|
|
24
|
+
readonly reason: "field_invalid";
|
|
25
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
26
|
+
readonly when: "A requested field name is not a valid PascalCase piece name.";
|
|
27
|
+
readonly recovery: "Call clinicaltrials_get_field_definitions to browse the field tree; use PascalCase piece names like OverallStatus, Phase, or StudyType.";
|
|
28
|
+
}, {
|
|
29
|
+
readonly reason: "rate_limited";
|
|
30
|
+
readonly code: JsonRpcErrorCode.RateLimited;
|
|
31
|
+
readonly when: "ClinicalTrials.gov returned 429 after retry budget exhausted.";
|
|
32
|
+
readonly recovery: "ClinicalTrials.gov rate-limited the request after several retries; wait about a minute before trying again.";
|
|
33
|
+
readonly retryable: true;
|
|
34
|
+
}]>;
|
|
23
35
|
//# sourceMappingURL=get-field-values.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-field-values.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-values.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-field-values.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-values.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsHzB,CAAC"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* @module mcp-server/tools/definitions/get-field-values.tool
|
|
4
4
|
*/
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
6
7
|
import { getClinicalTrialsService } from '../../../services/clinical-trials/clinical-trials-service.js';
|
|
8
|
+
import { RECOVERY_HINTS } from '../utils/recovery-hints.js';
|
|
7
9
|
export const getFieldValues = tool('clinicaltrials_get_field_values', {
|
|
8
10
|
description: `Discover valid values for ClinicalTrials.gov fields with study counts per value. Use to explore available filter options before building a search — e.g., valid OverallStatus, Phase, InterventionType, StudyType, or LeadSponsorClass values.`,
|
|
9
11
|
annotations: {
|
|
@@ -11,13 +13,28 @@ export const getFieldValues = tool('clinicaltrials_get_field_values', {
|
|
|
11
13
|
idempotentHint: true,
|
|
12
14
|
openWorldHint: true,
|
|
13
15
|
},
|
|
16
|
+
errors: [
|
|
17
|
+
{
|
|
18
|
+
reason: 'field_invalid',
|
|
19
|
+
code: JsonRpcErrorCode.ValidationError,
|
|
20
|
+
when: 'A requested field name is not a valid PascalCase piece name.',
|
|
21
|
+
recovery: RECOVERY_HINTS.field_invalid,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
reason: 'rate_limited',
|
|
25
|
+
code: JsonRpcErrorCode.RateLimited,
|
|
26
|
+
when: 'ClinicalTrials.gov returned 429 after retry budget exhausted.',
|
|
27
|
+
recovery: RECOVERY_HINTS.rate_limited,
|
|
28
|
+
retryable: true,
|
|
29
|
+
},
|
|
30
|
+
],
|
|
14
31
|
input: z.object({
|
|
15
32
|
fields: z
|
|
16
33
|
.union([
|
|
17
|
-
z.string().describe('A single PascalCase
|
|
18
|
-
z.array(z.string()).describe('Multiple PascalCase
|
|
34
|
+
z.string().describe('A single PascalCase field name.'),
|
|
35
|
+
z.array(z.string()).describe('Multiple PascalCase field names.'),
|
|
19
36
|
])
|
|
20
|
-
.describe(`PascalCase
|
|
37
|
+
.describe(`PascalCase field name(s) to get value statistics for. Examples: OverallStatus, Phase, StudyType, Sex, LeadSponsorClass. Use clinicaltrials_get_field_definitions with a query to find more field names.`),
|
|
21
38
|
}),
|
|
22
39
|
output: z.object({
|
|
23
40
|
fieldStats: z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-field-values.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-values.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"get-field-values.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-field-values.tool.ts"],"names":[],"mappings":"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"}
|