@digital-science-dsl/dimensions-analytics-mcp 1.3.1 → 1.4.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/CHANGELOG.md +13 -1
- package/dist/client/config.d.ts +14 -9
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +17 -31
- package/dist/client/config.js.map +1 -1
- package/dist/client/deployment-config.d.ts.map +1 -1
- package/dist/client/deployment-config.js +6 -2
- package/dist/client/deployment-config.js.map +1 -1
- package/dist/dsl/client.d.ts.map +1 -1
- package/dist/dsl/client.js +4 -1
- package/dist/dsl/client.js.map +1 -1
- package/dist/mcp/batch-fetch.d.ts.map +1 -1
- package/dist/mcp/batch-fetch.js +2 -1
- package/dist/mcp/batch-fetch.js.map +1 -1
- package/dist/mcp/identity-fields.d.ts +22 -0
- package/dist/mcp/identity-fields.d.ts.map +1 -0
- package/dist/mcp/identity-fields.js +62 -0
- package/dist/mcp/identity-fields.js.map +1 -0
- package/dist/mcp/profile-urls.d.ts +93 -0
- package/dist/mcp/profile-urls.d.ts.map +1 -0
- package/dist/mcp/profile-urls.js +141 -0
- package/dist/mcp/profile-urls.js.map +1 -0
- package/dist/mcp/resources/schema.d.ts.map +1 -1
- package/dist/mcp/resources/schema.js +13 -0
- package/dist/mcp/resources/schema.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/analytics.d.ts.map +1 -1
- package/dist/mcp/tools/analytics.js +7 -4
- package/dist/mcp/tools/analytics.js.map +1 -1
- package/dist/mcp/tools/fetch-search-pages.d.ts.map +1 -1
- package/dist/mcp/tools/fetch-search-pages.js +2 -1
- package/dist/mcp/tools/fetch-search-pages.js.map +1 -1
- package/dist/mcp/tools/lookup.d.ts.map +1 -1
- package/dist/mcp/tools/lookup.js +14 -12
- package/dist/mcp/tools/lookup.js.map +1 -1
- package/dist/mcp/tools/profile-url.d.ts +11 -0
- package/dist/mcp/tools/profile-url.d.ts.map +1 -0
- package/dist/mcp/tools/profile-url.js +56 -0
- package/dist/mcp/tools/profile-url.js.map +1 -0
- package/dist/mcp/tools/search-entity-metadata.d.ts.map +1 -1
- package/dist/mcp/tools/search-entity-metadata.js +4 -2
- package/dist/mcp/tools/search-entity-metadata.js.map +1 -1
- package/dist/mcp/tools/search-input.js +1 -1
- package/dist/mcp/tools/search-input.js.map +1 -1
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +4 -5
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/similar-documents.d.ts.map +1 -1
- package/dist/mcp/tools/similar-documents.js +4 -5
- package/dist/mcp/tools/similar-documents.js.map +1 -1
- package/package.json +3 -3
- package/src/client/config.ts +29 -41
- package/src/client/deployment-config.ts +7 -2
- package/src/dsl/client.ts +6 -3
- package/src/mcp/batch-fetch.ts +2 -1
- package/src/mcp/identity-fields.ts +65 -0
- package/src/mcp/profile-urls.ts +180 -0
- package/src/mcp/resources/schema.ts +20 -0
- package/src/mcp/server.ts +5 -1
- package/src/mcp/tools/analytics.ts +7 -4
- package/src/mcp/tools/fetch-search-pages.ts +2 -1
- package/src/mcp/tools/lookup.ts +14 -9
- package/src/mcp/tools/profile-url.ts +70 -0
- package/src/mcp/tools/search-entity-metadata.ts +4 -2
- package/src/mcp/tools/search-input.ts +1 -1
- package/src/mcp/tools/search.ts +4 -5
- package/src/mcp/tools/similar-documents.ts +4 -5
- package/test/client/config-schema.test.ts +46 -0
- package/test/client/deployment-config.test.ts +11 -0
- package/test/dsl/client.test.ts +22 -0
- package/test/identity-fields.test.ts +44 -0
- package/test/profile-urls.test.ts +151 -0
- package/test/resources/schema.test.ts +1 -0
- package/test/server.test.ts +5 -0
- package/test/tools/analytics.test.ts +31 -1
- package/test/tools/fetch-search-pages.test.ts +10 -4
- package/test/tools/lookup.test.ts +14 -5
- package/test/tools/profile-url.test.ts +44 -0
- package/test/tools/search.test.ts +51 -3
- package/test/tools/similar-documents.test.ts +20 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool for constructing canonical Dimensions profile URLs.
|
|
3
|
+
* @module mcp/tools/profile-url
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { buildProfileUrl, isProfileEntityType, PROFILE_ENTITY_TYPES } from "../profile-urls.js";
|
|
7
|
+
import { registerTrackedTool } from "../usage-tracking.js";
|
|
8
|
+
import { formatErrorResult, formatToolResult, READ_ONLY_API_ANNOTATIONS } from "../utils.js";
|
|
9
|
+
const profileEntityEnum = z.enum(PROFILE_ENTITY_TYPES);
|
|
10
|
+
/**
|
|
11
|
+
* Registers `construct_profile_url`.
|
|
12
|
+
* @param server - MCP server instance
|
|
13
|
+
*/
|
|
14
|
+
export function registerProfileUrlTool(server) {
|
|
15
|
+
registerTrackedTool(server, "construct_profile_url", {
|
|
16
|
+
description: "Build a canonical Dimensions web profile URL from an entity type and Dimensions ID. " +
|
|
17
|
+
"Use this instead of inventing paths — researcher profiles are " +
|
|
18
|
+
"/details/entities/publication/author/{id} (not /discover/researcher/{id}); " +
|
|
19
|
+
"organization profiles are /details/organization/{id}. " +
|
|
20
|
+
"search_*, get_by_*, similar_documents, and facet_query already attach profile_url when possible.",
|
|
21
|
+
inputSchema: z.object({
|
|
22
|
+
entityType: profileEntityEnum.describe("Entity type with a web profile (e.g. researchers, organizations, publications)"),
|
|
23
|
+
id: z.string().min(1).describe("Dimensions ID (e.g. ur.01222634304.39, grid.168010.e)"),
|
|
24
|
+
}),
|
|
25
|
+
outputSchema: z.object({
|
|
26
|
+
entityType: z.string().describe("Entity type"),
|
|
27
|
+
id: z.string().describe("Dimensions ID"),
|
|
28
|
+
profile_url: z.string().describe("Canonical Dimensions web profile URL"),
|
|
29
|
+
}),
|
|
30
|
+
annotations: {
|
|
31
|
+
...READ_ONLY_API_ANNOTATIONS,
|
|
32
|
+
openWorldHint: false,
|
|
33
|
+
},
|
|
34
|
+
}, async (args) => {
|
|
35
|
+
try {
|
|
36
|
+
const entityType = args.entityType;
|
|
37
|
+
const id = args.id;
|
|
38
|
+
if (!isProfileEntityType(entityType)) {
|
|
39
|
+
return formatErrorResult(new Error(`No canonical Dimensions profile URL for entity type: ${entityType}. Supported: ${PROFILE_ENTITY_TYPES.join(", ")}`));
|
|
40
|
+
}
|
|
41
|
+
const profileUrl = buildProfileUrl(entityType, id);
|
|
42
|
+
if (!profileUrl) {
|
|
43
|
+
return formatErrorResult(new Error("A non-empty Dimensions ID is required"));
|
|
44
|
+
}
|
|
45
|
+
return formatToolResult({
|
|
46
|
+
entityType,
|
|
47
|
+
id: id.trim(),
|
|
48
|
+
profile_url: profileUrl,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return formatErrorResult(error);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=profile-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-url.js","sourceRoot":"","sources":["../../../src/mcp/tools/profile-url.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7F,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,oBAA6C,CAAC,CAAC;AAEhF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,mBAAmB,CACjB,MAAM,EACN,uBAAuB,EACvB;QACE,WAAW,EACT,sFAAsF;YACtF,gEAAgE;YAChE,6EAA6E;YAC7E,wDAAwD;YACxD,kGAAkG;QACpG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CACpC,gFAAgF,CACjF;YACD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;SACxF,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACzE,CAAC;QACF,WAAW,EAAE;YACX,GAAG,yBAAyB;YAC5B,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAY,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,OAAO,iBAAiB,CACtB,IAAI,KAAK,CACP,wDAAwD,UAAU,gBAAgB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpH,CACF,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,iBAAiB,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,gBAAgB,CAAC;gBACtB,UAAU;gBACV,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE;gBACb,WAAW,EAAE,UAAU;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-entity-metadata.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search-entity-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG7E,6DAA6D;AAC7D,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,IAAI,CAAC;AAEV,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;CACzD;AAiBD,gDAAgD;AAChD,eAAO,MAAM,sBAAsB,EAAE,SAAS,oBAAoB,
|
|
1
|
+
{"version":3,"file":"search-entity-metadata.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search-entity-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG7E,6DAA6D;AAC7D,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,IAAI,CAAC;AAEV,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;CACzD;AAiBD,gDAAgD;AAChD,eAAO,MAAM,sBAAsB,EAAE,SAAS,oBAAoB,EAyQjE,CAAC"}
|
|
@@ -103,7 +103,8 @@ export const SEARCH_ENTITY_METADATA = [
|
|
|
103
103
|
{
|
|
104
104
|
source: "researchers",
|
|
105
105
|
description: "Search researcher profiles by name in the Dimensions database. The query matches researcher names, not research topics — " +
|
|
106
|
-
"for topic→researcher discovery use facet_query with entityType publications and facetField researchers."
|
|
106
|
+
"for topic→researcher discovery use facet_query with entityType publications and facetField researchers. " +
|
|
107
|
+
"Each result includes profile_url (canonical /details/entities/publication/author/{id} — never invent /discover/researcher/{id}).",
|
|
107
108
|
applyConvenienceFilters: noop,
|
|
108
109
|
extraInputSchema: {
|
|
109
110
|
sortBy: z
|
|
@@ -196,7 +197,8 @@ export const SEARCH_ENTITY_METADATA = [
|
|
|
196
197
|
},
|
|
197
198
|
{
|
|
198
199
|
source: "organizations",
|
|
199
|
-
description: "Search research organizations in the Dimensions database. Returns universities, research institutes, hospitals, and companies with research output."
|
|
200
|
+
description: "Search research organizations in the Dimensions database. Returns universities, research institutes, hospitals, and companies with research output. " +
|
|
201
|
+
"Each result includes profile_url (canonical /details/organization/{id}).",
|
|
200
202
|
applyConvenienceFilters: (builder, args) => {
|
|
201
203
|
if (typeof args.orgType === "string") {
|
|
202
204
|
builder.where("types", "=", args.orgType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-entity-metadata.js","sourceRoot":"","sources":["../../../src/mcp/tools/search-entity-metadata.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"search-entity-metadata.js","sourceRoot":"","sources":["../../../src/mcp/tools/search-entity-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export const SHARED_SEARCH_INPUT = {
|
|
|
37
37
|
fields: z
|
|
38
38
|
.array(z.string())
|
|
39
39
|
.optional()
|
|
40
|
-
.describe("Fields to return. Accepts aliases or DSL names. Use dimensions://fields/{entity} for the full list."),
|
|
40
|
+
.describe("Fields to return. Accepts aliases or DSL names. id is always included; publications also always include doi. Use dimensions://fields/{entity} for the full list."),
|
|
41
41
|
filters: z
|
|
42
42
|
.array(ExtendedWhereFilterSchema)
|
|
43
43
|
.optional()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-input.js","sourceRoot":"","sources":["../../../src/mcp/tools/search-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9E,uEAAuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;SAChC,QAAQ,EAAE;SACV,QAAQ,CACP,wEAAwE,aAAa,CAAC,SAAS,iBAAiB,CACjH;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CACP,qEAAqE,aAAa,CAAC,QAAQ,GAAG,CAAC,GAAG,CACnG;CACK,CAAC;AAEX,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,sEAAsE,CAAC;IACnF,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC;SAC3B,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CAAC,kCAAkC,aAAa,CAAC,QAAQ,gBAAgB,CAAC;IACrF,GAAG,uBAAuB;IAC1B,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,
|
|
1
|
+
{"version":3,"file":"search-input.js","sourceRoot":"","sources":["../../../src/mcp/tools/search-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9E,uEAAuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;SAChC,QAAQ,EAAE;SACV,QAAQ,CACP,wEAAwE,aAAa,CAAC,SAAS,iBAAiB,CACjH;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CACP,qEAAqE,aAAa,CAAC,QAAQ,GAAG,CAAC,GAAG,CACnG;CACK,CAAC;AAEX,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,sEAAsE,CAAC;IACnF,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC;SAC3B,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CAAC,kCAAkC,aAAa,CAAC,QAAQ,gBAAgB,CAAC;IACrF,GAAG,uBAAuB;IAC1B,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,kKAAkK,CACnK;IACH,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,yBAAyB,CAAC;SAChC,QAAQ,EAAE;SACV,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,iBAAiB,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,yIAAyI,CAC1I;CACK,CAAC;AAEX,2DAA2D;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;QAC3B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC7B,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE;QACvC,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE;KACvC,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;IACjF,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;CACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAI1B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAI1B,MAAM,oBAAoB,CAAC;AAkB5B;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAiCR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,GACvB,IAAI,CA2EN"}
|
package/dist/mcp/tools/search.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { applyFilters, parseEntityResponse, resolveSkipAndLimit, searchResultKey, searchToolName, validateSearchPaginationPolicy, } from "../../dsl/index.js";
|
|
3
|
+
import { mergeIdentityFields } from "../identity-fields.js";
|
|
3
4
|
import { withFieldAliases } from "../middleware/field-aliases.js";
|
|
5
|
+
import { attachProfileUrls } from "../profile-urls.js";
|
|
4
6
|
import { registerTrackedTool } from "../usage-tracking.js";
|
|
5
7
|
import { formatErrorResult, formatToolResult, READ_ONLY_API_ANNOTATIONS, withSearchPagination, } from "../utils.js";
|
|
6
8
|
import { SEARCH_ENTITY_METADATA } from "./search-entity-metadata.js";
|
|
@@ -24,10 +26,7 @@ export function buildStructuredSearchDsl(client, source, args) {
|
|
|
24
26
|
if (filters?.length) {
|
|
25
27
|
applyFilters(builder, filters);
|
|
26
28
|
}
|
|
27
|
-
|
|
28
|
-
if (fields?.length) {
|
|
29
|
-
builder.fields(fields);
|
|
30
|
-
}
|
|
29
|
+
builder.fields(mergeIdentityFields(source, args.fields));
|
|
31
30
|
if (typeof args.sortBy === "string") {
|
|
32
31
|
builder.sort(args.sortBy, "desc");
|
|
33
32
|
}
|
|
@@ -95,7 +94,7 @@ export function registerSearchTools(server, client, schemaStore) {
|
|
|
95
94
|
const dsl = buildStructuredSearchDsl(client, source, record);
|
|
96
95
|
const response = (await client.rawQuery(dsl));
|
|
97
96
|
const parsed = parseEntityResponse(response, source);
|
|
98
|
-
const rows = parsed.data;
|
|
97
|
+
const rows = attachProfileUrls(source, parsed.data);
|
|
99
98
|
return formatToolResult(withSearchPagination({
|
|
100
99
|
totalCount: parsed.totalCount,
|
|
101
100
|
returnedCount: rows.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,YAAY,EAEZ,mBAAmB,EACnB,mBAAmB,EAGnB,eAAe,EACf,cAAc,EACd,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAElF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC,CACnE,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAwB,EACxB,MAA4B,EAC5B,IAA6B;IAE7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,EAAE,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiD,CAAC;IACvE,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"similar-documents.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/similar-documents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"similar-documents.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/similar-documents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwB3D,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,qCAAsC,CAAC;AAElF,kDAAkD;AAClD,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAQzF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,0BAA0B,EACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAmCR;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAqI9F"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { applyFilters, ExtendedWhereFilterSchema, parseEntityResponse, resolveSkipAndLimit, SCHEMA_LIMITS, searchResultKey, validateSearchPaginationPolicy, } from "../../dsl/index.js";
|
|
3
|
+
import { mergeIdentityFields } from "../identity-fields.js";
|
|
3
4
|
import { withFieldAliases } from "../middleware/field-aliases.js";
|
|
5
|
+
import { attachProfileUrls } from "../profile-urls.js";
|
|
4
6
|
import { registerTrackedTool } from "../usage-tracking.js";
|
|
5
7
|
import { formatErrorResult, formatToolResult, READ_ONLY_API_ANNOTATIONS, withSearchPagination, } from "../utils.js";
|
|
6
8
|
import { PAGINATION_INPUT_SCHEMA, PAGINATION_OUTPUT_SCHEMA } from "./search-input.js";
|
|
@@ -32,10 +34,7 @@ export function buildSimilarDocumentsDsl(client, entityType, args) {
|
|
|
32
34
|
if (filters?.length) {
|
|
33
35
|
applyFilters(builder, filters);
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
if (fields?.length) {
|
|
37
|
-
builder.fields(fields);
|
|
38
|
-
}
|
|
37
|
+
builder.fields(mergeIdentityFields(entityType, args.fields));
|
|
39
38
|
const sortBy = typeof args.sortBy === "string" ? args.sortBy : "score";
|
|
40
39
|
builder.sort(sortBy, "desc");
|
|
41
40
|
// Default to 20 for similarity (top-N relevance), not the search_* default of 100.
|
|
@@ -149,7 +148,7 @@ export function registerSimilarDocumentsTool(server, client) {
|
|
|
149
148
|
});
|
|
150
149
|
const response = (await client.rawQuery(dsl));
|
|
151
150
|
const parsed = parseEntityResponse(response, entityType);
|
|
152
|
-
const rows = parsed.data;
|
|
151
|
+
const rows = attachProfileUrls(entityType, parsed.data);
|
|
153
152
|
const resultKey = searchResultKey(entityType);
|
|
154
153
|
return formatToolResult(withSearchPagination({
|
|
155
154
|
entityType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"similar-documents.js","sourceRoot":"","sources":["../../../src/mcp/tools/similar-documents.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,YAAY,EAEZ,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EAEb,eAAe,EACf,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAU,CAAC;AAKlF,mFAAmF;AACnF,MAAM,UAAU,GAA+C;IAC7D,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAwB,EACxB,UAAsC,EACtC,IAA6B;IAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhF,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiD,CAAC;IACvE,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"similar-documents.js","sourceRoot":"","sources":["../../../src/mcp/tools/similar-documents.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digital-science-dsl/dimensions-analytics-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "Dimensions Analytics MCP server for Dimensions DSL querying",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"@modelcontextprotocol/node": "^2.0.0",
|
|
21
21
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
22
22
|
"express": "^5.0.0",
|
|
23
|
-
"zod": "4.
|
|
23
|
+
"zod": "4.5.4"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@modelcontextprotocol/client": "^2.0.0",
|
|
27
27
|
"@types/express": "^5.0.0",
|
|
28
|
-
"fast-check": "^4.
|
|
28
|
+
"fast-check": "^4.9.0",
|
|
29
29
|
"typescript": "^5.9.3"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
package/src/client/config.ts
CHANGED
|
@@ -12,51 +12,39 @@ const InternalClientConfigSchema = z.object({
|
|
|
12
12
|
clientIp: z.string().optional(),
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
+
const SharedClientConfigSchema = z.object({
|
|
16
|
+
/** Base URL for Dimensions API (public backend only) */
|
|
17
|
+
baseUrl: z.string().url().default("https://app.dimensions.ai"),
|
|
18
|
+
/** Request timeout in milliseconds */
|
|
19
|
+
timeout: z.number().positive().default(30000),
|
|
20
|
+
/** Maximum number of retry attempts */
|
|
21
|
+
maxRetries: z.number().nonnegative().default(3),
|
|
22
|
+
/** Delay between retries in milliseconds */
|
|
23
|
+
retryDelay: z.number().positive().default(1000),
|
|
24
|
+
/** Maximum requests per minute (public backend client-side limiter) */
|
|
25
|
+
rateLimitPerMinute: z.number().positive().default(30),
|
|
26
|
+
/** Validate DSL queries before sending. Default: true */
|
|
27
|
+
validateQueries: z.boolean().default(false),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const PublicClientConfigSchema = SharedClientConfigSchema.extend({
|
|
31
|
+
backend: z.literal("public").default("public"),
|
|
32
|
+
apiKey: z.string().min(1),
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const InternalBackendConfigSchema = SharedClientConfigSchema.extend({
|
|
36
|
+
backend: z.literal("internal"),
|
|
37
|
+
internal: InternalClientConfigSchema,
|
|
38
|
+
});
|
|
39
|
+
|
|
15
40
|
/**
|
|
16
41
|
* Zod schema for DimensionsClient configuration.
|
|
17
42
|
* Validates and provides defaults for all configuration options.
|
|
18
43
|
*/
|
|
19
|
-
export const DimensionsClientConfigSchema = z
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/** DSL backend: public JWT API or internal dsl-service */
|
|
24
|
-
backend: z.enum(["public", "internal"]).default("public"),
|
|
25
|
-
/** Internal dsl-service settings (required when backend is internal) */
|
|
26
|
-
internal: InternalClientConfigSchema.optional(),
|
|
27
|
-
/** Base URL for Dimensions API (public backend only) */
|
|
28
|
-
baseUrl: z.string().url().default("https://app.dimensions.ai"),
|
|
29
|
-
/** Request timeout in milliseconds */
|
|
30
|
-
timeout: z.number().positive().default(30000),
|
|
31
|
-
/** Maximum number of retry attempts */
|
|
32
|
-
maxRetries: z.number().nonnegative().default(3),
|
|
33
|
-
/** Delay between retries in milliseconds */
|
|
34
|
-
retryDelay: z.number().positive().default(1000),
|
|
35
|
-
/** Maximum requests per minute (public backend client-side limiter) */
|
|
36
|
-
rateLimitPerMinute: z.number().positive().default(30),
|
|
37
|
-
/** Validate DSL queries before sending. Default: true */
|
|
38
|
-
validateQueries: z.boolean().default(false),
|
|
39
|
-
})
|
|
40
|
-
.superRefine((value, ctx) => {
|
|
41
|
-
if (value.backend === "public") {
|
|
42
|
-
if (!value.apiKey) {
|
|
43
|
-
ctx.addIssue({
|
|
44
|
-
code: "custom",
|
|
45
|
-
message: "apiKey is required for public backend",
|
|
46
|
-
path: ["apiKey"],
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (!value.internal) {
|
|
53
|
-
ctx.addIssue({
|
|
54
|
-
code: "custom",
|
|
55
|
-
message: "internal config is required for internal backend",
|
|
56
|
-
path: ["internal"],
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
44
|
+
export const DimensionsClientConfigSchema = z.union([
|
|
45
|
+
InternalBackendConfigSchema,
|
|
46
|
+
PublicClientConfigSchema,
|
|
47
|
+
]);
|
|
60
48
|
|
|
61
49
|
/**
|
|
62
50
|
* Configuration options for DimensionsClient.
|
|
@@ -84,18 +84,23 @@ export function loadDeploymentConfig(): AppDeploymentConfig {
|
|
|
84
84
|
throw new Error(`Hosted deployment requires: ${missing.join(", ")}`);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
const
|
|
87
|
+
const hosted = InternalDslEnvSchema.extend({
|
|
88
|
+
radarAuthUrl: z.string().url(),
|
|
89
|
+
}).parse({
|
|
88
90
|
serviceUrl,
|
|
89
91
|
username,
|
|
90
92
|
password,
|
|
91
93
|
dslSchema,
|
|
92
94
|
host,
|
|
93
95
|
variant,
|
|
96
|
+
radarAuthUrl,
|
|
94
97
|
});
|
|
95
98
|
|
|
99
|
+
const { radarAuthUrl: parsedRadarAuthUrl, ...internal } = hosted;
|
|
100
|
+
|
|
96
101
|
return {
|
|
97
102
|
deploymentMode: "hosted",
|
|
98
|
-
radarAuthUrl:
|
|
103
|
+
radarAuthUrl: parsedRadarAuthUrl.replace(/\/$/, ""),
|
|
99
104
|
internal,
|
|
100
105
|
httpPort: readIntEnv(process.env.MCP_HTTP_PORT, 8080, 1),
|
|
101
106
|
};
|
package/src/dsl/client.ts
CHANGED
|
@@ -97,7 +97,7 @@ export class DimensionsClient {
|
|
|
97
97
|
this.config = parseResult.data;
|
|
98
98
|
|
|
99
99
|
if (this.config.backend === "internal") {
|
|
100
|
-
const internal = this.config
|
|
100
|
+
const { internal } = this.config;
|
|
101
101
|
this.rateLimiter = new RateLimiter({
|
|
102
102
|
maxRequests: 1000,
|
|
103
103
|
windowMs: 60_000,
|
|
@@ -116,7 +116,7 @@ export class DimensionsClient {
|
|
|
116
116
|
|
|
117
117
|
this.authProvider = createAuthProvider({
|
|
118
118
|
type: "jwt",
|
|
119
|
-
apiKey: this.config.apiKey
|
|
119
|
+
apiKey: this.config.apiKey,
|
|
120
120
|
authUrl: `${this.config.baseUrl}/api/auth.json`,
|
|
121
121
|
timeout: this.config.timeout,
|
|
122
122
|
});
|
|
@@ -144,7 +144,10 @@ export class DimensionsClient {
|
|
|
144
144
|
if (this.internalClient) {
|
|
145
145
|
return this.internalClient.query(dsl, options);
|
|
146
146
|
}
|
|
147
|
-
|
|
147
|
+
if (!this.httpClient) {
|
|
148
|
+
throw new Error("DimensionsClient HTTP backend is not configured");
|
|
149
|
+
}
|
|
150
|
+
const response = await this.httpClient.query(dsl, endpoint, options);
|
|
148
151
|
return response as DslResponse;
|
|
149
152
|
}
|
|
150
153
|
|
package/src/mcp/batch-fetch.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
type StructuredEntityType,
|
|
15
15
|
} from "../dsl/index.js";
|
|
16
16
|
import { type ExportFormat, formatRowsForExport } from "./export-format.js";
|
|
17
|
+
import { attachProfileUrls } from "./profile-urls.js";
|
|
17
18
|
|
|
18
19
|
/** Sidecar metadata written beside export files. */
|
|
19
20
|
export interface BatchExportMeta {
|
|
@@ -210,7 +211,7 @@ export async function runFileFetch(
|
|
|
210
211
|
totalCount = parsed.totalCount;
|
|
211
212
|
}
|
|
212
213
|
|
|
213
|
-
const rows = parsed.data as Record<string, unknown>[];
|
|
214
|
+
const rows = attachProfileUrls(entityType, parsed.data as Record<string, unknown>[]);
|
|
214
215
|
const { text, columns } = formatRowsForExport(rows, options.format, {
|
|
215
216
|
columns: csvColumns,
|
|
216
217
|
preferredFields: options.preferredFields,
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity fields that structured search/lookup always returns (WEBAPPDEV-13816).
|
|
3
|
+
* Default DSL fieldsets omit `doi` on publications, and agents often request
|
|
4
|
+
* title-only field lists — both make it hard to open or cite a record.
|
|
5
|
+
*
|
|
6
|
+
* @module mcp/identity-fields
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** Fields that uniquely identify a record, by entity type. */
|
|
10
|
+
const IDENTITY_FIELDS: Readonly<Record<string, readonly string[]>> = {
|
|
11
|
+
publications: ["id", "doi"],
|
|
12
|
+
grants: ["id"],
|
|
13
|
+
researchers: ["id"],
|
|
14
|
+
patents: ["id"],
|
|
15
|
+
clinical_trials: ["id"],
|
|
16
|
+
datasets: ["id"],
|
|
17
|
+
policy_documents: ["id"],
|
|
18
|
+
organizations: ["id"],
|
|
19
|
+
reports: ["id"],
|
|
20
|
+
source_titles: ["id"],
|
|
21
|
+
funder_groups: ["id"],
|
|
22
|
+
research_org_groups: ["id"],
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/** DSL fieldset that matches the API default list payload. */
|
|
26
|
+
const DEFAULT_FIELDSET = "basics";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Identity fields for a source (defaults to `id`).
|
|
30
|
+
* @param entityType - DSL source name
|
|
31
|
+
*/
|
|
32
|
+
export function identityFieldsFor(entityType: string): readonly string[] {
|
|
33
|
+
return IDENTITY_FIELDS[entityType] ?? ["id"];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Deduplicates strings while preserving first-seen order.
|
|
38
|
+
* @param items - Field names
|
|
39
|
+
*/
|
|
40
|
+
function unique(items: readonly string[]): string[] {
|
|
41
|
+
const seen = new Set<string>();
|
|
42
|
+
const out: string[] = [];
|
|
43
|
+
for (const item of items) {
|
|
44
|
+
if (seen.has(item)) continue;
|
|
45
|
+
seen.add(item);
|
|
46
|
+
out.push(item);
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Ensures identity fields are present in a return-clause field list.
|
|
53
|
+
* When the caller omits `fields`, keeps the default `basics` fieldset and
|
|
54
|
+
* adds identifiers (so publication lists include `doi` without dropping authors).
|
|
55
|
+
*
|
|
56
|
+
* @param entityType - DSL source name
|
|
57
|
+
* @param fields - Caller-requested fields after alias resolution
|
|
58
|
+
*/
|
|
59
|
+
export function mergeIdentityFields(entityType: string, fields?: readonly string[]): string[] {
|
|
60
|
+
const identity = identityFieldsFor(entityType);
|
|
61
|
+
if (!fields?.length) {
|
|
62
|
+
return unique([DEFAULT_FIELDSET, ...identity]);
|
|
63
|
+
}
|
|
64
|
+
return unique([...identity, ...fields]);
|
|
65
|
+
}
|