nds-mcp 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Nuclear Data Services MCP server — offline SQLite-backed nuclear physics data for AI agents.
|
|
4
4
|
|
|
5
|
-
Provides 12 tools covering atomic masses (AME2020), nuclear properties (NUBASE2020), charge radii (IAEA + laser spectroscopy), energy levels and gamma transitions (ENSDF), and bibliographic references.
|
|
5
|
+
Provides 12 tools covering atomic masses (AME2020), nuclear properties (NUBASE2020), charge radii (IAEA + laser spectroscopy), energy levels and gamma transitions (ENSDF), light nuclei resonance data (TUNL, A=3–20), and bibliographic references.
|
|
6
6
|
|
|
7
7
|
## Quick Start
|
|
8
8
|
|
|
@@ -98,6 +98,7 @@ The server communicates over stdin/stdout (MCP protocol). Diagnostic messages go
|
|
|
98
98
|
| IAEA (Angeli & Marinova 2013) | `charge_radii` | RMS charge radii |
|
|
99
99
|
| Li et al. 2021 | `laser_radii`, `laser_radii_refs` | Laser spectroscopy charge radii with per-isotope references |
|
|
100
100
|
| ENSDF | `ensdf_levels`, `ensdf_gammas`, `ensdf_decay_feedings`, `ensdf_datasets`, `ensdf_references` | Nuclear structure: levels, gamma transitions, decay feedings |
|
|
101
|
+
| TUNL | `tunl_levels` | Light nuclei (A=3–20) energy levels, resonance widths, isospin, decay modes (59 nuclides, 2512 levels) |
|
|
101
102
|
|
|
102
103
|
## Tools
|
|
103
104
|
|
|
@@ -111,7 +112,7 @@ The server communicates over stdin/stdout (MCP protocol). Diagnostic messages go
|
|
|
111
112
|
| `nds_get_decay` | Decay info: half-life, spin/parity, decay modes (NUBASE2020) |
|
|
112
113
|
| `nds_get_charge_radius` | Nuclear charge radii with laser spectroscopy provenance |
|
|
113
114
|
| `nds_search` | Search nuclides by property range (half-life, mass excess) |
|
|
114
|
-
| `nds_query_levels` | Nuclear energy levels from ENSDF |
|
|
115
|
+
| `nds_query_levels` | Nuclear energy levels from ENSDF + TUNL (auto-merged for A ≤ 20, with `source` discriminator) |
|
|
115
116
|
| `nds_query_gammas` | Gamma-ray transitions from ENSDF |
|
|
116
117
|
| `nds_query_decay_feedings` | Beta/EC decay feeding patterns from ENSDF |
|
|
117
118
|
| `nds_lookup_reference` | ENSDF/NSR bibliographic references |
|
|
@@ -178,6 +179,7 @@ Raw data files needed in `--data-dir`:
|
|
|
178
179
|
- `charge_radii.csv` — IAEA charge radii
|
|
179
180
|
- `laser_radii/Radii.tex` — Li et al. 2021 laser spectroscopy radii
|
|
180
181
|
- `ensdf/ensdf.001` ... `ensdf.294` — ENSDF data files
|
|
182
|
+
- `tunl/*.txt` — TUNL energy level tables (pdftotext output from nucldata.tunl.duke.edu)
|
|
181
183
|
|
|
182
184
|
Download AME/NUBASE from https://www-nds.iaea.org/amdc/.
|
|
183
185
|
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import './utils/stdioHygiene.js';
|
|
3
|
-
import * as path from 'path';
|
|
4
3
|
import { fileURLToPath } from 'url';
|
|
4
|
+
import { realpathSync } from 'fs';
|
|
5
5
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
6
6
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
7
7
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
@@ -10,7 +10,7 @@ import { ensureNdsDb } from './db/ensureDb.js';
|
|
|
10
10
|
const TOOL_MODE = process.env.NDS_TOOL_MODE === 'full' ? 'full' : 'standard';
|
|
11
11
|
const server = new Server({
|
|
12
12
|
name: 'nds-mcp',
|
|
13
|
-
version: '0.1.
|
|
13
|
+
version: '0.1.1',
|
|
14
14
|
}, {
|
|
15
15
|
capabilities: {
|
|
16
16
|
tools: {},
|
|
@@ -38,7 +38,7 @@ async function main() {
|
|
|
38
38
|
}
|
|
39
39
|
const isExecutedAsScript = (() => {
|
|
40
40
|
try {
|
|
41
|
-
const entryPath = process.argv[1] ?
|
|
41
|
+
const entryPath = process.argv[1] ? realpathSync(process.argv[1]) : '';
|
|
42
42
|
const modulePath = fileURLToPath(import.meta.url);
|
|
43
43
|
return entryPath === modulePath;
|
|
44
44
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAyB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,SAAS,GAAqB,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;AAE/F,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,OAAO,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAClD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE;IAC/B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,SAAS,KAAK,UAAU,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,IAAI,kBAAkB,EAAE,CAAC;IACvB,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nds-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Nuclear Data Services MCP server — offline SQLite-backed nuclear physics data queries",
|
|
5
5
|
"author": "Feng-Kun Guo",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"bin": {
|
|
21
|
-
"nds-mcp": "./
|
|
21
|
+
"nds-mcp": "./bin/nds-mcp.js"
|
|
22
22
|
},
|
|
23
23
|
"files": [
|
|
24
24
|
"dist",
|