@cyanheads/protein-mcp-server 0.2.1 → 0.3.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.
Files changed (28) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +21 -2
  4. package/changelog/0.3.x/0.3.0.md +20 -0
  5. package/dist/mcp-server/tools/definitions/_schemas.d.ts +10 -0
  6. package/dist/mcp-server/tools/definitions/_schemas.d.ts.map +1 -1
  7. package/dist/mcp-server/tools/definitions/_schemas.js +19 -0
  8. package/dist/mcp-server/tools/definitions/_schemas.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/get-annotations.tool.d.ts +22 -1
  10. package/dist/mcp-server/tools/definitions/get-annotations.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/get-annotations.tool.js +114 -4
  12. package/dist/mcp-server/tools/definitions/get-annotations.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/get-structure.tool.d.ts +7 -0
  14. package/dist/mcp-server/tools/definitions/get-structure.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/get-structure.tool.js +29 -1
  16. package/dist/mcp-server/tools/definitions/get-structure.tool.js.map +1 -1
  17. package/dist/services/rcsb/rcsb-service.d.ts +9 -3
  18. package/dist/services/rcsb/rcsb-service.d.ts.map +1 -1
  19. package/dist/services/rcsb/rcsb-service.js +24 -11
  20. package/dist/services/rcsb/rcsb-service.js.map +1 -1
  21. package/dist/services/rcsb/types.d.ts +9 -0
  22. package/dist/services/rcsb/types.d.ts.map +1 -1
  23. package/dist/services/shared/attribution.d.ts +42 -0
  24. package/dist/services/shared/attribution.d.ts.map +1 -0
  25. package/dist/services/shared/attribution.js +111 -0
  26. package/dist/services/shared/attribution.js.map +1 -0
  27. package/package.json +1 -1
  28. package/server.json +3 -3
package/AGENTS.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** protein-mcp-server
4
- **Version:** 0.2.1
4
+ **Version:** 0.3.0
5
5
  **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.10`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
package/CLAUDE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** protein-mcp-server
4
- **Version:** 0.2.1
4
+ **Version:** 0.3.0
5
5
  **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.10`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.2.1-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/protein-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/protein-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/protein-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.3.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/protein-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/protein-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/protein-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -62,6 +62,7 @@ Fetch structures with metadata and coordinate-file URLs, resolving across provid
62
62
  - `source: best_available` takes UniProt accessions and returns the top federated model (experimental if one exists, else the best prediction)
63
63
  - Per-ID partial success — unresolved IDs are listed in `failed[]`, not a batch-level error
64
64
  - `include_coords` inlines coordinate content; when a batch overflows the response budget it returns a per-structure size outline, so you can re-call with `sections: [ids]` for specific structures
65
+ - Every response carries an `attribution` block naming the upstream data licenses and citations (see [Upstream data licensing](#upstream-data-licensing))
65
66
 
66
67
  ---
67
68
 
@@ -119,8 +120,10 @@ Sequence and functional annotation for a protein.
119
120
 
120
121
  - UniProt features (domains, binding sites, PTMs) and natural sequence variants
121
122
  - InterPro domain/family memberships (Pfam, PROSITE, …) with associated GO terms
122
- - Provide a UniProt accession directly, or a PDB ID — resolved to its accession via the structure's sequence cross-reference
123
+ - Provide a UniProt accession directly, or a PDB ID — resolved to a UniProt accession via the structure's sequence cross-reference
124
+ - A multi-chain PDB entry can map to several accessions; the default is the deterministic lowest-author-chain pick, with the alternatives listed under `ambiguity`. Pass `chain` (an author chain ID, e.g. `A`) to select a specific one
123
125
  - `include` scopes which annotation classes are fetched: `features`, `domains`, `variants`, or `all`
126
+ - Every response carries an `attribution` block naming the upstream data licenses and citations (see [Upstream data licensing](#upstream-data-licensing))
124
127
 
125
128
  ## Resources
126
129
 
@@ -340,6 +343,22 @@ bun run devcheck
340
343
  bun run test
341
344
  ```
342
345
 
346
+ ## Upstream data licensing
347
+
348
+ Structure and annotation data comes from public upstream databases, each under its own license. `protein_get_structure` and `protein_get_annotations` carry an `attribution` block on every response — the license, citation, and homepage for each source that contributed to that specific response — so the attribution obligation travels with the data to downstream consumers rather than living only here. CC BY / CC BY-SA sources require attribution on redistribution; CC0 sources are citation-only (attribution encouraged, not required).
349
+
350
+ | Source | Contributes to | License |
351
+ |:---|:---|:---|
352
+ | [RCSB PDB](https://www.rcsb.org/) | `protein_get_structure` — experimental records | CC0 1.0 Universal |
353
+ | [AlphaFold DB](https://alphafold.ebi.ac.uk/) | `protein_get_structure` — predicted models | CC BY 4.0 |
354
+ | [SWISS-MODEL](https://swissmodel.expasy.org/) | `protein_get_structure` — `best_available` models | CC BY-SA 4.0 |
355
+ | [BFVD](https://bfvd.steineggerlab.workers.dev/) | `protein_get_structure` — `best_available` models | CC BY 4.0 |
356
+ | [UniProt](https://www.uniprot.org/) | `protein_get_annotations` | CC BY 4.0 |
357
+ | [InterPro](https://www.ebi.ac.uk/interpro/) | `protein_get_annotations` — domain/family data | CC0 1.0 Universal |
358
+ | [GO](https://geneontology.org/) | `protein_get_annotations` — GO terms | CC BY 4.0 |
359
+
360
+ `best_available` federates predicted models through [3D-Beacons](https://3d-beacons.org/), so the `attribution` block credits the actual contributing provider (AlphaFold DB, SWISS-MODEL, BFVD, …); a provider without a curated license entry carries a `See provider terms` fallback pointing back to 3D-Beacons rather than a fabricated license. InterPro's own domain/family classifications are CC0; the GO terms carried alongside them are separately CC BY 4.0, so each is credited independently only when it actually contributes. Full citations for each source travel in the `attribution` block of the relevant tool responses. This covers upstream *data* licensing — the server's own code is licensed separately (see [License](#license)).
361
+
343
362
  ## License
344
363
 
345
364
  Apache-2.0 — see [LICENSE](LICENSE) for details.
@@ -0,0 +1,20 @@
1
+ ---
2
+ summary: "protein_get_annotations disambiguates multi-chain PDB entries via a new chain input; protein_get_structure and protein_get_annotations both carry upstream data-source attribution (license + citation)."
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.3.0 — 2026-07-03
8
+
9
+ ## Added
10
+
11
+ - **`protein_get_annotations` `chain`** — optional author chain ID (`auth_asym_id`) input disambiguates a multi-chain PDB entry to a specific UniProt accession; ignored when `uniprot` is supplied directly. ([#12](https://github.com/cyanheads/protein-mcp-server/issues/12))
12
+ - **`protein_get_annotations` `ambiguity`** — new optional output field listing every distinct UniProt mapping (chains, accession, protein name) and a notice, present when a PDB ID resolves to more than one accession and no `chain` was given. ([#12](https://github.com/cyanheads/protein-mcp-server/issues/12))
13
+ - **`chain_not_found`** — new declared error reason on `protein_get_annotations` for a supplied `chain` that matches no UniProt-mapped polymer entity in the resolved entry. ([#12](https://github.com/cyanheads/protein-mcp-server/issues/12))
14
+ - **`attribution`** — new output field on `protein_get_structure` and `protein_get_annotations`: license, citation, and homepage for every upstream source that contributed to the response (RCSB PDB, AlphaFold DB, SWISS-MODEL, BFVD, UniProt, InterPro, GO). `best_available` credits the real federated 3D-Beacons provider; an uncurated provider gets an honest "See provider terms" fallback rather than a fabricated license. ([#7](https://github.com/cyanheads/protein-mcp-server/issues/7))
15
+ - **README** — "Upstream data licensing" section documenting each source's license. ([#7](https://github.com/cyanheads/protein-mcp-server/issues/7))
16
+
17
+ ## Changed
18
+
19
+ - **`RcsbService.resolveUniprot()`** → `resolveUniprotEntities()` — returns entity-grained `UniProtXref[]` (chains, accession, protein name) instead of a flat accession list. ([#12](https://github.com/cyanheads/protein-mcp-server/issues/12))
20
+ - **`protein_get_annotations` unqualified PDB resolution** — now picks the deterministic lowest-author-chain accession instead of an order dependent on upstream GraphQL entity ordering. ([#12](https://github.com/cyanheads/protein-mcp-server/issues/12))
@@ -29,4 +29,14 @@ export type FacetDimensionOutput = z.infer<typeof facetDimensionSchema>;
29
29
  export declare function toFacetOutput(facet: FacetDimension, cap: number): FacetDimensionOutput;
30
30
  /** Render a list of facet dimensions to markdown lines for `format()` parity. */
31
31
  export declare function renderFacets(facets: FacetDimensionOutput[]): string[];
32
+ /** License + citation for one upstream data source that contributed to a response. */
33
+ export declare const attributionSchema: z.ZodObject<{
34
+ source: z.ZodString;
35
+ license: z.ZodString;
36
+ citation: z.ZodString;
37
+ homepage: z.ZodString;
38
+ }, z.core.$strip>;
39
+ export type AttributionOutput = z.infer<typeof attributionSchema>;
40
+ /** Render an attribution list to one compact markdown line per source for `format()` parity. */
41
+ export declare function renderAttribution(attributions: AttributionOutput[]): string[];
32
42
  //# sourceMappingURL=_schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_schemas.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAoC/D,yCAAyC;AACzC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;iBAW4B,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAmBtF;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAarE"}
1
+ {"version":3,"file":"_schemas.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAoC/D,yCAAyC;AACzC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;iBAW4B,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAmBtF;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAarE;AAED,sFAAsF;AACtF,eAAO,MAAM,iBAAiB;;;;;iBAWmD,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAM7E"}
@@ -84,4 +84,23 @@ export function renderFacets(facets) {
84
84
  }
85
85
  return lines;
86
86
  }
87
+ /** License + citation for one upstream data source that contributed to a response. */
88
+ export const attributionSchema = z
89
+ .object({
90
+ source: z
91
+ .string()
92
+ .describe('Contributing data-source display name (e.g. "RCSB PDB", "AlphaFold DB", "SWISS-MODEL", "UniProt"). Open-ended — best_available structures are federated through 3D-Beacons providers.'),
93
+ license: z.string().describe('License the source data is released under (e.g. "CC BY 4.0").'),
94
+ citation: z.string().describe('Primary-literature citation to credit the source.'),
95
+ homepage: z.string().describe('Source homepage (absolute URL).'),
96
+ })
97
+ .describe('Upstream data-source attribution: license, citation, and homepage.');
98
+ /** Render an attribution list to one compact markdown line per source for `format()` parity. */
99
+ export function renderAttribution(attributions) {
100
+ const lines = [];
101
+ for (const a of attributions) {
102
+ lines.push(`- **${a.source}** (${a.license}) — ${a.citation} — ${a.homepage}`);
103
+ }
104
+ return lines;
105
+ }
87
106
  //# sourceMappingURL=_schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_schemas.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_schemas.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_schemas.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * @fileoverview protein_get_annotations — sequence & functional annotation for a
3
3
  * protein: UniProt features (domains, binding sites, PTMs, variants) and InterPro
4
4
  * domain/family memberships with GO terms. Keyed by UniProt accession; resolves a
5
- * PDB ID to its accession when needed.
5
+ * PDB ID to its accession when needed — deterministically by default, by author
6
+ * chain when a multi-chain entry is ambiguous. Carries upstream data attribution.
6
7
  * @module mcp-server/tools/definitions/get-annotations.tool
7
8
  */
8
9
  import { z } from '@cyanheads/mcp-ts-core';
@@ -10,6 +11,7 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
10
11
  export declare const getAnnotations: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
11
12
  uniprot: z.ZodOptional<z.ZodString>;
12
13
  pdb_id: z.ZodOptional<z.ZodString>;
14
+ chain: z.ZodOptional<z.ZodString>;
13
15
  include: z.ZodDefault<z.ZodEnum<{
14
16
  all: "all";
15
17
  features: "features";
@@ -46,11 +48,30 @@ export declare const getAnnotations: import("@cyanheads/mcp-ts-core").ToolDefini
46
48
  category: z.ZodOptional<z.ZodString>;
47
49
  }, z.core.$strip>>;
48
50
  }, z.core.$strip>>>;
51
+ ambiguity: z.ZodOptional<z.ZodObject<{
52
+ accessions: z.ZodArray<z.ZodObject<{
53
+ chain: z.ZodArray<z.ZodString>;
54
+ accession: z.ZodString;
55
+ proteinName: z.ZodOptional<z.ZodString>;
56
+ }, z.core.$strip>>;
57
+ notice: z.ZodString;
58
+ }, z.core.$strip>>;
59
+ attribution: z.ZodArray<z.ZodObject<{
60
+ source: z.ZodString;
61
+ license: z.ZodString;
62
+ citation: z.ZodString;
63
+ homepage: z.ZodString;
64
+ }, z.core.$strip>>;
49
65
  }, z.core.$strip>, readonly [{
50
66
  readonly reason: "no_uniprot_mapping";
51
67
  readonly code: JsonRpcErrorCode.NotFound;
52
68
  readonly when: "A PDB ID has no UniProt cross-reference (e.g. nucleic-acid-only entry), or neither uniprot nor pdb_id was provided.";
53
69
  readonly recovery: "Pass a UniProt accession directly, or use protein_search_structures to find a structure with a modeled protein chain.";
70
+ }, {
71
+ readonly reason: "chain_not_found";
72
+ readonly code: JsonRpcErrorCode.NotFound;
73
+ readonly when: "A supplied chain matches no UniProt-mapped polymer entity in the resolved PDB entry.";
74
+ readonly recovery: "Omit chain for the deterministic default mapping, or pass an author chain ID the entry exposes (see polymerEntities[].chains in the pdb://{entry_id} resource).";
54
75
  }], {
55
76
  readonly resolvedFrom: z.ZodOptional<z.ZodString>;
56
77
  readonly notice: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"get-annotations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-annotations.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA4CjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IzB,CAAC"}
1
+ {"version":3,"file":"get-annotations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-annotations.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwEjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6NzB,CAAC"}
@@ -2,14 +2,17 @@
2
2
  * @fileoverview protein_get_annotations — sequence & functional annotation for a
3
3
  * protein: UniProt features (domains, binding sites, PTMs, variants) and InterPro
4
4
  * domain/family memberships with GO terms. Keyed by UniProt accession; resolves a
5
- * PDB ID to its accession when needed.
5
+ * PDB ID to its accession when needed — deterministically by default, by author
6
+ * chain when a multi-chain entry is ambiguous. Carries upstream data attribution.
6
7
  * @module mcp-server/tools/definitions/get-annotations.tool
7
8
  */
8
9
  import { tool, z } from '@cyanheads/mcp-ts-core';
9
10
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
10
11
  import { getRcsbService } from '../../../services/rcsb/rcsb-service.js';
12
+ import { attributionsFor } from '../../../services/shared/attribution.js';
11
13
  import { isUniProtAccession } from '../../../services/shared/identifiers.js';
12
14
  import { getUniProtService } from '../../../services/uniprot/uniprot-service.js';
15
+ import { attributionSchema, renderAttribution } from './_schemas.js';
13
16
  const featureSchema = z
14
17
  .object({
15
18
  type: z.string().describe('Feature type (e.g. Domain, Binding site, Modified residue).'),
@@ -40,12 +43,33 @@ const domainSchema = z
40
43
  .describe('Associated GO terms.'),
41
44
  })
42
45
  .describe('An InterPro domain/family membership with GO terms.');
46
+ const ambiguitySchema = z
47
+ .object({
48
+ accessions: z
49
+ .array(z
50
+ .object({
51
+ chain: z
52
+ .array(z.string())
53
+ .describe('Author chain IDs (auth_asym_id) this entity covers (e.g. ["A", "C"]).'),
54
+ accession: z.string().describe('UniProt accession the chains map to.'),
55
+ proteinName: z.string().optional().describe('Polymer entity description.'),
56
+ })
57
+ .describe('One chain-group → UniProt accession mapping within the entry.'))
58
+ .describe('Every distinct UniProt mapping for the entry, lowest-chain first.'),
59
+ notice: z
60
+ .string()
61
+ .describe('Why multiple mappings exist and how to select one via the chain input.'),
62
+ })
63
+ .describe('Present only when a PDB ID mapped to more than one distinct UniProt accession and no chain was supplied. The returned accession is the deterministic lowest-chain pick — re-call with chain set to a specific author chain ID to select another.');
43
64
  export const getAnnotations = tool('protein_get_annotations', {
44
65
  title: 'protein-mcp-server: get annotations',
45
66
  description: 'Sequence and functional annotation for a protein: UniProt features (domains, binding sites, PTMs), ' +
46
67
  'natural variants, and InterPro domain/family memberships (Pfam, PROSITE, …) with GO terms. Provide a ' +
47
68
  "UniProt accession directly, or a PDB ID — it is resolved to its UniProt accession via the structure's " +
48
- 'sequence cross-reference. Use the "include" parameter to scope which annotation classes are fetched.',
69
+ 'sequence cross-reference. A multi-chain PDB entry can map to several accessions; the default pick is ' +
70
+ 'deterministic (lowest author chain ID) and the alternatives are listed in "ambiguity" — pass "chain" to ' +
71
+ 'select a specific one. Use "include" to scope which annotation classes are fetched. Every response carries ' +
72
+ 'an "attribution" block with the upstream data licenses and citations.',
49
73
  annotations: { readOnlyHint: true, openWorldHint: true },
50
74
  errors: [
51
75
  {
@@ -54,6 +78,12 @@ export const getAnnotations = tool('protein_get_annotations', {
54
78
  when: 'A PDB ID has no UniProt cross-reference (e.g. nucleic-acid-only entry), or neither uniprot nor pdb_id was provided.',
55
79
  recovery: 'Pass a UniProt accession directly, or use protein_search_structures to find a structure with a modeled protein chain.',
56
80
  },
81
+ {
82
+ reason: 'chain_not_found',
83
+ code: JsonRpcErrorCode.NotFound,
84
+ when: 'A supplied chain matches no UniProt-mapped polymer entity in the resolved PDB entry.',
85
+ recovery: 'Omit chain for the deterministic default mapping, or pass an author chain ID the entry exposes (see polymerEntities[].chains in the pdb://{entry_id} resource).',
86
+ },
57
87
  ],
58
88
  input: z.object({
59
89
  uniprot: z
@@ -64,6 +94,10 @@ export const getAnnotations = tool('protein_get_annotations', {
64
94
  .string()
65
95
  .optional()
66
96
  .describe('PDB entry ID; resolved to a UniProt accession via cross-reference.'),
97
+ chain: z
98
+ .string()
99
+ .optional()
100
+ .describe('Author chain ID (auth_asym_id, e.g. "A") that disambiguates a multi-chain PDB entry to a specific UniProt accession. Case-sensitive — must match the author chain ID exactly (large structures can carry distinct "A" and "a" chains). Only applies with pdb_id; ignored when uniprot is supplied directly. See polymerEntities[].chains in the pdb://{entry_id} resource for an entry\'s author chain IDs.'),
67
101
  include: z
68
102
  .enum(['features', 'domains', 'variants', 'all'])
69
103
  .default('all')
@@ -79,6 +113,12 @@ export const getAnnotations = tool('protein_get_annotations', {
79
113
  features: z.array(featureSchema).optional().describe('Structural/functional features.'),
80
114
  variants: z.array(featureSchema).optional().describe('Natural sequence variants.'),
81
115
  domains: z.array(domainSchema).optional().describe('InterPro domain/family memberships.'),
116
+ ambiguity: ambiguitySchema
117
+ .optional()
118
+ .describe('Alternative UniProt mappings when a PDB ID resolved ambiguously (no chain given).'),
119
+ attribution: z
120
+ .array(attributionSchema)
121
+ .describe('Upstream data-source licenses and citations for every source that contributed to this response. Always present — the attribution obligation travels with the data.'),
82
122
  }),
83
123
  enrichment: {
84
124
  resolvedFrom: z
@@ -92,10 +132,37 @@ export const getAnnotations = tool('protein_get_annotations', {
92
132
  const rcsb = getRcsbService();
93
133
  let accession = input.uniprot?.toUpperCase();
94
134
  let resolvedFrom;
135
+ let ambiguity;
95
136
  if (!accession && input.pdb_id) {
96
- const accessions = await rcsb.resolveUniprot(input.pdb_id, ctx);
97
- accession = accessions[0];
137
+ const entities = await rcsb.resolveUniprotEntities(input.pdb_id, ctx);
98
138
  resolvedFrom = input.pdb_id.toUpperCase();
139
+ const chain = input.chain?.trim();
140
+ if (chain) {
141
+ const match = entities.find((e) => e.chains.includes(chain));
142
+ if (!match) {
143
+ const available = entities.flatMap((e) => e.chains);
144
+ throw ctx.fail('chain_not_found', `Chain "${chain}" matches no UniProt-mapped polymer entity in ${resolvedFrom}.`, {
145
+ recovery: {
146
+ hint: available.length
147
+ ? `Author chains in ${resolvedFrom}: ${available.join(', ')}. Pass one of these, or omit chain for the deterministic default mapping.`
148
+ : `${resolvedFrom} exposes no UniProt-mapped protein chains. Pass a UniProt accession directly.`,
149
+ },
150
+ });
151
+ }
152
+ accession = match.accession;
153
+ }
154
+ else {
155
+ // Deterministic default: order entities by their lowest author chain ID and
156
+ // take the first, so the same entry always yields the same accession
157
+ // regardless of upstream GraphQL entity ordering. When more than one distinct
158
+ // accession exists, surface the alternatives so the caller can pick a chain.
159
+ const ordered = orderByLowestChain(entities);
160
+ accession = ordered[0]?.accession;
161
+ const distinct = new Set(entities.map((e) => e.accession));
162
+ if (accession && distinct.size > 1) {
163
+ ambiguity = buildAmbiguity(resolvedFrom, accession, ordered, distinct.size);
164
+ }
165
+ }
99
166
  }
100
167
  if (!accession) {
101
168
  throw ctx.fail('no_uniprot_mapping', 'Provide a UniProt accession, or a PDB ID with a modeled protein chain.', { ...ctx.recoveryFor('no_uniprot_mapping') });
@@ -115,6 +182,15 @@ export const getAnnotations = tool('protein_get_annotations', {
115
182
  const variants = entry.features.filter((f) => f.category === 'variant');
116
183
  const wantFeatures = include === 'features' || include === 'all';
117
184
  const wantVariants = include === 'variants' || include === 'all';
185
+ // Attribution rides with the data. UniProt always contributes on success;
186
+ // InterPro only when it returned entries; GO only when a returned entry carries
187
+ // GO terms. InterPro (CC0) and GO (CC BY 4.0) are gated independently — an
188
+ // InterPro entry can exist with zero GO terms.
189
+ const sources = new Set(['UniProt']);
190
+ if (interpro.length > 0)
191
+ sources.add('InterPro');
192
+ if (interpro.some((d) => d.goTerms.length > 0))
193
+ sources.add('GO');
118
194
  if (resolvedFrom)
119
195
  ctx.enrich({ resolvedFrom });
120
196
  return {
@@ -127,6 +203,8 @@ export const getAnnotations = tool('protein_get_annotations', {
127
203
  ...(wantFeatures ? { features: toFeatureOutput(features) } : {}),
128
204
  ...(wantVariants ? { variants: toFeatureOutput(variants) } : {}),
129
205
  ...(wantInterPro ? { domains: interpro } : {}),
206
+ ...(ambiguity ? { ambiguity } : {}),
207
+ attribution: attributionsFor(sources),
130
208
  };
131
209
  },
132
210
  format: (result) => {
@@ -142,6 +220,13 @@ export const getAnnotations = tool('protein_get_annotations', {
142
220
  lines.push(head.join(' | '));
143
221
  if (result.function)
144
222
  lines.push(`\n**Function:** ${result.function}`);
223
+ if (result.ambiguity) {
224
+ lines.push(`\n### Multiple UniProt mappings`);
225
+ lines.push(result.ambiguity.notice);
226
+ for (const m of result.ambiguity.accessions) {
227
+ lines.push(`- **${m.accession}**${m.proteinName ? ` — ${m.proteinName}` : ''} (chains ${m.chain.join(', ') || 'none'})`);
228
+ }
229
+ }
145
230
  if (result.features && result.features.length > 0) {
146
231
  lines.push(`\n### Features (${result.features.length})`);
147
232
  for (const f of result.features)
@@ -160,9 +245,34 @@ export const getAnnotations = tool('protein_get_annotations', {
160
245
  lines.push(` - ${g.id} ${g.name}${g.category ? ` [${g.category}]` : ''}`);
161
246
  }
162
247
  }
248
+ if (result.attribution.length > 0) {
249
+ lines.push(`\n### Attribution`);
250
+ lines.push(...renderAttribution(result.attribution));
251
+ }
163
252
  return [{ type: 'text', text: lines.join('\n') }];
164
253
  },
165
254
  });
255
+ /** Lowest author chain ID for an entity (code-unit order); '' when it has none. */
256
+ function lowestChain(entity) {
257
+ return [...entity.chains].sort()[0] ?? '';
258
+ }
259
+ /** Order UniProt xrefs by their lowest author chain ID — the deterministic default pick. */
260
+ function orderByLowestChain(entities) {
261
+ return [...entities].sort((a, b) => lowestChain(a).localeCompare(lowestChain(b)));
262
+ }
263
+ /** Assemble the ambiguity block: every distinct mapping, lowest-chain first, with a notice. */
264
+ function buildAmbiguity(entryId, chosen, ordered, distinctCount) {
265
+ return {
266
+ accessions: ordered.map((e) => ({
267
+ chain: e.chains,
268
+ accession: e.accession,
269
+ ...(e.proteinName ? { proteinName: e.proteinName } : {}),
270
+ })),
271
+ notice: `${entryId} maps to ${distinctCount} distinct UniProt accessions across its chains. ` +
272
+ `Returning ${chosen}, the deterministic lowest-chain pick. ` +
273
+ 'Re-call with chain set to a specific author chain ID to select another.',
274
+ };
275
+ }
166
276
  function toFeatureOutput(features) {
167
277
  return features.map((f) => ({
168
278
  type: f.type,
@@ -1 +1 @@
1
- {"version":3,"file":"get-annotations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-annotations.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-annotations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-annotations.tool.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * GraphQL call with per-ID partial success (`failed[]`). Optionally inlines
5
5
  * coordinate-file content; when that overflows a byte budget it returns a
6
6
  * per-structure section outline for targeted re-call instead of truncating.
7
+ * Carries upstream data attribution (RCSB PDB / AlphaFold DB) per response.
7
8
  * @module mcp-server/tools/definitions/get-structure.tool
8
9
  */
9
10
  import { z } from '@cyanheads/mcp-ts-core';
@@ -54,6 +55,12 @@ export declare const getStructure: import("@cyanheads/mcp-ts-core").ToolDefiniti
54
55
  id: z.ZodString;
55
56
  reason: z.ZodString;
56
57
  }, z.core.$strip>>;
58
+ attribution: z.ZodArray<z.ZodObject<{
59
+ source: z.ZodString;
60
+ license: z.ZodString;
61
+ citation: z.ZodString;
62
+ homepage: z.ZodString;
63
+ }, z.core.$strip>>;
57
64
  overflow: z.ZodOptional<z.ZodObject<{
58
65
  sections: z.ZodArray<z.ZodObject<{
59
66
  id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"get-structure.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA8DjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmOvB,CAAC"}
1
+ {"version":3,"file":"get-structure.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgEjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiQvB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * GraphQL call with per-ID partial success (`failed[]`). Optionally inlines
5
5
  * coordinate-file content; when that overflows a byte budget it returns a
6
6
  * per-structure section outline for targeted re-call instead of truncating.
7
+ * Carries upstream data attribution (RCSB PDB / AlphaFold DB) per response.
7
8
  * @module mcp-server/tools/definitions/get-structure.tool
8
9
  */
9
10
  import { tool, z } from '@cyanheads/mcp-ts-core';
@@ -14,8 +15,10 @@ import { getAlphaFoldService } from '../../../services/alphafold/alphafold-servi
14
15
  import { getBeaconsService } from '../../../services/beacons/beacons-service.js';
15
16
  import { getRcsbService } from '../../../services/rcsb/rcsb-service.js';
16
17
  import { mapWithConcurrency } from '../../../services/shared/async.js';
18
+ import { attributionsFor } from '../../../services/shared/attribution.js';
17
19
  import { fetchText } from '../../../services/shared/http.js';
18
20
  import { isPdbId, isUniProtAccession } from '../../../services/shared/identifiers.js';
21
+ import { attributionSchema, renderAttribution } from './_schemas.js';
19
22
  const confidenceBucketsSchema = z.object({
20
23
  veryLow: z.number().describe('Fraction of residues with pLDDT < 50.'),
21
24
  low: z.number().describe('Fraction with pLDDT 50–70.'),
@@ -115,6 +118,9 @@ export const getStructure = tool('protein_get_structure', {
115
118
  })
116
119
  .describe('A requested ID that did not resolve, with the reason.'))
117
120
  .describe('IDs that could not be resolved (partial success).'),
121
+ attribution: z
122
+ .array(attributionSchema)
123
+ .describe('Upstream data-source licenses and citations for every source present in structures[] — RCSB PDB for experimental records, AlphaFold DB for predicted. Always present — the attribution obligation travels with the data.'),
118
124
  overflow: z
119
125
  .object({
120
126
  sections: z
@@ -192,7 +198,25 @@ export const getStructure = tool('protein_get_structure', {
192
198
  if (failed.length > 0) {
193
199
  ctx.enrich.notice(`${failed.length} of ${ids.length} IDs did not resolve: ${failed.map((f) => f.id).join(', ')}.`);
194
200
  }
195
- return { structures, failed, ...(overflow ? { overflow } : {}) };
201
+ // Attribution is a per-response union of the sources actually present, keyed
202
+ // off each record's real provider. Experimental data is fetched from RCSB
203
+ // regardless of the beacon's provider label. best_available federates predicted
204
+ // models through 3D-Beacons (AlphaFold DB, SWISS-MODEL, BFVD, …), so a predicted
205
+ // record's provider — not the binary source — determines the credit; an
206
+ // uncurated provider falls back to an honest no-license entry. Crediting every
207
+ // predicted model as AlphaFold would mis-attribute a SWISS-MODEL structure.
208
+ const sources = new Set();
209
+ for (const s of structures) {
210
+ sources.add(s.source === 'experimental'
211
+ ? 'RCSB PDB'
212
+ : (s.provider ?? '3D-Beacons (provider unspecified)'));
213
+ }
214
+ return {
215
+ structures,
216
+ failed,
217
+ attribution: attributionsFor(sources),
218
+ ...(overflow ? { overflow } : {}),
219
+ };
196
220
  },
197
221
  format: (result) => {
198
222
  const lines = [`## Structures (${result.structures.length})`];
@@ -239,6 +263,10 @@ export const getStructure = tool('protein_get_structure', {
239
263
  for (const s of result.overflow.sections)
240
264
  lines.push(`- ${s.id}: ${s.bytes} bytes`);
241
265
  }
266
+ if (result.attribution.length > 0) {
267
+ lines.push(`\n### Attribution`);
268
+ lines.push(...renderAttribution(result.attribution));
269
+ }
242
270
  return [{ type: 'text', text: lines.join('\n') }];
243
271
  },
244
272
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-structure.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-structure.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import type { Context } from '@cyanheads/mcp-ts-core';
11
11
  import type { AppConfig } from '@cyanheads/mcp-ts-core/config';
12
12
  import type { StorageService } from '@cyanheads/mcp-ts-core/storage';
13
13
  import type { ServerConfig } from '../../config/server-config.js';
14
- import type { BindingSite, ChemComp, ContentType, EntryMeta, FacetDimension, SearchResult, StructureSearchParams } from './types.js';
14
+ import type { BindingSite, ChemComp, ContentType, EntryMeta, FacetDimension, SearchResult, StructureSearchParams, UniProtXref } from './types.js';
15
15
  /** RCSB return types relevant to this server. */
16
16
  export type ReturnType = 'entry' | 'polymer_entity' | 'mol_definition';
17
17
  /** A facet dimension request: friendly name + how RCSB should aggregate it. */
@@ -56,8 +56,14 @@ export declare class RcsbService {
56
56
  }>;
57
57
  /** Batched entry metadata for up to N PDB IDs in one GraphQL call. */
58
58
  getEntries(ids: string[], ctx: Context): Promise<EntryMeta[]>;
59
- /** Resolve a PDB entry to its cross-referenced UniProt accession(s). */
60
- resolveUniprot(pdbId: string, ctx: Context): Promise<string[]>;
59
+ /**
60
+ * Resolve a PDB entry to its UniProt-cross-referenced polymer entities. Each
61
+ * returned entry carries the author chain IDs it covers, the mapped UniProt
62
+ * accession, and the polymer description — entity-grained so a caller can
63
+ * disambiguate a multi-chain entry by chain. One entry per polymer entity that
64
+ * carries a UniProt xref; entities without one are skipped. Single round trip.
65
+ */
66
+ resolveUniprotEntities(pdbId: string, ctx: Context): Promise<UniProtXref[]>;
61
67
  /** First polymer entity's one-letter sequence for a PDB entry. */
62
68
  getSequence(pdbId: string, ctx: Context): Promise<{
63
69
  entityId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rcsb-service.d.ts","sourceRoot":"","sources":["../../../src/services/rcsb/rcsb-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rcsb-service.d.ts","sourceRoot":"","sources":["../../../src/services/rcsb/rcsb-service.ts"],"names":[],"mappings":"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"}
@@ -137,19 +137,30 @@ export class RcsbService {
137
137
  const data = await this.graphql(ENTRIES_QUERY, { ids: ids.map((id) => id.toUpperCase()) }, ctx, 'RcsbService.getEntries');
138
138
  return (data.entries ?? []).filter((e) => e != null).map(normalizeEntry);
139
139
  }
140
- /** Resolve a PDB entry to its cross-referenced UniProt accession(s). */
141
- async resolveUniprot(pdbId, ctx) {
142
- const data = await this.graphql(XREF_QUERY, { id: pdbId.toUpperCase() }, ctx, 'RcsbService.resolveUniprot');
143
- const accessions = new Set();
140
+ /**
141
+ * Resolve a PDB entry to its UniProt-cross-referenced polymer entities. Each
142
+ * returned entry carries the author chain IDs it covers, the mapped UniProt
143
+ * accession, and the polymer description — entity-grained so a caller can
144
+ * disambiguate a multi-chain entry by chain. One entry per polymer entity that
145
+ * carries a UniProt xref; entities without one are skipped. Single round trip.
146
+ */
147
+ async resolveUniprotEntities(pdbId, ctx) {
148
+ const data = await this.graphql(XREF_QUERY, { id: pdbId.toUpperCase() }, ctx, 'RcsbService.resolveUniprotEntities');
149
+ const xrefs = [];
144
150
  for (const entity of data.entry?.polymer_entities ?? []) {
145
- for (const ref of entity.rcsb_polymer_entity_container_identifiers
146
- ?.reference_sequence_identifiers ?? []) {
147
- if (/uniprot/i.test(ref.database_name ?? '') && ref.database_accession) {
148
- accessions.add(ref.database_accession.toUpperCase());
149
- }
150
- }
151
+ const container = entity.rcsb_polymer_entity_container_identifiers;
152
+ const accession = container?.reference_sequence_identifiers?.find((ref) => /uniprot/i.test(ref.database_name ?? '') && ref.database_accession)?.database_accession;
153
+ if (!accession)
154
+ continue;
155
+ xrefs.push({
156
+ accession: accession.toUpperCase(),
157
+ chains: container?.auth_asym_ids ?? [],
158
+ ...(entity.rcsb_polymer_entity?.pdbx_description
159
+ ? { proteinName: entity.rcsb_polymer_entity.pdbx_description }
160
+ : {}),
161
+ });
151
162
  }
152
- return [...accessions];
163
+ return xrefs;
153
164
  }
154
165
  /** First polymer entity's one-letter sequence for a PDB entry. */
155
166
  async getSequence(pdbId, ctx) {
@@ -439,7 +450,9 @@ const ENTRIES_QUERY = `query Entries($ids: [String!]!) {
439
450
  const XREF_QUERY = `query Xref($id: String!) {
440
451
  entry(entry_id: $id) {
441
452
  polymer_entities {
453
+ rcsb_polymer_entity { pdbx_description }
442
454
  rcsb_polymer_entity_container_identifiers {
455
+ auth_asym_ids
443
456
  reference_sequence_identifiers { database_accession database_name }
444
457
  }
445
458
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rcsb-service.js","sourceRoot":"","sources":["../../../src/services/rcsb/rcsb-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rcsb-service.js","sourceRoot":"","sources":["../../../src/services/rcsb/rcsb-service.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,15 @@ export interface PolymerEntityMeta {
55
55
  /** Residue count of the sample sequence. */
56
56
  sequenceLength?: number;
57
57
  }
58
+ /** One polymer entity's UniProt cross-reference: the chains it covers and the mapped accession. */
59
+ export interface UniProtXref {
60
+ /** UniProt accession this entity maps to. */
61
+ accession: string;
62
+ /** Author chain IDs (auth_asym_id) this entity covers (e.g. ["A", "C"]). */
63
+ chains: string[];
64
+ /** Polymer entity description (e.g. "Hemoglobin subunit alpha"). */
65
+ proteinName?: string;
66
+ }
58
67
  /** A bound non-polymer (ligand) component within an entry. */
59
68
  export interface LigandMeta {
60
69
  /** Chemical component ID (e.g. `HEM`, `STI`). */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/rcsb/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/rcsb/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fileoverview Upstream data-source attribution — the license and citation each
3
+ * contributing database asks to travel with its data. `protein_get_structure` and
4
+ * `protein_get_annotations` project the sources that actually contributed to a
5
+ * response into a deduped attribution array, so the obligation rides with the data
6
+ * to every downstream consumer rather than living only in repo docs. Curated
7
+ * strings are verified against each source's primary license/citation page.
8
+ * `best_available` structures are federated through 3D-Beacons, an open set of
9
+ * model providers (AlphaFold DB, SWISS-MODEL, BFVD, AlphaFill, …), so an uncurated
10
+ * provider gets an honest fallback entry that asserts no license rather than a
11
+ * fabricated one. Pure data + a projection helper; the Zod output schema and
12
+ * renderer live in the tools' shared `_schemas.ts`.
13
+ * @module services/shared/attribution
14
+ */
15
+ /**
16
+ * Curated data-source display names (verified license + citation), in canonical
17
+ * render order. The structure sources come first (RCSB PDB, then the federated
18
+ * predicted providers), followed by the annotation trio.
19
+ */
20
+ export declare const CURATED_SOURCES: readonly ["RCSB PDB", "AlphaFold DB", "SWISS-MODEL", "BFVD", "UniProt", "InterPro", "GO"];
21
+ /** A curated data-source display name with a verified license + citation. */
22
+ export type CuratedSource = (typeof CURATED_SOURCES)[number];
23
+ /** License, citation, and homepage for one contributing data source. */
24
+ export interface Attribution {
25
+ /** Primary-literature citation the source asks consumers to cite. */
26
+ citation: string;
27
+ /** Source homepage. */
28
+ homepage: string;
29
+ /** License the source's data is released under (e.g. "CC BY 4.0"). */
30
+ license: string;
31
+ /** Data-source display name (a curated name, or a federated provider string). */
32
+ source: string;
33
+ }
34
+ /**
35
+ * Project the source names that contributed to a response into a deduped
36
+ * attribution array. Curated names render first in {@link CURATED_SOURCES} order;
37
+ * any uncurated provider follows, alphabetized, each with an honest fallback entry.
38
+ * The ordering is caller-insertion-independent, so an identical contributing set
39
+ * always renders identically.
40
+ */
41
+ export declare function attributionsFor(sources: Iterable<string>): Attribution[];
42
+ //# sourceMappingURL=attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../../../src/services/shared/attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,2FAQlB,CAAC;AAEX,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CAChB;AA8ED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE,CAQxE"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @fileoverview Upstream data-source attribution — the license and citation each
3
+ * contributing database asks to travel with its data. `protein_get_structure` and
4
+ * `protein_get_annotations` project the sources that actually contributed to a
5
+ * response into a deduped attribution array, so the obligation rides with the data
6
+ * to every downstream consumer rather than living only in repo docs. Curated
7
+ * strings are verified against each source's primary license/citation page.
8
+ * `best_available` structures are federated through 3D-Beacons, an open set of
9
+ * model providers (AlphaFold DB, SWISS-MODEL, BFVD, AlphaFill, …), so an uncurated
10
+ * provider gets an honest fallback entry that asserts no license rather than a
11
+ * fabricated one. Pure data + a projection helper; the Zod output schema and
12
+ * renderer live in the tools' shared `_schemas.ts`.
13
+ * @module services/shared/attribution
14
+ */
15
+ /**
16
+ * Curated data-source display names (verified license + citation), in canonical
17
+ * render order. The structure sources come first (RCSB PDB, then the federated
18
+ * predicted providers), followed by the annotation trio.
19
+ */
20
+ export const CURATED_SOURCES = [
21
+ 'RCSB PDB',
22
+ 'AlphaFold DB',
23
+ 'SWISS-MODEL',
24
+ 'BFVD',
25
+ 'UniProt',
26
+ 'InterPro',
27
+ 'GO',
28
+ ];
29
+ /**
30
+ * Canonical license + citation strings, keyed by source. Verified against each
31
+ * source's primary license/citation page. CC BY / CC BY-SA sources require
32
+ * attribution to travel with redistributed data; CC0 sources are citation-only
33
+ * (attribution encouraged, not required) but carried here so the obligation is
34
+ * legible either way. InterPro's own domain/family data is CC0 — the CC BY 4.0 GO
35
+ * terms carried alongside it are a separate, independently-gated source.
36
+ */
37
+ const ATTRIBUTIONS = {
38
+ 'RCSB PDB': {
39
+ source: 'RCSB PDB',
40
+ license: 'CC0 1.0 Universal',
41
+ citation: 'H.M. Berman et al., "The Protein Data Bank," Nucleic Acids Research 28:235–242 (2000). DOI: 10.1093/nar/28.1.235',
42
+ homepage: 'https://www.rcsb.org/',
43
+ },
44
+ 'AlphaFold DB': {
45
+ source: 'AlphaFold DB',
46
+ license: 'CC BY 4.0',
47
+ citation: 'Jumper et al., "Highly accurate protein structure prediction with AlphaFold," Nature 596:583–589 (2021). DOI: 10.1038/s41586-021-03819-2; Bertoni et al., "AlphaFold Protein Structure Database 2025: a redesigned interface and updated structural coverage," Nucleic Acids Research 54(D1):D358–D362 (2025). DOI: 10.1093/nar/gkaf1226',
48
+ homepage: 'https://alphafold.ebi.ac.uk/',
49
+ },
50
+ 'SWISS-MODEL': {
51
+ source: 'SWISS-MODEL',
52
+ license: 'CC BY-SA 4.0',
53
+ citation: 'Waterhouse et al., "SWISS-MODEL: homology modelling of protein structures and complexes," Nucleic Acids Research 46(W1):W296–W303 (2018). DOI: 10.1093/nar/gky427; Bienert et al., "The SWISS-MODEL Repository—new features and functionality," Nucleic Acids Research 45(D1):D313–D319 (2017). DOI: 10.1093/nar/gkw1132',
54
+ homepage: 'https://swissmodel.expasy.org/',
55
+ },
56
+ BFVD: {
57
+ source: 'BFVD',
58
+ license: 'CC BY 4.0',
59
+ citation: 'Kim et al., "BFVD—a large repository of predicted viral protein structures," Nucleic Acids Research 53(D1):D340–D347 (2025). DOI: 10.1093/nar/gkae1119',
60
+ homepage: 'https://bfvd.steineggerlab.workers.dev/',
61
+ },
62
+ UniProt: {
63
+ source: 'UniProt',
64
+ license: 'CC BY 4.0',
65
+ citation: 'The UniProt Consortium, "UniProt: the Universal Protein Knowledgebase in 2025," Nucleic Acids Research 53(D1):D609–D617 (2025). DOI: 10.1093/nar/gkae1010',
66
+ homepage: 'https://www.uniprot.org/',
67
+ },
68
+ InterPro: {
69
+ source: 'InterPro',
70
+ license: 'CC0 1.0 Universal',
71
+ citation: 'Blum et al., "InterPro: the protein sequence classification resource in 2025," Nucleic Acids Research 53(D1):D444–D456 (2025). DOI: 10.1093/nar/gkae1082',
72
+ homepage: 'https://www.ebi.ac.uk/interpro/',
73
+ },
74
+ GO: {
75
+ source: 'GO',
76
+ license: 'CC BY 4.0',
77
+ citation: 'Ashburner et al., "Gene Ontology: tool for the unification of biology," Nature Genetics 25:25–29 (2000). DOI: 10.1038/75556; Gene Ontology Consortium, "The Gene Ontology knowledgebase in 2026," Nucleic Acids Research 54(D1):D1779–D1792 (2026). DOI: 10.1093/nar/gkaf1292',
78
+ homepage: 'https://geneontology.org/',
79
+ },
80
+ };
81
+ const CURATED_NAMES = new Set(CURATED_SOURCES);
82
+ /**
83
+ * Honest fallback for an uncurated federated provider (AlphaFill, or any 3D-Beacons
84
+ * provider without a verified license entry). Asserts no license — better to point
85
+ * the consumer at the provider's own terms than to fabricate one.
86
+ */
87
+ function fallbackAttribution(source) {
88
+ return {
89
+ source,
90
+ license: 'See provider terms',
91
+ citation: 'Federated via 3D-Beacons — consult the provider for citation and license terms.',
92
+ homepage: 'https://3d-beacons.org/',
93
+ };
94
+ }
95
+ /**
96
+ * Project the source names that contributed to a response into a deduped
97
+ * attribution array. Curated names render first in {@link CURATED_SOURCES} order;
98
+ * any uncurated provider follows, alphabetized, each with an honest fallback entry.
99
+ * The ordering is caller-insertion-independent, so an identical contributing set
100
+ * always renders identically.
101
+ */
102
+ export function attributionsFor(sources) {
103
+ const wanted = new Set(sources);
104
+ const curated = CURATED_SOURCES.filter((s) => wanted.has(s)).map((s) => ATTRIBUTIONS[s]);
105
+ const uncurated = [...wanted]
106
+ .filter((s) => !CURATED_NAMES.has(s))
107
+ .sort()
108
+ .map(fallbackAttribution);
109
+ return [...curated, ...uncurated];
110
+ }
111
+ //# sourceMappingURL=attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../../src/services/shared/attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,SAAS;IACT,UAAU;IACV,IAAI;CACI,CAAC;AAiBX;;;;;;;GAOG;AACH,MAAM,YAAY,GAAuC;IACvD,UAAU,EAAE;QACV,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EACN,kHAAkH;QACpH,QAAQ,EAAE,uBAAuB;KAClC;IACD,cAAc,EAAE;QACd,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,WAAW;QACpB,QAAQ,EACN,0UAA0U;QAC5U,QAAQ,EAAE,8BAA8B;KACzC;IACD,aAAa,EAAE;QACb,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,cAAc;QACvB,QAAQ,EACN,0TAA0T;QAC5T,QAAQ,EAAE,gCAAgC;KAC3C;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,WAAW;QACpB,QAAQ,EACN,wJAAwJ;QAC1J,QAAQ,EAAE,yCAAyC;KACpD;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,WAAW;QACpB,QAAQ,EACN,2JAA2J;QAC7J,QAAQ,EAAE,0BAA0B;KACrC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EACN,0JAA0J;QAC5J,QAAQ,EAAE,iCAAiC;KAC5C;IACD,EAAE,EAAE;QACF,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,WAAW;QACpB,QAAQ,EACN,+QAA+Q;QACjR,QAAQ,EAAE,2BAA2B;KACtC;CACF,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,eAAe,CAAC,CAAC;AAEvD;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO;QACL,MAAM;QACN,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,iFAAiF;QAC3F,QAAQ,EAAE,yBAAyB;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACpC,IAAI,EAAE;SACN,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/protein-mcp-server",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "mcpName": "io.github.cyanheads/protein-mcp-server",
5
5
  "description": "Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/protein-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.2.1",
9
+ "version": "0.3.0",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/protein-mcp-server",
21
21
  "runtimeHint": "node",
22
- "version": "0.2.1",
22
+ "version": "0.3.0",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -48,7 +48,7 @@
48
48
  "registryBaseUrl": "https://registry.npmjs.org",
49
49
  "identifier": "@cyanheads/protein-mcp-server",
50
50
  "runtimeHint": "node",
51
- "version": "0.2.1",
51
+ "version": "0.3.0",
52
52
  "packageArguments": [
53
53
  {
54
54
  "type": "positional",