@digital-science-dsl/dimensions-analytics-mcp 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +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 +2 -2
- 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/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
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Always return canonical profile URLs plus identity fields (`id`, and `doi` for publications) so agents can open and cite records without inventing broken Dimensions links.
|
|
8
|
+
|
|
9
|
+
## 1.3.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Document and prompt for `DIMENSIONS_BASE_URL` so custom-instance users (for example `your-instance.dimensions.ai`) are not authenticated against `app.dimensions.ai` and fail with 401.
|
|
14
|
+
|
|
3
15
|
## 1.3.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Dimensions Analytics MCP server for the Dimensions DSL.
|
|
4
4
|
|
|
5
|
-
**Documentation:** [github.com/digital-science/dimensions-analytics-mcp](https://github.com/digital-science/dimensions-analytics-mcp) — [Installation](https://github.com/digital-science/dimensions-analytics-mcp/blob/main/docs/INSTALLATION.md), [Usage](https://github.com/digital-science/dimensions-analytics-mcp/blob/main/docs/USAGE.md), [Reference](https://github.com/digital-science/dimensions-analytics-mcp/blob/main/docs/REFERENCE.md).
|
|
5
|
+
**Documentation:** [github.com/digital-science/dimensions-analytics-mcp](https://github.com/digital-science/dimensions-analytics-mcp) — [Installation](https://github.com/digital-science/dimensions-analytics-mcp/blob/main/docs/INSTALLATION.md), [Usage](https://github.com/digital-science/dimensions-analytics-mcp/blob/main/docs/USAGE.md), [Reference](https://github.com/digital-science/dimensions-analytics-mcp/blob/main/docs/REFERENCE.md). Custom Dimensions instances must set `DIMENSIONS_BASE_URL` (see Installation).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-fetch.d.ts","sourceRoot":"","sources":["../../src/mcp/batch-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-fetch.d.ts","sourceRoot":"","sources":["../../src/mcp/batch-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAG5E,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAO3F;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5F;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EACjD,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,qBAAqB,CAAC,CA8ChC;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EACjD,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,OAAO,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC,CAiFD"}
|
package/dist/mcp/batch-fetch.js
CHANGED
|
@@ -7,6 +7,7 @@ import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
|
7
7
|
import { dirname } from "node:path";
|
|
8
8
|
import { AGGREGATE_ID_CAP, parseEntityResponse, SCHEMA_LIMITS, } from "../dsl/index.js";
|
|
9
9
|
import { formatRowsForExport } from "./export-format.js";
|
|
10
|
+
import { attachProfileUrls } from "./profile-urls.js";
|
|
10
11
|
/**
|
|
11
12
|
* Computes a short hash of the search definition (excluding skip/limit).
|
|
12
13
|
* @param dsl - Full DSL query string
|
|
@@ -134,7 +135,7 @@ export async function runFileFetch(client, entityType, buildDsl, outputPath, opt
|
|
|
134
135
|
else if (totalCount === 0) {
|
|
135
136
|
totalCount = parsed.totalCount;
|
|
136
137
|
}
|
|
137
|
-
const rows = parsed.data;
|
|
138
|
+
const rows = attachProfileUrls(entityType, parsed.data);
|
|
138
139
|
const { text, columns } = formatRowsForExport(rows, options.format, {
|
|
139
140
|
columns: csvColumns,
|
|
140
141
|
preferredFields: options.preferredFields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-fetch.js","sourceRoot":"","sources":["../../src/mcp/batch-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAqB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-fetch.js","sourceRoot":"","sources":["../../src/mcp/batch-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
* Identity fields for a source (defaults to `id`).
|
|
10
|
+
* @param entityType - DSL source name
|
|
11
|
+
*/
|
|
12
|
+
export declare function identityFieldsFor(entityType: string): readonly string[];
|
|
13
|
+
/**
|
|
14
|
+
* Ensures identity fields are present in a return-clause field list.
|
|
15
|
+
* When the caller omits `fields`, keeps the default `basics` fieldset and
|
|
16
|
+
* adds identifiers (so publication lists include `doi` without dropping authors).
|
|
17
|
+
*
|
|
18
|
+
* @param entityType - DSL source name
|
|
19
|
+
* @param fields - Caller-requested fields after alias resolution
|
|
20
|
+
*/
|
|
21
|
+
export declare function mergeIdentityFields(entityType: string, fields?: readonly string[]): string[];
|
|
22
|
+
//# sourceMappingURL=identity-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-fields.d.ts","sourceRoot":"","sources":["../../src/mcp/identity-fields.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAEvE;AAiBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAM5F"}
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
/** Fields that uniquely identify a record, by entity type. */
|
|
9
|
+
const IDENTITY_FIELDS = {
|
|
10
|
+
publications: ["id", "doi"],
|
|
11
|
+
grants: ["id"],
|
|
12
|
+
researchers: ["id"],
|
|
13
|
+
patents: ["id"],
|
|
14
|
+
clinical_trials: ["id"],
|
|
15
|
+
datasets: ["id"],
|
|
16
|
+
policy_documents: ["id"],
|
|
17
|
+
organizations: ["id"],
|
|
18
|
+
reports: ["id"],
|
|
19
|
+
source_titles: ["id"],
|
|
20
|
+
funder_groups: ["id"],
|
|
21
|
+
research_org_groups: ["id"],
|
|
22
|
+
};
|
|
23
|
+
/** DSL fieldset that matches the API default list payload. */
|
|
24
|
+
const DEFAULT_FIELDSET = "basics";
|
|
25
|
+
/**
|
|
26
|
+
* Identity fields for a source (defaults to `id`).
|
|
27
|
+
* @param entityType - DSL source name
|
|
28
|
+
*/
|
|
29
|
+
export function identityFieldsFor(entityType) {
|
|
30
|
+
return IDENTITY_FIELDS[entityType] ?? ["id"];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Deduplicates strings while preserving first-seen order.
|
|
34
|
+
* @param items - Field names
|
|
35
|
+
*/
|
|
36
|
+
function unique(items) {
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
const out = [];
|
|
39
|
+
for (const item of items) {
|
|
40
|
+
if (seen.has(item))
|
|
41
|
+
continue;
|
|
42
|
+
seen.add(item);
|
|
43
|
+
out.push(item);
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Ensures identity fields are present in a return-clause field list.
|
|
49
|
+
* When the caller omits `fields`, keeps the default `basics` fieldset and
|
|
50
|
+
* adds identifiers (so publication lists include `doi` without dropping authors).
|
|
51
|
+
*
|
|
52
|
+
* @param entityType - DSL source name
|
|
53
|
+
* @param fields - Caller-requested fields after alias resolution
|
|
54
|
+
*/
|
|
55
|
+
export function mergeIdentityFields(entityType, fields) {
|
|
56
|
+
const identity = identityFieldsFor(entityType);
|
|
57
|
+
if (!fields?.length) {
|
|
58
|
+
return unique([DEFAULT_FIELDSET, ...identity]);
|
|
59
|
+
}
|
|
60
|
+
return unique([...identity, ...fields]);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=identity-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-fields.js","sourceRoot":"","sources":["../../src/mcp/identity-fields.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8DAA8D;AAC9D,MAAM,eAAe,GAAgD;IACnE,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;IAC3B,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,WAAW,EAAE,CAAC,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,eAAe,EAAE,CAAC,IAAI,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,gBAAgB,EAAE,CAAC,IAAI,CAAC;IACxB,aAAa,EAAE,CAAC,IAAI,CAAC;IACrB,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,aAAa,EAAE,CAAC,IAAI,CAAC;IACrB,aAAa,EAAE,CAAC,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,IAAI,CAAC;CAC5B,CAAC;AAEF,8DAA8D;AAC9D,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,MAAM,CAAC,KAAwB;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,MAA0B;IAChF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,CAAC,gBAAgB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Dimensions web profile URLs.
|
|
3
|
+
*
|
|
4
|
+
* DSL `dimensions_url` is a publication discover facet for researchers and
|
|
5
|
+
* organizations, not a profile page. LLMs then invent paths such as
|
|
6
|
+
* `/discover/researcher/{id}` which 404 (WEBAPPDEV-13680 / DIMENTRY-10160).
|
|
7
|
+
*
|
|
8
|
+
* @module mcp/profile-urls
|
|
9
|
+
*/
|
|
10
|
+
/** Default Dimensions web host when `DIMENSIONS_BASE_URL` is unset. */
|
|
11
|
+
export declare const DEFAULT_INSTANCE_BASE_URL = "https://app.dimensions.ai";
|
|
12
|
+
/**
|
|
13
|
+
* Path builders for entity types that have a canonical profile page.
|
|
14
|
+
* Researcher and organization templates are from WEBAPPDEV-13680; other
|
|
15
|
+
* document types match the live DSL `dimensions_url` path.
|
|
16
|
+
*/
|
|
17
|
+
declare const PROFILE_URL_PATHS: {
|
|
18
|
+
readonly publications: (id: string) => string;
|
|
19
|
+
readonly grants: (id: string) => string;
|
|
20
|
+
readonly patents: (id: string) => string;
|
|
21
|
+
readonly clinical_trials: (id: string) => string;
|
|
22
|
+
readonly datasets: (id: string) => string;
|
|
23
|
+
readonly policy_documents: (id: string) => string;
|
|
24
|
+
readonly researchers: (id: string) => string;
|
|
25
|
+
readonly organizations: (id: string) => string;
|
|
26
|
+
};
|
|
27
|
+
/** Entity types that have a canonical Dimensions web profile. */
|
|
28
|
+
export type ProfileEntityType = keyof typeof PROFILE_URL_PATHS;
|
|
29
|
+
/** Entity types that have a canonical Dimensions web profile. */
|
|
30
|
+
export declare const PROFILE_ENTITY_TYPES: ProfileEntityType[];
|
|
31
|
+
/**
|
|
32
|
+
* Strips trailing slashes from an instance base URL.
|
|
33
|
+
* @param baseUrl - Raw instance URL
|
|
34
|
+
* @returns Normalized origin with no trailing slash
|
|
35
|
+
*/
|
|
36
|
+
export declare function normalizeInstanceBaseUrl(baseUrl?: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Whether `entityType` has a canonical Dimensions profile page.
|
|
39
|
+
* @param entityType - DSL source or entity name
|
|
40
|
+
*/
|
|
41
|
+
export declare function isProfileEntityType(entityType: string): entityType is ProfileEntityType;
|
|
42
|
+
/**
|
|
43
|
+
* Builds a canonical Dimensions profile URL, or `undefined` when the entity
|
|
44
|
+
* type has no profile page or the id is empty.
|
|
45
|
+
* @param entityType - DSL source name (e.g. `researchers`)
|
|
46
|
+
* @param id - Dimensions record id
|
|
47
|
+
* @param instanceBaseUrl - Web instance origin (defaults to `DIMENSIONS_BASE_URL`)
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildProfileUrl(entityType: string, id: string, instanceBaseUrl?: string): string | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the profile entity type for a facet field, if bucket ids are profiles.
|
|
52
|
+
* @param facetField - Facet field name after alias resolution
|
|
53
|
+
*/
|
|
54
|
+
export declare function profileEntityForFacetField(facetField: string): ProfileEntityType | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Adds `profile_url` when the record has an id and the entity has a profile page.
|
|
57
|
+
* @param entityType - DSL source name
|
|
58
|
+
* @param record - Result row
|
|
59
|
+
* @param instanceBaseUrl - Web instance origin
|
|
60
|
+
*/
|
|
61
|
+
export declare function attachProfileUrl<T extends Record<string, unknown>>(entityType: string, record: T, instanceBaseUrl?: string): T;
|
|
62
|
+
/**
|
|
63
|
+
* Adds `profile_url` to each record that has a usable id.
|
|
64
|
+
* @param entityType - DSL source name
|
|
65
|
+
* @param records - Result rows
|
|
66
|
+
* @param instanceBaseUrl - Web instance origin
|
|
67
|
+
*/
|
|
68
|
+
export declare function attachProfileUrls<T extends Record<string, unknown>>(entityType: string, records: readonly T[], instanceBaseUrl?: string): T[];
|
|
69
|
+
/**
|
|
70
|
+
* Adds `profile_url` to facet buckets when the facet field is a profile entity.
|
|
71
|
+
* @param facetField - Facet field name after alias resolution
|
|
72
|
+
* @param buckets - Facet buckets
|
|
73
|
+
* @param instanceBaseUrl - Web instance origin
|
|
74
|
+
*/
|
|
75
|
+
export declare function attachFacetProfileUrls(facetField: string, buckets: readonly object[], instanceBaseUrl?: string): Record<string, unknown>[];
|
|
76
|
+
/** Catalog entry for one profile URL template. */
|
|
77
|
+
export interface ProfileUrlTemplate {
|
|
78
|
+
readonly entityType: ProfileEntityType;
|
|
79
|
+
readonly path: string;
|
|
80
|
+
readonly exampleId: string;
|
|
81
|
+
readonly exampleUrl: string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Documented profile URL templates for MCP resources and agent instructions.
|
|
85
|
+
* @param instanceBaseUrl - Web instance origin
|
|
86
|
+
*/
|
|
87
|
+
export declare function profileUrlCatalog(instanceBaseUrl?: string): {
|
|
88
|
+
instanceBaseUrl: string;
|
|
89
|
+
warning: string;
|
|
90
|
+
templates: ProfileUrlTemplate[];
|
|
91
|
+
};
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=profile-urls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-urls.d.ts","sourceRoot":"","sources":["../../src/mcp/profile-urls.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAErE;;;;GAIG;AACH,QAAA,MAAM,iBAAiB;gCACF,MAAM;0BACZ,MAAM;2BACL,MAAM;mCACE,MAAM;4BACb,MAAM;oCACE,MAAM;+BACX,MAAM;iCACJ,MAAM;CAClB,CAAC;AAEX,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,EAAqC,iBAAiB,EAAE,CAAC;AAY1F;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,iBAAiB,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,GAAG,SAAS,CAMpB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE5F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,EACT,eAAe,CAAC,EAAE,MAAM,GACvB,CAAC,CAMH;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,eAAe,CAAC,EAAE,MAAM,GACvB,CAAC,EAAE,CAEL;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAK3B;AAED,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAaD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC,CAaA"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Dimensions web profile URLs.
|
|
3
|
+
*
|
|
4
|
+
* DSL `dimensions_url` is a publication discover facet for researchers and
|
|
5
|
+
* organizations, not a profile page. LLMs then invent paths such as
|
|
6
|
+
* `/discover/researcher/{id}` which 404 (WEBAPPDEV-13680 / DIMENTRY-10160).
|
|
7
|
+
*
|
|
8
|
+
* @module mcp/profile-urls
|
|
9
|
+
*/
|
|
10
|
+
/** Default Dimensions web host when `DIMENSIONS_BASE_URL` is unset. */
|
|
11
|
+
export const DEFAULT_INSTANCE_BASE_URL = "https://app.dimensions.ai";
|
|
12
|
+
/**
|
|
13
|
+
* Path builders for entity types that have a canonical profile page.
|
|
14
|
+
* Researcher and organization templates are from WEBAPPDEV-13680; other
|
|
15
|
+
* document types match the live DSL `dimensions_url` path.
|
|
16
|
+
*/
|
|
17
|
+
const PROFILE_URL_PATHS = {
|
|
18
|
+
publications: (id) => `/details/publication/${id}`,
|
|
19
|
+
grants: (id) => `/details/grant/${id}`,
|
|
20
|
+
patents: (id) => `/details/patent/${id}`,
|
|
21
|
+
clinical_trials: (id) => `/details/clinical_trial/${id}`,
|
|
22
|
+
datasets: (id) => `/details/data_set/${id}`,
|
|
23
|
+
policy_documents: (id) => `/details/policy_documents/${id}`,
|
|
24
|
+
researchers: (id) => `/details/entities/publication/author/${id}`,
|
|
25
|
+
organizations: (id) => `/details/organization/${id}`,
|
|
26
|
+
};
|
|
27
|
+
/** Entity types that have a canonical Dimensions web profile. */
|
|
28
|
+
export const PROFILE_ENTITY_TYPES = Object.keys(PROFILE_URL_PATHS);
|
|
29
|
+
/**
|
|
30
|
+
* Facet fields whose bucket `id` is a profile entity (not a category label).
|
|
31
|
+
*/
|
|
32
|
+
const FACET_FIELD_PROFILE_ENTITY = {
|
|
33
|
+
researchers: "researchers",
|
|
34
|
+
research_orgs: "organizations",
|
|
35
|
+
funder_orgs: "organizations",
|
|
36
|
+
current_research_org: "organizations",
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Strips trailing slashes from an instance base URL.
|
|
40
|
+
* @param baseUrl - Raw instance URL
|
|
41
|
+
* @returns Normalized origin with no trailing slash
|
|
42
|
+
*/
|
|
43
|
+
export function normalizeInstanceBaseUrl(baseUrl) {
|
|
44
|
+
const raw = (baseUrl ?? process.env.DIMENSIONS_BASE_URL ?? DEFAULT_INSTANCE_BASE_URL).trim();
|
|
45
|
+
return raw.replace(/\/+$/, "") || DEFAULT_INSTANCE_BASE_URL;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Whether `entityType` has a canonical Dimensions profile page.
|
|
49
|
+
* @param entityType - DSL source or entity name
|
|
50
|
+
*/
|
|
51
|
+
export function isProfileEntityType(entityType) {
|
|
52
|
+
return Object.hasOwn(PROFILE_URL_PATHS, entityType);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Builds a canonical Dimensions profile URL, or `undefined` when the entity
|
|
56
|
+
* type has no profile page or the id is empty.
|
|
57
|
+
* @param entityType - DSL source name (e.g. `researchers`)
|
|
58
|
+
* @param id - Dimensions record id
|
|
59
|
+
* @param instanceBaseUrl - Web instance origin (defaults to `DIMENSIONS_BASE_URL`)
|
|
60
|
+
*/
|
|
61
|
+
export function buildProfileUrl(entityType, id, instanceBaseUrl) {
|
|
62
|
+
if (!isProfileEntityType(entityType))
|
|
63
|
+
return undefined;
|
|
64
|
+
const trimmed = id.trim();
|
|
65
|
+
if (!trimmed)
|
|
66
|
+
return undefined;
|
|
67
|
+
const base = normalizeInstanceBaseUrl(instanceBaseUrl);
|
|
68
|
+
return `${base}${PROFILE_URL_PATHS[entityType](encodeURIComponent(trimmed))}`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns the profile entity type for a facet field, if bucket ids are profiles.
|
|
72
|
+
* @param facetField - Facet field name after alias resolution
|
|
73
|
+
*/
|
|
74
|
+
export function profileEntityForFacetField(facetField) {
|
|
75
|
+
return FACET_FIELD_PROFILE_ENTITY[facetField];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Adds `profile_url` when the record has an id and the entity has a profile page.
|
|
79
|
+
* @param entityType - DSL source name
|
|
80
|
+
* @param record - Result row
|
|
81
|
+
* @param instanceBaseUrl - Web instance origin
|
|
82
|
+
*/
|
|
83
|
+
export function attachProfileUrl(entityType, record, instanceBaseUrl) {
|
|
84
|
+
const id = record.id;
|
|
85
|
+
if (typeof id !== "string" && typeof id !== "number")
|
|
86
|
+
return record;
|
|
87
|
+
const profileUrl = buildProfileUrl(entityType, String(id), instanceBaseUrl);
|
|
88
|
+
if (!profileUrl)
|
|
89
|
+
return record;
|
|
90
|
+
return { ...record, profile_url: profileUrl };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Adds `profile_url` to each record that has a usable id.
|
|
94
|
+
* @param entityType - DSL source name
|
|
95
|
+
* @param records - Result rows
|
|
96
|
+
* @param instanceBaseUrl - Web instance origin
|
|
97
|
+
*/
|
|
98
|
+
export function attachProfileUrls(entityType, records, instanceBaseUrl) {
|
|
99
|
+
return records.map((record) => attachProfileUrl(entityType, record, instanceBaseUrl));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Adds `profile_url` to facet buckets when the facet field is a profile entity.
|
|
103
|
+
* @param facetField - Facet field name after alias resolution
|
|
104
|
+
* @param buckets - Facet buckets
|
|
105
|
+
* @param instanceBaseUrl - Web instance origin
|
|
106
|
+
*/
|
|
107
|
+
export function attachFacetProfileUrls(facetField, buckets, instanceBaseUrl) {
|
|
108
|
+
const rows = buckets.map((bucket) => ({ ...bucket }));
|
|
109
|
+
const profileEntity = profileEntityForFacetField(facetField);
|
|
110
|
+
if (!profileEntity)
|
|
111
|
+
return rows;
|
|
112
|
+
return attachProfileUrls(profileEntity, rows, instanceBaseUrl);
|
|
113
|
+
}
|
|
114
|
+
const TEMPLATE_EXAMPLES = {
|
|
115
|
+
publications: "pub.1015581115",
|
|
116
|
+
grants: "grant.2438800",
|
|
117
|
+
patents: "ZW-9994-A1",
|
|
118
|
+
clinical_trials: "chictr-trc-14005205",
|
|
119
|
+
datasets: "dataset.99999999",
|
|
120
|
+
policy_documents: "policy.9999",
|
|
121
|
+
researchers: "ur.01222634304.39",
|
|
122
|
+
organizations: "grid.168010.e",
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Documented profile URL templates for MCP resources and agent instructions.
|
|
126
|
+
* @param instanceBaseUrl - Web instance origin
|
|
127
|
+
*/
|
|
128
|
+
export function profileUrlCatalog(instanceBaseUrl) {
|
|
129
|
+
const base = normalizeInstanceBaseUrl(instanceBaseUrl);
|
|
130
|
+
return {
|
|
131
|
+
instanceBaseUrl: base,
|
|
132
|
+
warning: "Never invent Dimensions web URLs. Researcher profiles are /details/entities/publication/author/{id}, not /discover/researcher/{id}. Organization profiles are /details/organization/{id}. DSL dimensions_url for researchers and organizations is a publication discover facet, not a profile.",
|
|
133
|
+
templates: PROFILE_ENTITY_TYPES.map((entityType) => {
|
|
134
|
+
const exampleId = TEMPLATE_EXAMPLES[entityType];
|
|
135
|
+
const exampleUrl = buildProfileUrl(entityType, exampleId, base) ?? "";
|
|
136
|
+
const path = exampleUrl.slice(base.length).replace(encodeURIComponent(exampleId), "{id}");
|
|
137
|
+
return { entityType, path, exampleId, exampleUrl };
|
|
138
|
+
}),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=profile-urls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-urls.js","sourceRoot":"","sources":["../../src/mcp/profile-urls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/mcp/resources/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/mcp/resources/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAqB9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA8VvF"}
|
|
@@ -6,6 +6,7 @@ import { ResourceTemplate } from "@modelcontextprotocol/server";
|
|
|
6
6
|
import { buildUsagePolicy, SCHEMA_LIMITS, searchToolName, } from "../../dsl/index.js";
|
|
7
7
|
import { DSL_DOCUMENTATION_URL, DSL_EXAMPLE_SOURCE_NAMES, DSL_EXAMPLES_BY_ENTITY, DSL_EXAMPLES_BY_SOURCE_URI, DSL_GENERAL_EXAMPLES, getDslExamplesForSource, } from "../examples/dsl-examples.js";
|
|
8
8
|
import { buildReverseAliasMap } from "../middleware/field-aliases.js";
|
|
9
|
+
import { profileUrlCatalog } from "../profile-urls.js";
|
|
9
10
|
/**
|
|
10
11
|
* Registers schema MCP resources from a loaded {@link SchemaStore}.
|
|
11
12
|
* @param server - MCP server instance
|
|
@@ -76,6 +77,18 @@ export function registerSchemaResources(server, context) {
|
|
|
76
77
|
},
|
|
77
78
|
],
|
|
78
79
|
}));
|
|
80
|
+
server.registerResource("schema-profile-urls", "dimensions://schema/profile-urls", {
|
|
81
|
+
description: "Canonical Dimensions web profile URL templates — use these instead of inventing /discover/researcher/ paths",
|
|
82
|
+
mimeType: "application/json",
|
|
83
|
+
}, async (uri) => ({
|
|
84
|
+
contents: [
|
|
85
|
+
{
|
|
86
|
+
uri: uri.href,
|
|
87
|
+
mimeType: "application/json",
|
|
88
|
+
text: JSON.stringify(profileUrlCatalog(), null, 2),
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
}));
|
|
79
92
|
server.registerResource("dsl-examples", "dimensions://examples", {
|
|
80
93
|
description: `Curated Dimensions DSL example queries. See official docs: ${DSL_DOCUMENTATION_URL}`,
|
|
81
94
|
mimeType: "application/json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/mcp/resources/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,gBAAgB,EAGhB,aAAa,EAGb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/mcp/resources/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EAAE,KAAK,eAAe,EAAwB,MAAM,oBAAoB,CAAC;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAEhB,UAAU,EACV,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EAAE,KAAK,eAAe,EAAwB,MAAM,oBAAoB,CAAC;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAEhB,UAAU,EACV,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAazD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,+BAA+B;IAC/B,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC,qEAAqE;IACrE,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4BD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CA2CxE;AAqCD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAIzF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC;IAChF,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC,CAoDD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,iBAAiB,CAAC,EAAE,SAAS,EAC7B,MAAM,GAAE,eAAoB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAED,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -15,6 +15,7 @@ import { registerAnalyticsTools } from "./tools/analytics.js";
|
|
|
15
15
|
import { registerFetchSearchPagesTools } from "./tools/fetch-search-pages.js";
|
|
16
16
|
import { registerFunctionTools } from "./tools/functions.js";
|
|
17
17
|
import { registerLookupTools } from "./tools/lookup.js";
|
|
18
|
+
import { registerProfileUrlTool } from "./tools/profile-url.js";
|
|
18
19
|
import { registerQueryTools } from "./tools/query.js";
|
|
19
20
|
import { registerSchemaTools, validateFieldAliases } from "./tools/schema.js";
|
|
20
21
|
import { registerSearchTools } from "./tools/search.js";
|
|
@@ -67,7 +68,9 @@ export function buildServerInstructions(schemaStore) {
|
|
|
67
68
|
"search_source_titles for journals / ISSN lookup (not articles); search_reports for technical reports;",
|
|
68
69
|
"search_funder_groups / search_research_org_groups for curated group name → member GRID ids;",
|
|
69
70
|
"similar_documents finds concept-similar publications/grants from prose (not embeddings); for a known ID, get_by_id then pass abstract/description as text;",
|
|
70
|
-
"facet_query supports yearFrom/yearTo for year-scoped facets
|
|
71
|
+
"facet_query supports yearFrom/yearTo for year-scoped facets;",
|
|
72
|
+
"never invent Dimensions web URLs — use profile_url from results or construct_profile_url (see dimensions://schema/profile-urls); researcher profiles are /details/entities/publication/author/{id}, not /discover/researcher/{id}; org profiles are /details/organization/{id};",
|
|
73
|
+
"search_* / get_by_* / similar_documents always include id (and doi for publications) even if fields omits them.",
|
|
71
74
|
].join(" "),
|
|
72
75
|
[
|
|
73
76
|
"Query construction:",
|
|
@@ -92,6 +95,7 @@ function registerAllTools(server, client, schemaStore, schemaContext, deployment
|
|
|
92
95
|
registerFetchSearchPagesTools(server, client, schemaStore);
|
|
93
96
|
}
|
|
94
97
|
registerLookupTools(server, client);
|
|
98
|
+
registerProfileUrlTool(server);
|
|
95
99
|
registerQueryTools(server, client, schemaStore);
|
|
96
100
|
registerFunctionTools(server, client);
|
|
97
101
|
registerSimilarDocumentsTool(server, client);
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,KAAK,EAAY,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,KAAK,EAAY,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AASjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA6FtD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,GACvB,IAAI,CAmVN"}
|
|
@@ -7,6 +7,7 @@ import { ProtocolError, ProtocolErrorCode } from "@modelcontextprotocol/server";
|
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { ExtendedWhereFilterSchema, parseFacetResponse, SUPPORTED_CURRENCIES, } from "../../dsl/index.js";
|
|
9
9
|
import { resolveFacetFieldName, withFieldAliases } from "../middleware/field-aliases.js";
|
|
10
|
+
import { attachFacetProfileUrls } from "../profile-urls.js";
|
|
10
11
|
import { registerTrackedTool } from "../usage-tracking.js";
|
|
11
12
|
import { formatErrorResult, formatToolResult, READ_ONLY_API_ANNOTATIONS } from "../utils.js";
|
|
12
13
|
import { applyAnalyticsFilters } from "./analytics-filters.js";
|
|
@@ -158,11 +159,12 @@ export function registerAnalyticsTools(server, client, schemaStore) {
|
|
|
158
159
|
includeRaw: false,
|
|
159
160
|
});
|
|
160
161
|
const facets = parsed.facets[facetField];
|
|
162
|
+
const buckets = attachFacetProfileUrls(facetField, facets.buckets);
|
|
161
163
|
return formatToolResult({
|
|
162
164
|
entityType: args.entityType,
|
|
163
165
|
facetField,
|
|
164
|
-
totalBuckets:
|
|
165
|
-
buckets
|
|
166
|
+
totalBuckets: buckets.length,
|
|
167
|
+
buckets,
|
|
166
168
|
});
|
|
167
169
|
}
|
|
168
170
|
catch (error) {
|
|
@@ -252,12 +254,13 @@ export function registerAnalyticsTools(server, client, schemaStore) {
|
|
|
252
254
|
includeRaw: false,
|
|
253
255
|
});
|
|
254
256
|
const facets = parsed.facets[facetField];
|
|
257
|
+
const buckets = attachFacetProfileUrls(facetField, facets.buckets);
|
|
255
258
|
return formatToolResult({
|
|
256
259
|
entityType: args.entityType,
|
|
257
260
|
facetField,
|
|
258
261
|
indicators: args.indicators,
|
|
259
|
-
totalBuckets:
|
|
260
|
-
buckets
|
|
262
|
+
totalBuckets: buckets.length,
|
|
263
|
+
buckets,
|
|
261
264
|
});
|
|
262
265
|
}
|
|
263
266
|
catch (error) {
|