@cyanheads/mcp-ts-core 0.9.18 → 0.9.20
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/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/README.md +1 -1
- package/changelog/0.9.x/0.9.19.md +22 -0
- package/changelog/0.9.x/0.9.20.md +27 -0
- package/dist/core/context.d.ts +11 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +17 -4
- package/dist/core/context.js.map +1 -1
- package/dist/linter/rules/error-contract-rules.d.ts +5 -3
- package/dist/linter/rules/error-contract-rules.d.ts.map +1 -1
- package/dist/linter/rules/error-contract-rules.js +11 -5
- package/dist/linter/rules/error-contract-rules.js.map +1 -1
- package/dist/logs/combined.log +4 -0
- package/dist/logs/error.log +2 -0
- package/dist/logs/interactions.log +0 -0
- package/dist/mcp-server/notifications.d.ts +55 -0
- package/dist/mcp-server/notifications.d.ts.map +1 -0
- package/dist/mcp-server/notifications.js +51 -0
- package/dist/mcp-server/notifications.js.map +1 -0
- package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
- package/dist/mcp-server/resources/resource-registration.js +5 -3
- package/dist/mcp-server/resources/resource-registration.js.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +7 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +11 -4
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
- package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
- package/dist/mcp-server/tools/tool-registration.js +6 -3
- package/dist/mcp-server/tools/tool-registration.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +8 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +11 -4
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/types-global/errors.d.ts +30 -5
- package/dist/types-global/errors.d.ts.map +1 -1
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
- package/dist/utils/network/fetchWithTimeout.js +33 -7
- package/dist/utils/network/fetchWithTimeout.js.map +1 -1
- package/dist/utils/network/retry.d.ts +15 -2
- package/dist/utils/network/retry.d.ts.map +1 -1
- package/dist/utils/network/retry.js +20 -0
- package/dist/utils/network/retry.js.map +1 -1
- package/package.json +13 -11
- package/scripts/release-github.ts +187 -0
- package/skills/add-service/SKILL.md +2 -2
- package/skills/add-tool/SKILL.md +30 -3
- package/skills/api-canvas/SKILL.md +16 -2
- package/skills/api-context/SKILL.md +32 -6
- package/skills/api-linter/SKILL.md +3 -3
- package/skills/api-utils/SKILL.md +2 -2
- package/skills/design-mcp-server/SKILL.md +20 -4
- package/skills/orchestrations/SKILL.md +2 -2
- package/skills/orchestrations/workflows/field-test-fix.md +9 -9
- package/skills/orchestrations/workflows/fix-wrapup-release.md +7 -7
- package/skills/orchestrations/workflows/greenfield-build.md +20 -20
- package/skills/orchestrations/workflows/maintenance-release.md +6 -6
- package/skills/release-and-publish/SKILL.md +21 -14
- package/templates/package.json +1 -0
|
@@ -49,15 +49,15 @@ Per target:
|
|
|
49
49
|
|
|
50
50
|
Each phase's Objective column is the goal state per target — the verifiable end state the phase must produce.
|
|
51
51
|
|
|
52
|
-
| # | Phase | Objective | Sub-agent mode |
|
|
53
|
-
|
|
54
|
-
| 1 | Field-test | Per target: live tool/resource/prompt surface exercised across happy/error/edge paths; valid findings filed as GH issues against the server's own repo; noise filtered | parallel fanout per target; within a target, 1 or 3 sub-agents (see below) |
|
|
55
|
-
| 2 | Issue triage | Per-target GH issue count + severity breakdown reconciled against actual GH state | orchestrator (serial) |
|
|
56
|
-
| 3 | Fix | Per target: priority issues fixed in source, tests updated, `devcheck` + `test` green, each issue commented with fix details, working tree dirty for review | parallel fanout (one sub-agent per target — hard constraint) |
|
|
57
|
-
| 4 | Verify | Per target: full diff cold-reviewed; simplified if warranted; each fix re-exercised against the running server with actual tool output in the summary | parallel fanout |
|
|
58
|
-
| 5 | Loop decision | Orchestrator decision recorded — proceed to release, loop another field-test cycle, or pause/surface to user. Evidence-based | orchestrator (serial) |
|
|
59
|
-
| 6 | Wrap-up + release | (Optional) Per target: fixes split into per-file commits with a release commit on top; annotated tag; published per repo visibility; tag annotation is structured markdown with issue backlinks | parallel fanout (Bash git only) |
|
|
60
|
-
| 7 | Issue cleanup | Every GH issue that shipped a fix closed with "Fixed in v\<version\>" comment; skipped issues remain open | orchestrator (serial) |
|
|
52
|
+
| # | Phase | Objective | Sub-agent mode | Gate after |
|
|
53
|
+
|:--|:---|:---|:---|:---|
|
|
54
|
+
| 1 | Field-test | Per target: live tool/resource/prompt surface exercised across happy/error/edge paths; valid findings filed as GH issues against the server's own repo; noise filtered | parallel fanout per target; within a target, 1 or 3 sub-agents (see below) | **barrier** — cross-target synthesis: orchestrator reconciles all findings before filing triage |
|
|
55
|
+
| 2 | Issue triage | Per-target GH issue count + severity breakdown reconciled against actual GH state | orchestrator (serial) | gate-free |
|
|
56
|
+
| 3 | Fix | Per target: priority issues fixed in source, tests updated, `devcheck` + `test` green, each issue commented with fix details, working tree dirty for review | parallel fanout (one sub-agent per target — hard constraint) | gate-free |
|
|
57
|
+
| 4 | Verify | Per target: full diff cold-reviewed; simplified if warranted; each fix re-exercised against the running server with actual tool output in the summary | parallel fanout | **barrier** — orchestrator loop decision (human/evidence-based: proceed, loop, or surface to user) |
|
|
58
|
+
| 5 | Loop decision | Orchestrator decision recorded — proceed to release, loop another field-test cycle, or pause/surface to user. Evidence-based | orchestrator (serial) | **barrier** — release authorization required before advancing |
|
|
59
|
+
| 6 | Wrap-up + release | (Optional) Per target: fixes split into per-file commits with a release commit on top; annotated tag; published per repo visibility; tag annotation is structured markdown with issue backlinks | parallel fanout (Bash git only) | gate-free |
|
|
60
|
+
| 7 | Issue cleanup | Every GH issue that shipped a fix closed with "Fixed in v\<version\>" comment; skipped issues remain open | orchestrator (serial) | — |
|
|
61
61
|
|
|
62
62
|
Phase 6 is optional — stop earlier if release isn't authorized. Phase 7 only runs if Phase 6 ran.
|
|
63
63
|
|
|
@@ -57,13 +57,13 @@ Per target:
|
|
|
57
57
|
|
|
58
58
|
Each phase's Objective column is the goal state per target — the verifiable end state the phase must produce.
|
|
59
59
|
|
|
60
|
-
| # | Phase | Objective | Sub-agent mode |
|
|
61
|
-
|
|
62
|
-
| 1a | Validate (conditional) | Each handoff finding field-tested live; valid ones filed as GH issues; invalidated ones reported back with reason. If zero validate, workflow stops | one sub-agent per target |
|
|
63
|
-
| 1b | Fix | Per target: targeted issues fixed in source, tests updated/added, `devcheck` + `rebuild` + `test` green, each fixed issue commented with fix details, working tree dirty for review | parallel fanout (one sub-agent per target — hard constraint) |
|
|
64
|
-
| 2 | Verify | Per target: full diff cold-reviewed; simplified if warranted; each fix re-exercised against the running server with actual tool output in the summary | parallel fanout |
|
|
65
|
-
| 3 | Wrap-up + release | Per target: fixes split into per-file commits with a release commit on top; annotated tag; published per repo visibility; tag annotation is structured markdown with issue backlinks | parallel fanout (Bash git only) |
|
|
66
|
-
| 4 | Issue cleanup | Every GH issue that shipped a fix closed with "Fixed in v\<version\>" comment | orchestrator (serial) |
|
|
60
|
+
| # | Phase | Objective | Sub-agent mode | Gate after |
|
|
61
|
+
|:--|:---|:---|:---|:---|
|
|
62
|
+
| 1a | Validate (conditional) | Each handoff finding field-tested live; valid ones filed as GH issues; invalidated ones reported back with reason. If zero validate, workflow stops | one sub-agent per target | **barrier** — cross-target synthesis: orchestrator confirms validated findings before fix proceeds (or stops workflow if zero validate) |
|
|
63
|
+
| 1b | Fix | Per target: targeted issues fixed in source, tests updated/added, `devcheck` + `rebuild` + `test` green, each fixed issue commented with fix details, working tree dirty for review | parallel fanout (one sub-agent per target — hard constraint) | **barrier** — orchestrator reviews diffs before verify (explicit gate in checklist) |
|
|
64
|
+
| 2 | Verify | Per target: full diff cold-reviewed; simplified if warranted; each fix re-exercised against the running server with actual tool output in the summary | parallel fanout | **barrier** — orchestrator reviews simplified diff and verified outputs; release authorization required |
|
|
65
|
+
| 3 | Wrap-up + release | Per target: fixes split into per-file commits with a release commit on top; annotated tag; published per repo visibility; tag annotation is structured markdown with issue backlinks | parallel fanout (Bash git only) | gate-free |
|
|
66
|
+
| 4 | Issue cleanup | Every GH issue that shipped a fix closed with "Fixed in v\<version\>" comment | orchestrator (serial) | — |
|
|
67
67
|
|
|
68
68
|
Phase 1a is conditional — only runs when the input is a handoff document or otherwise unvalidated. When the input is already tracked GH issues, skip directly to Phase 1b. The release portion of Phase 3 is conditional on user authorization to ship.
|
|
69
69
|
|
|
@@ -52,26 +52,26 @@ Everything stays at **v0.1.0** through the build. Intermediate commits don't bum
|
|
|
52
52
|
|
|
53
53
|
Each phase's Objective column is the goal state per target — the verifiable end state the phase must produce. Phase notes only appear for orchestration overrides; phases without notes run the foundational skill end-to-end.
|
|
54
54
|
|
|
55
|
-
| # | Phase | Objective | Sub-agent mode |
|
|
56
|
-
|
|
57
|
-
| 1 | Scaffold + repo | `bunx init` scaffold complete; `--private` GH repo created; LICENSE in place; working tree dirty (no commit) | parallel fanout |
|
|
58
|
-
| 2 | Initial commit | v0.1.0 commit + annotated tag + push to private GH repo | parallel fanout |
|
|
59
|
-
| 3 | Design | `docs/design.md` authored with Decisions Log | parallel fanout |
|
|
60
|
-
| 4 | Design validation | `docs/design.md` hardened by review pass; gate sub-agent returned PASS | two sub-agents per target |
|
|
61
|
-
| 5 | Design commit | Design changes committed and pushed | parallel fanout |
|
|
62
|
-
| 6 | Build | All designed tools/resources/prompts implemented; no echo definitions; `devcheck` + `test` green | parallel fanout |
|
|
63
|
-
| 7 | Tool-def audit | `tool-defs-analysis` findings reviewed and applied | parallel fanout |
|
|
64
|
-
| 8 | Test coverage | Tests extended beyond happy path; `devcheck` + `test` green | parallel fanout |
|
|
65
|
-
| 9 | Design ↔ implementation check | Every surface element in `docs/design.md` has a definition (or `docs/design.md` updated to reflect what shipped) | parallel fanout or orchestrator-direct |
|
|
66
|
-
| 10 | Build commit | Build work committed and pushed | parallel fanout |
|
|
67
|
-
| 11 | Field-test loop (optional) | Live API surface exercised; valid findings filed and fixed (or skipped with note) | conditional |
|
|
68
|
-
| 12 | Simplify | `code-simplifier` applied; `devcheck` + `test` green — last source-code modification | parallel fanout |
|
|
69
|
-
| 13 | Polish docs/meta | README, metadata, and agent protocol aligned to gold-standard reference | parallel fanout |
|
|
70
|
-
| 14 | Security pass | `security-pass` findings addressed; no open security gaps | parallel fanout |
|
|
71
|
-
| 15 | Final-state check | `rebuild` + `devcheck` + `test:all` + `lint:packaging` green; LICENSE present; no unfinished TODO/FIXME | orchestrator-direct |
|
|
72
|
-
| 16 | Pre-launch commit | Final polish + security work committed and pushed | parallel fanout |
|
|
73
|
-
| 17 | Final wrap-up | Launch version (typically v0.1.1) commit + annotated tag in place; **not pushed** | parallel fanout (Bash git only) |
|
|
74
|
-
| 18 | Release | Pushed and published per scope; tag annotation renders as structured markdown on GitHub Release; artifacts reachable | parallel fanout or serial (per npm 2FA mode) |
|
|
55
|
+
| # | Phase | Objective | Sub-agent mode | Gate after |
|
|
56
|
+
|:--|:---|:---|:---|:---|
|
|
57
|
+
| 1 | Scaffold + repo | `bunx init` scaffold complete; `--private` GH repo created; LICENSE in place; working tree dirty (no commit) | parallel fanout | gate-free |
|
|
58
|
+
| 2 | Initial commit | v0.1.0 commit + annotated tag + push to private GH repo | parallel fanout | gate-free |
|
|
59
|
+
| 3 | Design | `docs/design.md` authored with Decisions Log | parallel fanout | gate-free |
|
|
60
|
+
| 4 | Design validation | `docs/design.md` hardened by review pass; gate sub-agent returned PASS | two sub-agents per target | **barrier** — gate sub-agent must return PASS (or FAIL → fix loop) before build proceeds |
|
|
61
|
+
| 5 | Design commit | Design changes committed and pushed | parallel fanout | gate-free |
|
|
62
|
+
| 6 | Build | All designed tools/resources/prompts implemented; no echo definitions; `devcheck` + `test` green | parallel fanout | **barrier** — orchestrator inspects each target and spawns finish sub-agents for incomplete work (cross-target synthesis) |
|
|
63
|
+
| 7 | Tool-def audit | `tool-defs-analysis` findings reviewed and applied | parallel fanout | gate-free |
|
|
64
|
+
| 8 | Test coverage | Tests extended beyond happy path; `devcheck` + `test` green | parallel fanout | gate-free |
|
|
65
|
+
| 9 | Design ↔ implementation check | Every surface element in `docs/design.md` has a definition (or `docs/design.md` updated to reflect what shipped) | parallel fanout or orchestrator-direct | gate-free |
|
|
66
|
+
| 10 | Build commit | Build work committed and pushed | parallel fanout | gate-free |
|
|
67
|
+
| 11 | Field-test loop (optional) | Live API surface exercised; valid findings filed and fixed (or skipped with note) | conditional | gate-free |
|
|
68
|
+
| 12 | Simplify | `code-simplifier` applied; `devcheck` + `test` green — last source-code modification | parallel fanout | gate-free |
|
|
69
|
+
| 13 | Polish docs/meta | README, metadata, and agent protocol aligned to gold-standard reference | parallel fanout | gate-free |
|
|
70
|
+
| 14 | Security pass | `security-pass` findings addressed; no open security gaps | parallel fanout | gate-free |
|
|
71
|
+
| 15 | Final-state check | `rebuild` + `devcheck` + `test:all` + `lint:packaging` green; LICENSE present; no unfinished TODO/FIXME | orchestrator-direct | gate-free |
|
|
72
|
+
| 16 | Pre-launch commit | Final polish + security work committed and pushed | parallel fanout | **barrier** — human decision: version-bump intent (typically v0.1.1) |
|
|
73
|
+
| 17 | Final wrap-up | Launch version (typically v0.1.1) commit + annotated tag in place; **not pushed** | parallel fanout (Bash git only) | **barrier** — release authorization required before push and publish |
|
|
74
|
+
| 18 | Release | Pushed and published per scope; tag annotation renders as structured markdown on GitHub Release; artifacts reachable | parallel fanout or serial (per npm 2FA mode) | — |
|
|
75
75
|
|
|
76
76
|
Phase 11 is optional. Phase 12 is the last phase that modifies source code — everything after is docs/metadata/verification.
|
|
77
77
|
|
|
@@ -46,12 +46,12 @@ Per target:
|
|
|
46
46
|
|
|
47
47
|
Each phase's Objective column is the goal state per target — the verifiable end state the phase must produce.
|
|
48
48
|
|
|
49
|
-
| # | Phase | Objective | Sub-agent mode |
|
|
50
|
-
|
|
51
|
-
| 1 | Maintenance | Per target: deps updated, framework adoption applied, project skills synced, `rebuild` + `devcheck` + `test` green, Step 8 numbered summary returned | parallel fanout |
|
|
52
|
-
| 2 | Double-check | Adoption gaps from Phase 1 fixed; `manifest.json`/`server.json` content validated; audience compliance verified; `rebuild` + `devcheck` + `test` green | parallel fanout |
|
|
53
|
-
| 3 | Roll-up | Per-target headlines + cross-target patterns surfaced to user; version-bump intent confirmed (patch/minor/major) | orchestrator (serial) |
|
|
54
|
-
| 4 | Wrap-up + release | Per target: version-bumped commit + annotated tag + push + publish per scope; tag annotation renders as structured markdown on GitHub Release | parallel fanout (Bash git only) |
|
|
49
|
+
| # | Phase | Objective | Sub-agent mode | Gate after |
|
|
50
|
+
|:--|:---|:---|:---|:---|
|
|
51
|
+
| 1 | Maintenance | Per target: deps updated, framework adoption applied, project skills synced, `rebuild` + `devcheck` + `test` green, Step 8 numbered summary returned | parallel fanout | gate-free |
|
|
52
|
+
| 2 | Double-check | Adoption gaps from Phase 1 fixed; `manifest.json`/`server.json` content validated; audience compliance verified; `rebuild` + `devcheck` + `test` green | parallel fanout | **barrier** — cross-target synthesis: orchestrator roll-up + human decision on version-bump intent |
|
|
53
|
+
| 3 | Roll-up | Per-target headlines + cross-target patterns surfaced to user; version-bump intent confirmed (patch/minor/major) | orchestrator (serial) | **barrier** — release authorization required before wrap-up and publish |
|
|
54
|
+
| 4 | Wrap-up + release | Per target: version-bumped commit + annotated tag + push + publish per scope; tag annotation renders as structured markdown on GitHub Release | parallel fanout (Bash git only) | — |
|
|
55
55
|
|
|
56
56
|
Phase 4 combines wrap-up and release in one sub-agent because the work is sequential and shares context (version, changelog, tag annotation). The sub-agent reads both Tier 1 skills.
|
|
57
57
|
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Ship a release end-to-end across every registry the project targets (npm, MCP Registry, GitHub Releases for `.mcpb` bundles, GHCR). Runs the final verification gate, pushes commits and tags, then publishes to each applicable destination. Assumes git wrapup (version bumps, changelog, commit, annotated tag) is already complete — this skill is the post-wrapup publish workflow. Retries transient network failures on publish steps; halts with a partial-state report when retries are exhausted or the failure is terminal.
|
|
5
5
|
metadata:
|
|
6
6
|
author: cyanheads
|
|
7
|
-
version: "2.
|
|
7
|
+
version: "2.8"
|
|
8
8
|
audience: external
|
|
9
9
|
type: workflow
|
|
10
10
|
---
|
|
@@ -127,34 +127,41 @@ security add-generic-password -a "$USER" -s mcp-publisher-github-pat -w
|
|
|
127
127
|
|
|
128
128
|
Halt on any publisher error other than "cannot publish duplicate version".
|
|
129
129
|
|
|
130
|
-
### 6.
|
|
130
|
+
### 6. Create GitHub Release
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
Build the bundle, then create a Release on the existing annotated tag and attach the `.mcpb`. The Release sits on top of the tag from wrapup — `--verify-tag` enforces that the tag already exists on the remote and prevents `gh` from creating a lightweight tag that would shadow the annotated one. `--notes-from-tag` pulls the tag annotation body as release notes. `--title` sets the release title from the tag subject — `--notes-from-tag` alone does NOT set the title (it defaults to the bare tag name, e.g. "v0.1.8" with no theme). The tag subject already omits the version number per the git-wrapup skill, so prepending `v<VERSION>:` produces the correct display title.
|
|
132
|
+
For all projects (including those without `manifest.json`):
|
|
135
133
|
|
|
136
134
|
```bash
|
|
137
|
-
bun run
|
|
138
|
-
SUBJECT=$(git tag -l --format='%(contents:subject)' v<VERSION>)
|
|
139
|
-
gh release create v<VERSION> --verify-tag --notes-from-tag --title "v<VERSION>: $SUBJECT" dist/*.mcpb
|
|
135
|
+
bun run release:github
|
|
140
136
|
```
|
|
141
137
|
|
|
142
|
-
The
|
|
138
|
+
The script (`scripts/release-github.ts`) handles everything in one command:
|
|
139
|
+
|
|
140
|
+
- Reads `version` from `package.json`
|
|
141
|
+
- Derives the tag subject via `git for-each-ref refs/tags/v<version>`
|
|
142
|
+
- Runs `gh release create v<version> --verify-tag --notes-from-tag --title "v<version>: <subject>"`
|
|
143
|
+
- Attaches `dist/*.mcpb` when `manifest.json` exists (skip the `bun run bundle` step first if not already built — see below)
|
|
144
|
+
- On "release already exists" (re-invocation after a prior partial run): uploads/clobbers the `.mcpb` asset (if applicable) and patches the title via `gh release edit`
|
|
143
145
|
|
|
144
|
-
If
|
|
146
|
+
**If `manifest.json` exists**, build the bundle first so the asset is ready:
|
|
145
147
|
|
|
146
148
|
```bash
|
|
147
|
-
|
|
149
|
+
bun run bundle # produces dist/<name>.mcpb (stable filename, no version)
|
|
150
|
+
bun run release:github # attach + release in one step
|
|
148
151
|
```
|
|
149
152
|
|
|
150
|
-
|
|
153
|
+
The stable filename matters: it lets the README "Install in Claude Desktop" badge point at `releases/latest/download/<name>.mcpb` and always resolve to the most recent release. The `bundle` script in the templates outputs `dist/{{PACKAGE_NAME}}.mcpb` for this reason.
|
|
154
|
+
|
|
155
|
+
Deterministic download URLs (for MCPB projects):
|
|
151
156
|
|
|
152
157
|
- Pinned to this version: `https://github.com/<OWNER>/<REPO>/releases/download/v<VERSION>/<name>.mcpb`
|
|
153
158
|
- Always latest (powers the install badge): `https://github.com/<OWNER>/<REPO>/releases/latest/download/<name>.mcpb`
|
|
154
159
|
|
|
155
160
|
If `server.json` includes an MCPB `packages[]` entry, its `identifier` should match this URL and `fileSha256` should match `shasum -a 256 <bundle>` — keep these in sync during wrapup, not here.
|
|
156
161
|
|
|
157
|
-
|
|
162
|
+
**Framework note:** `mcp-ts-core` has no `manifest.json` — the bundle attach path is skipped automatically. Skip the Docker build/push step too (this framework package is consumed via npm, not as a container image).
|
|
163
|
+
|
|
164
|
+
Halt on any non-zero exit not handled by the script's built-in fallback.
|
|
158
165
|
|
|
159
166
|
### 7. Publish Docker image
|
|
160
167
|
|
|
@@ -206,7 +213,7 @@ If any check fails, halt and report which destination is unreachable. A successf
|
|
|
206
213
|
- [ ] Tags pushed to origin
|
|
207
214
|
- [ ] `bun publish --access public` succeeds
|
|
208
215
|
- [ ] `bun run publish-mcp` succeeds (if `server.json` present)
|
|
209
|
-
- [ ] `bun run bundle`
|
|
216
|
+
- [ ] `bun run bundle` (if `manifest.json` present) + `bun run release:github` succeeds
|
|
210
217
|
- [ ] Docker buildx multi-arch push succeeds (if `Dockerfile` present)
|
|
211
218
|
- [ ] All published artifacts verified reachable (npm, MCP Registry, GH Release asset, GHCR manifest)
|
|
212
219
|
- [ ] On re-invocation: idempotent-success signals recognized for already-published destinations
|
package/templates/package.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"bundle": "npm run build && npx -y @anthropic-ai/mcpb pack . dist/{{PACKAGE_NAME}}.mcpb",
|
|
34
34
|
"changelog:build": "tsx scripts/build-changelog.ts",
|
|
35
35
|
"changelog:check": "tsx scripts/build-changelog.ts --check",
|
|
36
|
+
"release:github": "tsx scripts/release-github.ts",
|
|
36
37
|
"test": "vitest run",
|
|
37
38
|
"start": "node dist/index.js",
|
|
38
39
|
"start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
|