@cyanheads/cpsc-recalls-mcp-server 0.1.2 → 0.1.4
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 +3 -2
- package/CLAUDE.md +3 -2
- package/Dockerfile +5 -0
- package/README.md +1 -1
- package/changelog/0.1.x/0.1.3.md +31 -0
- package/changelog/0.1.x/0.1.4.md +26 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** cpsc-recalls-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9
|
|
4
|
+
**Version:** 0.1.4
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.9`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
@@ -262,6 +262,7 @@ Available skills:
|
|
|
262
262
|
| `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
|
|
263
263
|
| `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
|
|
264
264
|
| `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
|
|
265
|
+
| `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
|
|
265
266
|
| `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
|
|
266
267
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
267
268
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** cpsc-recalls-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9
|
|
4
|
+
**Version:** 0.1.4
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.9`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
@@ -262,6 +262,7 @@ Available skills:
|
|
|
262
262
|
| `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
|
|
263
263
|
| `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
|
|
264
264
|
| `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
|
|
265
|
+
| `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
|
|
265
266
|
| `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
|
|
266
267
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
267
268
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
package/Dockerfile
CHANGED
|
@@ -37,9 +37,11 @@ WORKDIR /usr/src/app
|
|
|
37
37
|
ENV NODE_ENV=production
|
|
38
38
|
|
|
39
39
|
# OCI image metadata (https://github.com/opencontainers/image-spec/blob/main/annotations.md)
|
|
40
|
+
ARG APP_VERSION
|
|
40
41
|
LABEL org.opencontainers.image.title="cpsc-recalls-mcp-server"
|
|
41
42
|
LABEL org.opencontainers.image.description="MCP server for US consumer product recalls from the Consumer Product Safety Commission — hazards, remedies, and affected products."
|
|
42
43
|
LABEL org.opencontainers.image.licenses="Apache-2.0"
|
|
44
|
+
LABEL org.opencontainers.image.version="${APP_VERSION}"
|
|
43
45
|
LABEL org.opencontainers.image.source="https://github.com/cyanheads/cpsc-recalls-mcp-server"
|
|
44
46
|
|
|
45
47
|
# Copy dependency manifests
|
|
@@ -95,5 +97,8 @@ ENV MCP_FORCE_CONSOLE_LOGGING="true"
|
|
|
95
97
|
# Expose the port the server listens on
|
|
96
98
|
EXPOSE ${MCP_HTTP_PORT}
|
|
97
99
|
|
|
100
|
+
# Health check using a bun-native fetch (slim image ships no curl/wget)
|
|
101
|
+
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 CMD bun -e "fetch('http://localhost:'+(process.env.MCP_HTTP_PORT??'3010')+'/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
|
|
102
|
+
|
|
98
103
|
# The command to start the server
|
|
99
104
|
CMD ["bun", "run", "dist/index.js"]
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/cpsc-recalls-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/cpsc-recalls-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Maintenance: @cyanheads/mcp-ts-core ^0.9.19 → ^0.10.6; explicit name/title identity pair; bundle-content guards + agent-doc strip; Dockerfile healthcheck"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.3 — 2026-06-11
|
|
8
|
+
|
|
9
|
+
Framework and toolchain refresh adopting the `@cyanheads/mcp-ts-core` 0.10.x scaffold improvements. No tool surface or behavior changes — the three CPSC tools are unaffected.
|
|
10
|
+
|
|
11
|
+
## Added
|
|
12
|
+
|
|
13
|
+
- **`name` / `title` identity pair** — `createApp()` now sets both to `cpsc-recalls-mcp-server`, populating `initialize` serverInfo and `/.well-known/mcp.json` with the machine name instead of relying on the scoped npm `name`. Enforced by `lint:packaging` check 9 ([mcp-ts-core #231](https://github.com/cyanheads/mcp-ts-core/issues/231)).
|
|
14
|
+
- **`scripts/clean-mcpb.ts`** — post-pack bundle cleaner wired into the `bundle` script: runs `mcpb clean`, then strips `node_modules/**` agent-doc entries (`skills/`, `.claude/`, `.agents/`, `SKILL.md`) that root-anchored `.mcpbignore` patterns can't reach ([mcp-ts-core #230](https://github.com/cyanheads/mcp-ts-core/issues/230)).
|
|
15
|
+
- **`lint-packaging.ts` checks 5–9** — bundle-content guards (dev dirs excluded at root, no unanchored patterns stripping `node_modules` runtime paths, no critical-path stripping), post-bundle agent-doc content check, and `name`/`title`/`display_name` identity checks ([mcp-ts-core #207](https://github.com/cyanheads/mcp-ts-core/issues/207), [#230](https://github.com/cyanheads/mcp-ts-core/issues/230), [#231](https://github.com/cyanheads/mcp-ts-core/issues/231)).
|
|
16
|
+
- **`coerce-boolean-env-flag` antipattern rule** — `check-framework-antipatterns.ts` now flags `z.coerce.boolean()` (can't be disabled via env: `Boolean("false") === true`), recommending `z.stringbool()`; the scanner skips comment lines so docs naming the pattern don't false-positive ([mcp-ts-core #201](https://github.com/cyanheads/mcp-ts-core/issues/201)).
|
|
17
|
+
- **`Dockerfile` HEALTHCHECK** — `bun -e fetch(...)` against `/healthz` every 30s; no `curl`/`wget` dependency in the slim image ([mcp-ts-core #217](https://github.com/cyanheads/mcp-ts-core/issues/217)).
|
|
18
|
+
- **`orchestrations` and `techniques` skills** — pipeline-chaining workflows and the response/data-shaping pattern catalog, synced from the framework.
|
|
19
|
+
|
|
20
|
+
## Changed
|
|
21
|
+
|
|
22
|
+
- **`Dockerfile` OCI version label** — `org.opencontainers.image.version` stamped from an `APP_VERSION` build arg passed by the release `docker buildx` command ([mcp-ts-core #202](https://github.com/cyanheads/mcp-ts-core/issues/202)).
|
|
23
|
+
- **`.mcpbignore` patterns anchored** — root dev-dir patterns (`/skills/`, `/.claude/`, `/.agents/`, `/Dockerfile`, etc.) re-anchored with a leading `/` so they no longer strip nested `node_modules` runtime paths ([mcp-ts-core #207](https://github.com/cyanheads/mcp-ts-core/issues/207)).
|
|
24
|
+
|
|
25
|
+
## Dependency bumps
|
|
26
|
+
|
|
27
|
+
- `@cyanheads/mcp-ts-core` ^0.9.19 → ^0.10.6
|
|
28
|
+
- `typescript` ^5.9.3 → ^6.0.3 (dev)
|
|
29
|
+
- `@types/node` ^25.6.0 → ^25.9.3 (dev)
|
|
30
|
+
- `@biomejs/biome` ^2.4.7 → ^2.4.16 (dev)
|
|
31
|
+
- `tsc-alias` ^1.8.16 → ^1.8.17 (dev)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Maintenance: @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9; plugin-manifest packaging checks enabled; biome 2.5, @types/node 26, vitest 4.1.9 refresh"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.4 — 2026-06-20
|
|
8
|
+
|
|
9
|
+
Framework and toolchain refresh adopting `@cyanheads/mcp-ts-core` 0.10.7–0.10.9. No tool surface or behavior changes — the three CPSC tools are unaffected.
|
|
10
|
+
|
|
11
|
+
## Added
|
|
12
|
+
|
|
13
|
+
- **`devcheck.config.json` `packaging.pluginManifests: true`** — opts into the framework's new `lint:packaging` check 10, validating `.claude-plugin/plugin.json`, `.codex-plugin/plugin.json`, and `.codex-plugin/mcp.json` for non-empty descriptions, unscoped display fields, and a full-package-name `npx -y` install arg (mcp-ts-core [#240](https://github.com/cyanheads/mcp-ts-core/issues/240)).
|
|
14
|
+
- **`scripts/check-dependency-specifiers.ts`** — new devcheck step synced from the framework; hard-fails on floating dependency specifiers (`latest`, `*`, pre-release dist-tags) in `package.json` and the `bun.lock` workspaces map, catching a `bun update --latest` writing a `latest` dist-tag into the lock (mcp-ts-core [#246](https://github.com/cyanheads/mcp-ts-core/issues/246)).
|
|
15
|
+
|
|
16
|
+
## Changed
|
|
17
|
+
|
|
18
|
+
- **devcheck fresh-scaffold guards** — `build-changelog.ts`, `devcheck.ts`, `check-framework-antipatterns.ts`, and `check-skill-versions.ts` re-synced: changelog `--check` exits cleanly on an empty version tree, git-dependent checks skip when `.git` is absent, and a `SKILL.md` deleted from the worktree no longer crashes the version check (mcp-ts-core [#237](https://github.com/cyanheads/mcp-ts-core/issues/237), [#242](https://github.com/cyanheads/mcp-ts-core/issues/242), [#243](https://github.com/cyanheads/mcp-ts-core/issues/243)).
|
|
19
|
+
- **14 `skills/<name>/SKILL.md` re-synced** — picks up the framework's pre-0.9.18 body drift propagated via `metadata.version` bumps (`api-auth`, `api-errors`, `api-services`, `api-telemetry`, `field-test`, `report-issue-local`, `tool-defs-analysis`) plus the `git-wrapup` v1.4 / `orchestrations` v1.4 guidance updates (mcp-ts-core [#238](https://github.com/cyanheads/mcp-ts-core/issues/238)).
|
|
20
|
+
|
|
21
|
+
## Dependency bumps
|
|
22
|
+
|
|
23
|
+
- `@cyanheads/mcp-ts-core` ^0.10.6 → ^0.10.9
|
|
24
|
+
- `@biomejs/biome` ^2.4.16 → ^2.5.0 (dev)
|
|
25
|
+
- `@types/node` ^25.9.3 → ^26.0.0 (dev)
|
|
26
|
+
- `vitest` ^4.1.8 → ^4.1.9 (dev)
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,8 @@ import { cpscGetRecent } from './mcp-server/tools/definitions/cpsc-get-recent.to
|
|
|
9
9
|
import { cpscSearchRecalls } from './mcp-server/tools/definitions/cpsc-search-recalls.tool.js';
|
|
10
10
|
import { initCpscRecallService } from './services/cpsc-recall/cpsc-recall-service.js';
|
|
11
11
|
await createApp({
|
|
12
|
+
name: 'cpsc-recalls-mcp-server',
|
|
13
|
+
title: 'cpsc-recalls-mcp-server',
|
|
12
14
|
tools: [cpscSearchRecalls, cpscGetRecall, cpscGetRecent],
|
|
13
15
|
resources: [],
|
|
14
16
|
prompts: [],
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEtF,MAAM,SAAS,CAAC;IACd,KAAK,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,aAAa,CAAC;IACxD,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,YAAY,EACV,6DAA6D;QAC7D,8EAA8E;QAC9E,mEAAmE;QACnE,gDAAgD;QAChD,qJAAqJ;IACvJ,KAAK,CAAC,IAAI;QACR,KAAK,IAAI,CAAC;QACV,qBAAqB,EAAE,CAAC;IAC1B,CAAC;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEtF,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,yBAAyB;IAChC,KAAK,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,aAAa,CAAC;IACxD,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,YAAY,EACV,6DAA6D;QAC7D,8EAA8E;QAC9E,mEAAmE;QACnE,gDAAgD;QAChD,qJAAqJ;IACvJ,KAAK,CAAC,IAAI;QACR,KAAK,IAAI,CAAC;QACV,qBAAqB,EAAE,CAAC;IAC1B,CAAC;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/cpsc-recalls-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"mcpName": "io.github.cyanheads/cpsc-recalls-mcp-server",
|
|
5
5
|
"description": "MCP server for US consumer product recalls from the Consumer Product Safety Commission — hazards, remedies, and affected products.",
|
|
6
6
|
"type": "module",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"format:unsafe": "biome check --write --unsafe .",
|
|
32
32
|
"lint:mcp": "bun run scripts/lint-mcp.ts",
|
|
33
33
|
"lint:packaging": "bun run scripts/lint-packaging.ts",
|
|
34
|
-
"bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/cpsc-recalls-mcp-server.mcpb",
|
|
34
|
+
"bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/cpsc-recalls-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/cpsc-recalls-mcp-server.mcpb",
|
|
35
35
|
"changelog:build": "bun run scripts/build-changelog.ts",
|
|
36
36
|
"changelog:check": "bun run scripts/build-changelog.ts --check",
|
|
37
37
|
"release:github": "bun run scripts/release-github.ts",
|
|
@@ -85,17 +85,17 @@
|
|
|
85
85
|
"access": "public"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"@cyanheads/mcp-ts-core": "^0.9
|
|
88
|
+
"@cyanheads/mcp-ts-core": "^0.10.9",
|
|
89
89
|
"pino-pretty": "^13.1.3",
|
|
90
90
|
"zod": "^4.4.3"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
|
-
"@biomejs/biome": "^2.
|
|
94
|
-
"@types/node": "^
|
|
93
|
+
"@biomejs/biome": "^2.5.0",
|
|
94
|
+
"@types/node": "^26.0.0",
|
|
95
95
|
"depcheck": "^1.4.7",
|
|
96
96
|
"ignore": "^7.0.5",
|
|
97
|
-
"tsc-alias": "^1.8.
|
|
98
|
-
"typescript": "^
|
|
99
|
-
"vitest": "^4.1.
|
|
97
|
+
"tsc-alias": "^1.8.17",
|
|
98
|
+
"typescript": "^6.0.3",
|
|
99
|
+
"vitest": "^4.1.9"
|
|
100
100
|
}
|
|
101
101
|
}
|
package/server.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/cpsc-recalls-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.4",
|
|
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/cpsc-recalls-mcp-server",
|
|
21
21
|
"runtimeHint": "bun",
|
|
22
|
-
"version": "0.1.
|
|
22
|
+
"version": "0.1.4",
|
|
23
23
|
"packageArguments": [
|
|
24
24
|
{
|
|
25
25
|
"type": "positional",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
49
49
|
"identifier": "@cyanheads/cpsc-recalls-mcp-server",
|
|
50
50
|
"runtimeHint": "bun",
|
|
51
|
-
"version": "0.1.
|
|
51
|
+
"version": "0.1.4",
|
|
52
52
|
"packageArguments": [
|
|
53
53
|
{
|
|
54
54
|
"type": "positional",
|