Skip to content

Commit 08b189f

Browse files
Add validated tool registry, CMR compact output with Search After cursors, working FIRMS requests, bounded resources, and a tested release pipeline for 1.1.0
1 parent 8d66b2b commit 08b189f

89 files changed

Lines changed: 8855 additions & 12944 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.env.example‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
1-
# Server Configuration
2-
PORT=3000
1+
# Copy to .env (never commit .env). Values here are placeholders.
32

4-
# NASA API Key (Get yours at https://api.nasa.gov/)
3+
# api.nasa.gov key for APOD, NEO, DONKI and Mars Rover Photos.
4+
# Get one at https://api.nasa.gov/ (DEMO_KEY works for light use).
55
NASA_API_KEY=YOUR_NASA_API_KEY
6+
7+
# FIRMS MAP_KEY for nasa_firms (separate from NASA_API_KEY).
8+
# Request one at https://firms.modaps.eosdis.nasa.gov/api/map_key/
9+
FIRMS_MAP_KEY=YOUR_FIRMS_MAP_KEY
10+
11+
# Transport: stdio (default) or http (Streamable HTTP).
12+
MCP_TRANSPORT=stdio
13+
MCP_HTTP_HOST=127.0.0.1
14+
MCP_HTTP_PORT=3000
15+
MCP_HTTP_PATH=/mcp
16+
17+
# Optional CMR override (UAT/SIT). https only, or http on localhost.
18+
# NASA_MCP_CMR_URL=https://cmr.uat.earthdata.nasa.gov/search

‎.eslintrc.json‎

Lines changed: 0 additions & 19 deletions
This file was deleted.

‎.github/workflows/ci.yml‎

Lines changed: 78 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,92 @@ on:
66
pull_request:
77
branches: [main]
88

9-
jobs:
10-
build:
11-
runs-on: ubuntu-latest
9+
permissions:
10+
contents: read
11+
12+
concurrency:
13+
group: ci-${{ github.ref }}
14+
cancel-in-progress: true
1215

16+
jobs:
17+
test:
18+
name: test (${{ matrix.os }}, node ${{ matrix.node }})
19+
runs-on: ${{ matrix.os }}
20+
timeout-minutes: 25
21+
strategy:
22+
fail-fast: false
23+
matrix:
24+
os: [ubuntu-latest, windows-latest]
25+
node: ['22.x', '24.x']
26+
include:
27+
- os: macos-latest
28+
node: '24.x'
1329
steps:
14-
- uses: actions/checkout@v3
30+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
31+
with:
32+
persist-credentials: false
1533

16-
- name: Use Node.js
17-
uses: actions/setup-node@v3
34+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
1835
with:
19-
node-version: '20.x'
20-
cache: 'npm'
36+
node-version: ${{ matrix.node }}
37+
cache: npm
2138

22-
- name: Install dependencies
39+
- name: Install (clean, from lockfile)
2340
run: npm ci
2441

25-
- name: Build
26-
run: npm run build
42+
- name: Lockfile unchanged by install
43+
shell: bash
44+
run: git diff --exit-code -- package-lock.json package.json
2745

2846
- name: Lint
2947
run: npm run lint
3048

31-
- name: Test
32-
run: npm test
49+
- name: Typecheck
50+
run: npm run typecheck
51+
52+
- name: Build from a clean state
53+
run: |
54+
npm run clean
55+
npm run build
56+
57+
- name: Tool docs match the registry
58+
run: npm run docs:check
59+
60+
- name: Tests (unit + stdio/HTTP integration, no network)
61+
run: npm test
62+
63+
- name: Pack
64+
shell: bash
65+
run: |
66+
npm pack --json > pack.json
67+
node -e "const p=require('./pack.json')[0];console.log(p.filename, p.integrity, p.entryCount + ' files')"
68+
69+
- name: Package gate (install tarball outside the repo, run MCP tests against its bin)
70+
shell: bash
71+
run: node scripts/package-smoke.mjs --tarball "$(node -p "require('./pack.json')[0].filename")" --report package-smoke-report.json
72+
73+
- name: Upload package report
74+
if: always()
75+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
76+
with:
77+
name: package-report-${{ matrix.os }}-node${{ matrix.node }}
78+
path: |
79+
pack.json
80+
package-smoke-report.json
81+
if-no-files-found: ignore
82+
83+
audit:
84+
name: production dependency audit
85+
runs-on: ubuntu-latest
86+
timeout-minutes: 10
87+
steps:
88+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
89+
with:
90+
persist-credentials: false
91+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
92+
with:
93+
node-version: '24.x'
94+
cache: npm
95+
- run: npm ci
96+
- name: npm audit (runtime dependencies, high and above)
97+
run: npm audit --omit=dev --audit-level=high

‎.github/workflows/publish.yml‎

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)