@cyanheads/mcp-ts-core 0.13.10 → 0.13.11
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 +6 -3
- package/CLAUDE.md +6 -3
- package/README.md +29 -3
- package/biome.json +1 -1
- package/changelog/0.13.x/0.13.11.md +113 -0
- package/dist/cli/app-render.d.ts +11 -0
- package/dist/cli/app-render.d.ts.map +1 -0
- package/dist/cli/app-render.js +150 -0
- package/dist/cli/app-render.js.map +1 -0
- package/dist/cli/init.d.ts +2 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +10 -2
- package/dist/cli/init.js.map +1 -1
- package/dist/core/context.d.ts +3 -2
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +25 -16
- package/dist/core/context.js.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +18 -7
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
- package/dist/services/mirror/sqlite/handle.d.ts +11 -5
- package/dist/services/mirror/sqlite/handle.d.ts.map +1 -1
- package/dist/services/mirror/sqlite/handle.js +46 -8
- package/dist/services/mirror/sqlite/handle.js.map +1 -1
- package/dist/services/mirror/sqlite/sqliteMirrorStore.d.ts +6 -1
- package/dist/services/mirror/sqlite/sqliteMirrorStore.d.ts.map +1 -1
- package/dist/services/mirror/sqlite/sqliteMirrorStore.js.map +1 -1
- package/dist/testing/apps/browser.d.ts +27 -0
- package/dist/testing/apps/browser.d.ts.map +1 -0
- package/dist/testing/apps/browser.js +162 -0
- package/dist/testing/apps/browser.js.map +1 -0
- package/dist/testing/apps/cdp-pipe.d.ts +79 -0
- package/dist/testing/apps/cdp-pipe.d.ts.map +1 -0
- package/dist/testing/apps/cdp-pipe.js +200 -0
- package/dist/testing/apps/cdp-pipe.js.map +1 -0
- package/dist/testing/apps/csp.d.ts +17 -0
- package/dist/testing/apps/csp.d.ts.map +1 -0
- package/dist/testing/apps/csp.js +50 -0
- package/dist/testing/apps/csp.js.map +1 -0
- package/dist/testing/apps/host-pages.d.ts +47 -0
- package/dist/testing/apps/host-pages.d.ts.map +1 -0
- package/dist/testing/apps/host-pages.js +138 -0
- package/dist/testing/apps/host-pages.js.map +1 -0
- package/dist/testing/apps/index.d.ts +167 -0
- package/dist/testing/apps/index.d.ts.map +1 -0
- package/dist/testing/apps/index.js +36 -0
- package/dist/testing/apps/index.js.map +1 -0
- package/dist/testing/apps/partial-json.d.ts +14 -0
- package/dist/testing/apps/partial-json.d.ts.map +1 -0
- package/dist/testing/apps/partial-json.js +71 -0
- package/dist/testing/apps/partial-json.js.map +1 -0
- package/dist/testing/apps/run.d.ts +13 -0
- package/dist/testing/apps/run.d.ts.map +1 -0
- package/dist/testing/apps/run.js +659 -0
- package/dist/testing/apps/run.js.map +1 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal/logger.d.ts +21 -1
- package/dist/utils/internal/logger.d.ts.map +1 -1
- package/dist/utils/internal/logger.js +31 -14
- package/dist/utils/internal/logger.js.map +1 -1
- package/dist/utils/internal/performance.d.ts +3 -1
- package/dist/utils/internal/performance.d.ts.map +1 -1
- package/dist/utils/internal/performance.js +8 -3
- package/dist/utils/internal/performance.js.map +1 -1
- package/dist/utils/security/sanitization.d.ts +16 -13
- package/dist/utils/security/sanitization.d.ts.map +1 -1
- package/dist/utils/security/sanitization.js +74 -33
- package/dist/utils/security/sanitization.js.map +1 -1
- package/dist/utils/telemetry/attributes.d.ts +7 -1
- package/dist/utils/telemetry/attributes.d.ts.map +1 -1
- package/dist/utils/telemetry/attributes.js +7 -1
- package/dist/utils/telemetry/attributes.js.map +1 -1
- package/framework-skills/add-app-tool/SKILL.md +2 -1
- package/framework-skills/add-test/SKILL.md +15 -15
- package/framework-skills/add-tool/SKILL.md +2 -2
- package/framework-skills/api-config/SKILL.md +11 -2
- package/framework-skills/api-context/SKILL.md +2 -2
- package/framework-skills/api-mirror/SKILL.md +4 -3
- package/framework-skills/api-telemetry/SKILL.md +6 -4
- package/framework-skills/api-testing/SKILL.md +5 -1
- package/framework-skills/api-utils/SKILL.md +3 -3
- package/framework-skills/code-simplifier/SKILL.md +2 -2
- package/framework-skills/field-test/SKILL.md +52 -7
- package/framework-skills/git-wrapup/SKILL.md +2 -2
- package/framework-skills/orchestrations/SKILL.md +1 -1
- package/framework-skills/orchestrations/workflows/greenfield-build.md +2 -2
- package/framework-skills/polish-docs-meta/SKILL.md +4 -3
- package/framework-skills/polish-docs-meta/references/server-json.md +24 -26
- package/framework-skills/release-and-publish/SKILL.md +2 -2
- package/framework-skills/release-pr-review/SKILL.md +5 -5
- package/framework-skills/setup/SKILL.md +2 -2
- package/package.json +37 -22
- package/scripts/devcheck.ts +43 -21
- package/scripts/lint-packaging.ts +91 -1
- package/scripts/prune-musl-packages.ts +146 -0
- package/templates/.github/workflows/codeql.yml +10 -1
- package/templates/Dockerfile +13 -4
- package/templates/_.dockerignore +3 -5
- package/templates/_.gitignore +4 -4
- package/templates/package.json +4 -4
- package/templates/server.json +7 -21
package/AGENTS.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.13.
|
|
4
|
+
**Version:** 0.13.11
|
|
5
5
|
**Engines:** Bun ≥1.4.0, Node ≥24.0.0
|
|
6
|
-
**MCP SDK:** `@modelcontextprotocol/server` ^2.
|
|
6
|
+
**MCP SDK:** `@modelcontextprotocol/server` ^2.2.0 (protocol revisions 2026-07-28 and 2025-*)
|
|
7
7
|
**Zod:** ^4.6.5
|
|
8
8
|
**GitHub:** [cyanheads/mcp-ts-core](https://github.com/cyanheads/mcp-ts-core)
|
|
9
9
|
**npm:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
@@ -61,6 +61,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
|
|
|
61
61
|
| `/services` | `OpenRouterProvider`, `SpeechService`, `createSpeechProvider`, `ElevenLabsProvider`, `WhisperProvider`, `GraphService`, provider interfaces and types | LLM, Speech (TTS/STT), Graph services |
|
|
62
62
|
| `/linter` | `validateDefinitions`, `LintReport`, `LintDiagnostic`, `LintInput`, `LintSeverity` | Definition validation |
|
|
63
63
|
| `/testing` | `createMockContext`, `createMockSession`, `createFetchMock`, `runToolContract`, `createMockLogger`, `getEnrichment`, `getContentBlocks`, `createInMemoryStorage`, `expectInputRequired` | Test kit for handlers and upstream HTTP boundaries |
|
|
64
|
+
| `/testing/apps` | `renderAppTool`, `RenderAppToolOptions`, `AppRenderReport`, `AppRenderStep`, `AppServerTarget`, `AppHostOptions` | Headless MCP Apps host that renders an app tool's `ui://` view and reports on it (optional peers `@modelcontextprotocol/client`, `@modelcontextprotocol/ext-apps`) |
|
|
64
65
|
| `/testing/fuzz` | `fuzzTool`, `fuzzResource`, `fuzzPrompt`, `zodToArbitrary`, `adversarialArbitrary`, `ADVERSARIAL_STRINGS` | Fuzz testing |
|
|
65
66
|
| `/testing/vitest` | `mcpTest`, `toolContractSuite`, `McpTestFixtures` (+ re-exported `/testing` helpers) | Vitest fixtures and tool conformance suites (optional peer `vitest`) |
|
|
66
67
|
|
|
@@ -319,7 +320,7 @@ interface Context {
|
|
|
319
320
|
|
|
320
321
|
### `ctx.log`
|
|
321
322
|
|
|
322
|
-
Opt-in domain-specific logging. Methods: `debug`, `info`, `notice`, `warning`, `error`. Auto-includes `requestId`, `traceId`, `tenantId`, `spanId`. Use `ctx.log` in handlers; global `logger` for startup/shutdown/background.
|
|
323
|
+
Opt-in domain-specific logging. Methods: `debug`, `info`, `notice`, `warning`, `error`. Auto-includes `requestId`, `traceId`, `tenantId`, `spanId`. Each record also reaches the client as `notifications/message` — only at or above `MCP_LOG_LEVEL` (RFC 5424 order; a client's own level can only narrow it), with sensitive fields masked as `[REDACTED]`. Use `ctx.log` in handlers; global `logger` for startup/shutdown/background.
|
|
323
324
|
|
|
324
325
|
### `ctx.state`
|
|
325
326
|
|
|
@@ -535,6 +536,8 @@ it('survives fuzz testing', async () => {
|
|
|
535
536
|
|
|
536
537
|
Options: `numRuns` (valid inputs, default 50), `numAdversarial` (adversarial inputs, default 30), `seed` (reproducibility), `timeout` (per-call ms, default 5000), `ctx` (`MockContextOptions` for stateful handlers). Also exports `zodToArbitrary(schema)` for custom property-based tests and `ADVERSARIAL_STRINGS` for targeted injection testing.
|
|
537
538
|
|
|
539
|
+
**App views:** `renderAppTool` from `/testing/apps` connects to a server as an MCP Apps client, calls an app tool, and renders its `ui://` view in `chrome-headless-shell` inside the spec's double-iframe sandbox and CSP. The report carries `initialized`, `errors`, `cspViolations`, every view↔host `messages` entry, the rendered `text`, and `screenshots`; only setup failures (missing peer, no browser, server unreachable, tool missing, UI resource absent or unreadable, a `_meta.ui.csp` entry that is not a plain origin) throw. `mcp-ts-core app-render` is the CLI form. Needs the optional peers `@modelcontextprotocol/client` and `@modelcontextprotocol/ext-apps`, plus a `chrome-headless-shell` build — the newest in `~/.cache/puppeteer`, or `browserPath` / `MCP_APPS_BROWSER_PATH`; the `field-test` skill covers installing one and reading a report.
|
|
540
|
+
|
|
538
541
|
**Vitest config:** Extend core config, add `@/` alias: `resolve: { alias: { '@/': new URL('./src/', import.meta.url).pathname } }`. Construct deps in `beforeEach`. Re-init services per suite.
|
|
539
542
|
|
|
540
543
|
---
|
package/CLAUDE.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.13.
|
|
4
|
+
**Version:** 0.13.11
|
|
5
5
|
**Engines:** Bun ≥1.4.0, Node ≥24.0.0
|
|
6
|
-
**MCP SDK:** `@modelcontextprotocol/server` ^2.
|
|
6
|
+
**MCP SDK:** `@modelcontextprotocol/server` ^2.2.0 (protocol revisions 2026-07-28 and 2025-*)
|
|
7
7
|
**Zod:** ^4.6.5
|
|
8
8
|
**GitHub:** [cyanheads/mcp-ts-core](https://github.com/cyanheads/mcp-ts-core)
|
|
9
9
|
**npm:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
@@ -61,6 +61,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
|
|
|
61
61
|
| `/services` | `OpenRouterProvider`, `SpeechService`, `createSpeechProvider`, `ElevenLabsProvider`, `WhisperProvider`, `GraphService`, provider interfaces and types | LLM, Speech (TTS/STT), Graph services |
|
|
62
62
|
| `/linter` | `validateDefinitions`, `LintReport`, `LintDiagnostic`, `LintInput`, `LintSeverity` | Definition validation |
|
|
63
63
|
| `/testing` | `createMockContext`, `createMockSession`, `createFetchMock`, `runToolContract`, `createMockLogger`, `getEnrichment`, `getContentBlocks`, `createInMemoryStorage`, `expectInputRequired` | Test kit for handlers and upstream HTTP boundaries |
|
|
64
|
+
| `/testing/apps` | `renderAppTool`, `RenderAppToolOptions`, `AppRenderReport`, `AppRenderStep`, `AppServerTarget`, `AppHostOptions` | Headless MCP Apps host that renders an app tool's `ui://` view and reports on it (optional peers `@modelcontextprotocol/client`, `@modelcontextprotocol/ext-apps`) |
|
|
64
65
|
| `/testing/fuzz` | `fuzzTool`, `fuzzResource`, `fuzzPrompt`, `zodToArbitrary`, `adversarialArbitrary`, `ADVERSARIAL_STRINGS` | Fuzz testing |
|
|
65
66
|
| `/testing/vitest` | `mcpTest`, `toolContractSuite`, `McpTestFixtures` (+ re-exported `/testing` helpers) | Vitest fixtures and tool conformance suites (optional peer `vitest`) |
|
|
66
67
|
|
|
@@ -319,7 +320,7 @@ interface Context {
|
|
|
319
320
|
|
|
320
321
|
### `ctx.log`
|
|
321
322
|
|
|
322
|
-
Opt-in domain-specific logging. Methods: `debug`, `info`, `notice`, `warning`, `error`. Auto-includes `requestId`, `traceId`, `tenantId`, `spanId`. Use `ctx.log` in handlers; global `logger` for startup/shutdown/background.
|
|
323
|
+
Opt-in domain-specific logging. Methods: `debug`, `info`, `notice`, `warning`, `error`. Auto-includes `requestId`, `traceId`, `tenantId`, `spanId`. Each record also reaches the client as `notifications/message` — only at or above `MCP_LOG_LEVEL` (RFC 5424 order; a client's own level can only narrow it), with sensitive fields masked as `[REDACTED]`. Use `ctx.log` in handlers; global `logger` for startup/shutdown/background.
|
|
323
324
|
|
|
324
325
|
### `ctx.state`
|
|
325
326
|
|
|
@@ -535,6 +536,8 @@ it('survives fuzz testing', async () => {
|
|
|
535
536
|
|
|
536
537
|
Options: `numRuns` (valid inputs, default 50), `numAdversarial` (adversarial inputs, default 30), `seed` (reproducibility), `timeout` (per-call ms, default 5000), `ctx` (`MockContextOptions` for stateful handlers). Also exports `zodToArbitrary(schema)` for custom property-based tests and `ADVERSARIAL_STRINGS` for targeted injection testing.
|
|
537
538
|
|
|
539
|
+
**App views:** `renderAppTool` from `/testing/apps` connects to a server as an MCP Apps client, calls an app tool, and renders its `ui://` view in `chrome-headless-shell` inside the spec's double-iframe sandbox and CSP. The report carries `initialized`, `errors`, `cspViolations`, every view↔host `messages` entry, the rendered `text`, and `screenshots`; only setup failures (missing peer, no browser, server unreachable, tool missing, UI resource absent or unreadable, a `_meta.ui.csp` entry that is not a plain origin) throw. `mcp-ts-core app-render` is the CLI form. Needs the optional peers `@modelcontextprotocol/client` and `@modelcontextprotocol/ext-apps`, plus a `chrome-headless-shell` build — the newest in `~/.cache/puppeteer`, or `browserPath` / `MCP_APPS_BROWSER_PATH`; the `field-test` skill covers installing one and reading a report.
|
|
540
|
+
|
|
538
541
|
**Vitest config:** Extend core config, add `@/` alias: `resolve: { alias: { '@/': new URL('./src/', import.meta.url).pathname } }`. Construct deps in `beforeEach`. Re-init services per suite.
|
|
539
542
|
|
|
540
543
|
---
|
package/README.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
<div align="center">
|
|
8
8
|
|
|
9
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://modelcontextprotocol.io/specification/2026-07-28)
|
|
10
10
|
|
|
11
|
-
[](https://modelcontextprotocol.io/) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
12
12
|
|
|
13
13
|
[Quick start](#quick-start) · [Capabilities](#what-comes-with-it) · [API reference](#api-overview) · [Examples](#examples)
|
|
14
14
|
|
|
@@ -304,6 +304,7 @@ import { validateDefinitions } from '@cyanheads/mcp-ts-core/linter';
|
|
|
304
304
|
import { createMockContext } from '@cyanheads/mcp-ts-core/testing';
|
|
305
305
|
import { mcpTest, toolContractSuite } from '@cyanheads/mcp-ts-core/testing/vitest';
|
|
306
306
|
import { fuzzTool, fuzzResource, fuzzPrompt } from '@cyanheads/mcp-ts-core/testing/fuzz';
|
|
307
|
+
import { renderAppTool } from '@cyanheads/mcp-ts-core/testing/apps';
|
|
307
308
|
```
|
|
308
309
|
|
|
309
310
|
See [CLAUDE.md/AGENTS.md](CLAUDE.md) for the complete exports reference.
|
|
@@ -351,6 +352,31 @@ expect(report.prototypePollution).toBe(false);
|
|
|
351
352
|
|
|
352
353
|
It also exports `fuzzResource`, `fuzzPrompt`, `zodToArbitrary`, and `ADVERSARIAL_STRINGS` for custom property-based tests.
|
|
353
354
|
|
|
355
|
+
`/testing/apps` is a headless MCP Apps host. `renderAppTool` connects to your server as an MCP Apps client, calls an app tool, loads its `ui://` view into `chrome-headless-shell` inside the sandbox and CSP the MCP Apps spec prescribes, runs scripted steps against the view, and returns a report:
|
|
356
|
+
|
|
357
|
+
```ts
|
|
358
|
+
import { renderAppTool } from '@cyanheads/mcp-ts-core/testing/apps';
|
|
359
|
+
|
|
360
|
+
const run = await renderAppTool({
|
|
361
|
+
server: { command: 'bun', args: ['run', 'dist/index.js'] }, // or { url }
|
|
362
|
+
tool: 'my_app_tool',
|
|
363
|
+
arguments: { query: 'probe' },
|
|
364
|
+
steps: [{ click: '#action-btn' }, { screenshot: 'after-click' }],
|
|
365
|
+
});
|
|
366
|
+
expect(run.initialized).toBe(true);
|
|
367
|
+
expect(run.errors).toHaveLength(0);
|
|
368
|
+
expect(run.cspViolations).toHaveLength(0);
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
The report also carries every message between the view and the host, the view's rendered text, and the screenshot paths. The same run from the command line, writing `report.json` and the screenshots under `--out`:
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
bunx @cyanheads/mcp-ts-core app-render --tool my_app_tool --args '{"query":"probe"}' \
|
|
375
|
+
--click '#action-btn' --out ./app-run -- bun run dist/index.js
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
It needs the optional peers `@modelcontextprotocol/client` and `@modelcontextprotocol/ext-apps`, and a `chrome-headless-shell` build: the newest one in Puppeteer's cache (`npx @puppeteer/browsers install chrome-headless-shell@stable --path ~/.cache/puppeteer`), or an explicit executable path through `browserPath`, `--browser`, or `MCP_APPS_BROWSER_PATH`. Installed Chrome, Edge, Brave, and Chromium are never searched for.
|
|
379
|
+
|
|
354
380
|
## Documentation
|
|
355
381
|
|
|
356
382
|
- **[CLAUDE.md/AGENTS.md](CLAUDE.md)**: the framework reference, covering exports, patterns, `Context`, error codes, auth, config, and testing. It ships in the npm package, so your agent reads it from `node_modules` after `init`.
|
|
@@ -361,7 +387,7 @@ It also exports `fuzzResource`, `fuzzPrompt`, `zodToArbitrary`, and `ADVERSARIAL
|
|
|
361
387
|
|
|
362
388
|
```bash
|
|
363
389
|
bun run rebuild # clean + build (scripts/clean.ts + scripts/build.ts)
|
|
364
|
-
bun run devcheck # full gate: lint/format, typecheck, MCP defs, framework antipatterns, docs/skills/changelog sync, audit, outdated, secrets
|
|
390
|
+
bun run devcheck # full gate: lint/format, typecheck, MCP defs, packaging, framework antipatterns, docs/skills/changelog sync, audit, outdated, tracked-secrets and to-do marker scans
|
|
365
391
|
bun run lint:mcp # validate MCP definitions against spec
|
|
366
392
|
bun run test:all # rebuild + coverage + Node.js + Workers + integration
|
|
367
393
|
bun run test:package # pack the tarball and consume it as an external project would
|
package/biome.json
CHANGED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "A headless MCP Apps host renders app tool views in tests and from the CLI, ctx.log's mirror to the client honors MCP_LOG_LEVEL and masks sensitive fields, and devcheck's git scans and the scaffold server.json HTTP entry are fixed."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: true
|
|
5
|
+
agent-notes: |
|
|
6
|
+
Adoption steps for a consumer upgrading from 0.13.10.
|
|
7
|
+
|
|
8
|
+
1. Re-sync the framework scripts (maintenance Phase C). devcheck's
|
|
9
|
+
`TODOs/FIXMEs` step now matches: resolve each tracked uppercase `TODO` or
|
|
10
|
+
`FIXME` it reports. `Tracked Secrets` now also catches root-level files
|
|
11
|
+
(`.npmrc`, `credentials.json`, `*.pem`, `.env`, …): `git rm --cached`
|
|
12
|
+
each one and ignore it. A tracked `.github/secret_scanning.yml` now
|
|
13
|
+
passes. `lint-packaging` gains check 16 (step 2), and
|
|
14
|
+
`scripts/prune-musl-packages.ts` arrives (step 5).
|
|
15
|
+
2. Edit `server.json` — upgrading never rewrites it, and the re-synced
|
|
16
|
+
`lint:packaging` fails the old shape. Remove the `run` + `start:*`
|
|
17
|
+
`packageArguments` from each npm entry, set `"runtimeHint": "npx"` (not
|
|
18
|
+
lint-enforced), and add
|
|
19
|
+
`{ "name": "MCP_TRANSPORT_TYPE", "description": "Selects the HTTP transport.", "format": "string", "value": "http" }`
|
|
20
|
+
to the `streamable-http` entry's `environmentVariables` — `value`, not
|
|
21
|
+
`default`.
|
|
22
|
+
3. `.gitignore`: replace the `.env`, `.env.local`, and `.env.*.local` lines
|
|
23
|
+
with `.env*`, `!.env.example`, `!.env.template`, `!.env.sample`.
|
|
24
|
+
`.dockerignore`: replace the enumerated `.env` lines with `.env*`, and add
|
|
25
|
+
`.mcpregistry_github_token` and `.mcpregistry_registry_token`. Then run
|
|
26
|
+
`git ls-files '*.env*'` and `git rm --cached` anything but the three
|
|
27
|
+
templates.
|
|
28
|
+
4. Replace `.github/workflows/codeql.yml` with the scaffold copy. Once the
|
|
29
|
+
default branch has analyses under `/language:actions` and
|
|
30
|
+
`/language:javascript-typescript`, delete the
|
|
31
|
+
`.github/workflows/codeql.yml:analyze` analyses on `refs/heads/main`,
|
|
32
|
+
newest first (`DELETE .../code-scanning/analyses/<id>?confirm_delete=true`);
|
|
33
|
+
a repo that never ran the old workflow has none. A required status check
|
|
34
|
+
named `Analyze` becomes `Analyze (actions)` and
|
|
35
|
+
`Analyze (javascript-typescript)`.
|
|
36
|
+
5. `Dockerfile` `deps` stage: after the OTel step and before the scanner
|
|
37
|
+
`rm`, add `COPY scripts/prune-musl-packages.ts ./scripts/` and
|
|
38
|
+
`RUN bun scripts/prune-musl-packages.ts`. Skip both on a musl (Alpine)
|
|
39
|
+
runtime image.
|
|
40
|
+
6. Mirror servers: remove any `SQLITE_BUSY` retry wrapped around
|
|
41
|
+
`openSqliteHandle`. A failed open now rejects as `DatabaseError` with the
|
|
42
|
+
driver error on `cause` (`err.cause.code`); match on that, not on the raw
|
|
43
|
+
driver error.
|
|
44
|
+
7. Run the skill sync (maintenance Phase A) for the skills listed under
|
|
45
|
+
Changed.
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
# 0.13.11 — 2026-10-03
|
|
49
|
+
|
|
50
|
+
## Added
|
|
51
|
+
|
|
52
|
+
- **`@cyanheads/mcp-ts-core/testing/apps`** ([#623](https://github.com/cyanheads/mcp-ts-core/issues/623)) — `renderAppTool` calls an app tool as an MCP Apps client and renders its `ui://` view in headless `chrome-headless-shell` inside the spec's sandbox and CSP, reporting `initialized`, `errors`, `cspViolations`, `messages`, `text`, and `screenshots`. It throws only on setup failures and needs the optional peers `@modelcontextprotocol/client` and `@modelcontextprotocol/ext-apps`.
|
|
53
|
+
- **`mcp-ts-core app-render`** — the same run from the CLI, writing `report.json` and screenshots under `--out`; it exits 1 only on bad arguments or a setup failure. The `field-test` skill renders every app tool with it (Step 6).
|
|
54
|
+
- **`Logger.isLevelEnabled(level)`** — the level check every sink and the `ctx.log` mirror share, on the RFC 5424 order; `true` before `initialize()`.
|
|
55
|
+
- **`ATTR_MCP_RESOURCE_URI_LENGTH`** — `mcp.resource.uri_length`, exported from `/utils`.
|
|
56
|
+
- **`scripts/prune-musl-packages.ts`** — ships in the package and the scaffold, deleting every installed package whose own `libc` lists `musl` and not `glibc`.
|
|
57
|
+
- **`lint:packaging` check 16** — fails a `server.json` npm entry carrying the `run` + `start:*` arguments, or a `streamable-http` npm entry whose `MCP_TRANSPORT_TYPE` is not `"value": "http"`. devcheck's Packaging step now runs on `server.json` alone.
|
|
58
|
+
|
|
59
|
+
## Changed
|
|
60
|
+
|
|
61
|
+
- **The log level filter compares RFC 5424 severity** — a `notice` floor now drops `info`, `crit` drops `error`, and `emerg` drops `alert` from every sink, where the pino-level comparison let them through.
|
|
62
|
+
- **Skill guidance** — `api-config`: call `getServerConfig()` in `setup()` so a bad value fails startup; `api-mirror`: run a long scheduled sync in a child process; `api-testing`: assert a resource's declared hints through `createWorkerHandler`; `field-test`: start the server with `MCP_LOG_RATE_LIMIT_THRESHOLD=0` to count upstream requests from its log.
|
|
63
|
+
- **Skill corrections** — `add-test`: a cancellation test asserts the work stopped; `add-tool`: keep a tolerated blank out of `.describe()`; `api-mirror`: the lifecycle scripts resolve `@/` only through a `tsconfig.json`, so an npm-installed server cannot run them; `code-simplifier`: `InvalidParams` covers schema rejections and upstream 400s; `git-wrapup`: the npm tarball carries `changelog/`, not the `CHANGELOG.md` rollup; `greenfield-build`: cancel the first private CodeQL run, never delete it.
|
|
64
|
+
- **`release-pr-review` settles a stranded alert by category** — an alert that will not close after its fix is cleared by deleting the retired category's analyses on its ref.
|
|
65
|
+
- Skill versions: `add-app-tool` 1.7 → 1.8, `add-test` 1.8 → 1.9, `add-tool` 2.32 → 2.33, `api-config` 1.23 → 1.24, `api-context` 2.9 → 2.10, `api-mirror` 1.3 → 1.4, `api-telemetry` 1.16 → 1.17, `api-testing` 1.13 → 1.14, `api-utils` 2.14 → 2.15, `code-simplifier` 1.6 → 1.7, `field-test` 2.18 → 2.19, `git-wrapup` 1.27 → 1.28, `orchestrations` 1.12 → 1.13 (workflow `greenfield-build` 1.3 → 1.4), `polish-docs-meta` 2.21 → 2.22, `release-and-publish` 2.23 → 2.24, `release-pr-review` 1.7 → 1.8, `setup` 1.11 → 1.12.
|
|
66
|
+
|
|
67
|
+
## Fixed
|
|
68
|
+
|
|
69
|
+
- **devcheck's `TODOs/FIXMEs` step matches** ([#588](https://github.com/cyanheads/mcp-ts-core/issues/588)) — `git grep -nwE '(TODO|FIXME)'` replaces a `\b` pattern macOS git read as a literal `b`. It is case-sensitive and skips `framework-skills/` and the `.claude`, `.agents`, `.codex`, `.cursor`, and `.windsurf` skill directories.
|
|
70
|
+
- **`Tracked Secrets` catches root-level files** ([#629](https://github.com/cyanheads/mcp-ts-core/issues/629)) — every pattern carries `:(glob)`, so a root `.npmrc`, `credentials.json`, `*.pem`, or `.env` fails the step.
|
|
71
|
+
- **`Tracked Secrets` passes `.github/secret_scanning.yml`** ([#594](https://github.com/cyanheads/mcp-ts-core/issues/594)) — at that exact path only.
|
|
72
|
+
- **The scaffold `server.json` HTTP entry starts HTTP** ([#622](https://github.com/cyanheads/mcp-ts-core/issues/622)) — npm entries drop the `run start:*` arguments a registry client hands the bin, and set `"runtimeHint": "npx"`. The `streamable-http` entry also fixes `MCP_TRANSPORT_TYPE` as `"value": "http"`, and this repo's `server.json` matches.
|
|
73
|
+
- **Scaffold ignore rules cover every env file** ([#589](https://github.com/cyanheads/mcp-ts-core/issues/589)) — `.gitignore` ignores `.env*` except `.env.example`, `.env.template`, and `.env.sample`; `.dockerignore` excludes `.env*` and the MCP registry token files. This repo's own files match.
|
|
74
|
+
- **CodeQL alerts close once fixed** ([#470](https://github.com/cyanheads/mcp-ts-core/issues/470)) — the scaffold and repo workflows run one job per language, uploading under `/language:<language>`, default setup's category. A required `Analyze` check becomes `Analyze (actions)` and `Analyze (javascript-typescript)`.
|
|
75
|
+
- **Docker images drop musl bindings** ([#608](https://github.com/cyanheads/mcp-ts-core/issues/608)) — both Dockerfiles' `deps` stage runs `scripts/prune-musl-packages.ts` after the OTel step, removing musl variants (DuckDB's ~70 MB binding among them) the glibc runtime never loads.
|
|
76
|
+
- **`ctx.log` reaches the client only at or above `MCP_LOG_LEVEL`** ([#621](https://github.com/cyanheads/mcp-ts-core/issues/621)) — `notifications/message` honors the floor on every transport, `silent` included; a client's own level can only narrow it.
|
|
77
|
+
- **`openSqliteHandle` waits out a lock and fails cleanly** ([#607](https://github.com/cyanheads/mcp-ts-core/issues/607)) — `busy_timeout` is set before the first read, and the switch to WAL retries a busy result until `busyTimeoutMs`. A failed open closes the connection and rejects as `DatabaseError`, driver error on `cause` (a missing `better-sqlite3` still throws `ConfigurationError`).
|
|
78
|
+
- **`mcp-ts-core -h` exits 0** — as `--help` does, where it printed the usage and exited 1.
|
|
79
|
+
|
|
80
|
+
## Security
|
|
81
|
+
|
|
82
|
+
- **`ctx.log` masks sensitive fields on the wire** ([#630](https://github.com/cyanheads/mcp-ts-core/issues/630)) — the `notifications/message` payload carries `[REDACTED]` for every sensitive field at any depth, matched as `sanitizeForLogging` matches, fields added through `setSensitiveFields` included. The caller's object is not modified.
|
|
83
|
+
- **A resource read's records and span cap the client's URI** ([#617](https://github.com/cyanheads/mcp-ts-core/issues/617)) — `resourceUri`, `metrics.uri`, and `mcp.resource.uri` carry at most the first 1,024 characters, with `resourceUriLength` / `mcp.resource.uri_length` holding the uncut length when cut. `ctx.uri` and the response keep the full URI.
|
|
84
|
+
|
|
85
|
+
## Dependencies
|
|
86
|
+
|
|
87
|
+
- `@modelcontextprotocol/server` ^2.1.0 → ^2.2.0 (`initialize` and the tool, resource, resource-template, and prompt lists are unchanged on the example server).
|
|
88
|
+
- `@hono/node-server` ^2.1.1 → ^2.1.3.
|
|
89
|
+
- `hono` ^4.13.9 → ^4.13.12.
|
|
90
|
+
- Peer: `@duckdb/node-api` ^1.5.5-r.1 → ^1.5.5-r.1 || ^1.5.6-r.1.
|
|
91
|
+
- Peer (new, optional): `@modelcontextprotocol/client` ^2.1.0, `@modelcontextprotocol/ext-apps` ^2.0.0.
|
|
92
|
+
- Overrides: `brace-expansion` ^2.1.3 → ^2.1.7.
|
|
93
|
+
- Overrides: `fast-uri` ^3.1.6 → ^3.1.8.
|
|
94
|
+
- Overrides: `ip-address` ^10.3.1 → ^10.7.1.
|
|
95
|
+
- Dev (new): `@modelcontextprotocol/ext-apps` ^2.0.3.
|
|
96
|
+
- Dev: `@biomejs/biome` 2.5.14 → 2.5.15.
|
|
97
|
+
- Dev: `@cloudflare/workers-types` 5.20260924.1 → 5.20260930.2.
|
|
98
|
+
- Dev: `@duckdb/node-api` ^1.5.5-r.5 → ^1.5.6-r.1.
|
|
99
|
+
- Dev: `@hono/otel` ^1.1.2 → ^1.2.0.
|
|
100
|
+
- Dev: `@modelcontextprotocol/client` ^2.1.0 → ^2.2.0.
|
|
101
|
+
- Dev: `@supabase/supabase-js` ^2.117.1 → ^2.117.2.
|
|
102
|
+
- Dev: `@types/node` 26.6.2 → 26.6.3.
|
|
103
|
+
- Dev: `@types/sanitize-html` ^2.16.1 → ^2.16.2.
|
|
104
|
+
- Dev: `fast-xml-parser` ^5.11.1 → ^5.11.2.
|
|
105
|
+
- Dev: `ignore` ^7.0.10 → ^7.0.11.
|
|
106
|
+
- Dev: `openai` ^7.23.0 → ^7.25.0.
|
|
107
|
+
- Dev: `sanitize-html` ^2.17.7 → ^2.18.0.
|
|
108
|
+
- Dev: `tsc-alias` ^1.9.5 → ^1.9.7.
|
|
109
|
+
- Dev: `vite` 8.3.0 → 8.3.1.
|
|
110
|
+
- Scaffold dev: `@biomejs/biome` 2.5.14 → 2.5.15.
|
|
111
|
+
- Scaffold dev: `@types/node` 26.6.2 → 26.6.3.
|
|
112
|
+
- Scaffold dev: `ignore` ^7.0.9 → ^7.0.11.
|
|
113
|
+
- Scaffold dev: `tsc-alias` ^1.9.5 → ^1.9.7.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The `app-render` subcommand of the `mcp-ts-core` bin: renders an app
|
|
3
|
+
* tool's view in the headless MCP Apps host, writes `report.json` and screenshots under
|
|
4
|
+
* `--out`, and prints the report. Exits non-zero only on bad arguments or a setup failure
|
|
5
|
+
* (see `renderAppTool`). Loaded on demand from `src/cli/init.ts`.
|
|
6
|
+
* @module src/cli/app-render
|
|
7
|
+
*/
|
|
8
|
+
export declare const APP_RENDER_USAGE = "\n Usage:\n mcp-ts-core app-render --tool <name> [--args '<json>'] [--click <selector>]...\n [--out <dir>] [--browser <path>] [--theme light|dark]\n [--width <px>] [--height <px>] [--stream-input] [--timeout <ms>]\n (--url <url> | -- <command> [args...])\n\n Renders the tool's ui:// view in headless chrome-headless-shell inside the MCP Apps\n sandbox, clicks each --click selector in order (a screenshot after each), and prints\n the report. With --out, writes report.json and the screenshots there.\n\n Browser: --browser, else MCP_APPS_BROWSER_PATH, else the newest chrome-headless-shell\n in Puppeteer's cache. To install one there:\n npx @puppeteer/browsers install chrome-headless-shell@stable --path ~/.cache/puppeteer\n\n Example:\n mcp-ts-core app-render --tool my_app_tool --args '{\"query\":\"probe\"}' \\\n --click '#action-btn' --out ./app-run -- bun run dist/index.js\n";
|
|
9
|
+
/** Run the subcommand with the arguments after `app-render`. Returns the exit code. */
|
|
10
|
+
export declare function appRender(argv: string[]): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=app-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-render.d.ts","sourceRoot":"","sources":["../../src/cli/app-render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,eAAO,MAAM,gBAAgB,w+BAkB5B,CAAC;AAEF,uFAAuF;AACvF,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B/D"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The `app-render` subcommand of the `mcp-ts-core` bin: renders an app
|
|
3
|
+
* tool's view in the headless MCP Apps host, writes `report.json` and screenshots under
|
|
4
|
+
* `--out`, and prints the report. Exits non-zero only on bad arguments or a setup failure
|
|
5
|
+
* (see `renderAppTool`). Loaded on demand from `src/cli/init.ts`.
|
|
6
|
+
* @module src/cli/app-render
|
|
7
|
+
*/
|
|
8
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { parseArgs } from 'node:util';
|
|
11
|
+
export const APP_RENDER_USAGE = `
|
|
12
|
+
Usage:
|
|
13
|
+
mcp-ts-core app-render --tool <name> [--args '<json>'] [--click <selector>]...
|
|
14
|
+
[--out <dir>] [--browser <path>] [--theme light|dark]
|
|
15
|
+
[--width <px>] [--height <px>] [--stream-input] [--timeout <ms>]
|
|
16
|
+
(--url <url> | -- <command> [args...])
|
|
17
|
+
|
|
18
|
+
Renders the tool's ui:// view in headless chrome-headless-shell inside the MCP Apps
|
|
19
|
+
sandbox, clicks each --click selector in order (a screenshot after each), and prints
|
|
20
|
+
the report. With --out, writes report.json and the screenshots there.
|
|
21
|
+
|
|
22
|
+
Browser: --browser, else MCP_APPS_BROWSER_PATH, else the newest chrome-headless-shell
|
|
23
|
+
in Puppeteer's cache. To install one there:
|
|
24
|
+
npx @puppeteer/browsers install chrome-headless-shell@stable --path ~/.cache/puppeteer
|
|
25
|
+
|
|
26
|
+
Example:
|
|
27
|
+
mcp-ts-core app-render --tool my_app_tool --args '{"query":"probe"}' \\
|
|
28
|
+
--click '#action-btn' --out ./app-run -- bun run dist/index.js
|
|
29
|
+
`;
|
|
30
|
+
/** Run the subcommand with the arguments after `app-render`. Returns the exit code. */
|
|
31
|
+
export async function appRender(argv) {
|
|
32
|
+
let options;
|
|
33
|
+
try {
|
|
34
|
+
const parsed = parseCli(argv);
|
|
35
|
+
if (!parsed) {
|
|
36
|
+
console.log(APP_RENDER_USAGE);
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
options = parsed;
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
console.error(`app-render: ${errorMessage(err)}\n${APP_RENDER_USAGE}`);
|
|
43
|
+
return 1;
|
|
44
|
+
}
|
|
45
|
+
const { renderAppTool } = await import('../testing/apps/index.js');
|
|
46
|
+
try {
|
|
47
|
+
const report = await renderAppTool(options);
|
|
48
|
+
const json = JSON.stringify(report, null, 2);
|
|
49
|
+
if (options.outDir) {
|
|
50
|
+
await mkdir(options.outDir, { recursive: true });
|
|
51
|
+
await writeFile(path.join(options.outDir, 'report.json'), `${json}\n`);
|
|
52
|
+
}
|
|
53
|
+
console.log(json);
|
|
54
|
+
return 0;
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
console.error(`app-render: ${errorMessage(err)}`);
|
|
58
|
+
return 1;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** Options from the command line, or undefined for `--help`. */
|
|
62
|
+
function parseCli(argv) {
|
|
63
|
+
const { values, positionals } = parseArgs({
|
|
64
|
+
args: argv,
|
|
65
|
+
allowPositionals: true,
|
|
66
|
+
options: {
|
|
67
|
+
tool: { type: 'string' },
|
|
68
|
+
args: { type: 'string' },
|
|
69
|
+
click: { type: 'string', multiple: true },
|
|
70
|
+
out: { type: 'string' },
|
|
71
|
+
browser: { type: 'string' },
|
|
72
|
+
url: { type: 'string' },
|
|
73
|
+
theme: { type: 'string' },
|
|
74
|
+
width: { type: 'string' },
|
|
75
|
+
height: { type: 'string' },
|
|
76
|
+
'stream-input': { type: 'boolean' },
|
|
77
|
+
timeout: { type: 'string' },
|
|
78
|
+
help: { type: 'boolean', short: 'h' },
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
if (values.help)
|
|
82
|
+
return;
|
|
83
|
+
if (!values.tool)
|
|
84
|
+
throw new Error('--tool is required.');
|
|
85
|
+
let server;
|
|
86
|
+
if (values.url) {
|
|
87
|
+
if (positionals.length > 0)
|
|
88
|
+
throw new Error('Pass either --url or a command after --, not both.');
|
|
89
|
+
server = { url: values.url };
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const [command, ...args] = positionals;
|
|
93
|
+
if (!command)
|
|
94
|
+
throw new Error('Pass the server as --url <url> or as a command after --.');
|
|
95
|
+
server = { command, args, env: inheritedEnv() };
|
|
96
|
+
}
|
|
97
|
+
let args = {};
|
|
98
|
+
if (values.args !== undefined) {
|
|
99
|
+
try {
|
|
100
|
+
args = JSON.parse(values.args);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
throw new Error(`--args is not valid JSON: ${errorMessage(err)}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (args === null || typeof args !== 'object' || Array.isArray(args)) {
|
|
107
|
+
throw new Error('--args must be a JSON object.');
|
|
108
|
+
}
|
|
109
|
+
if (values.theme !== undefined && values.theme !== 'light' && values.theme !== 'dark') {
|
|
110
|
+
throw new Error('--theme must be light or dark.');
|
|
111
|
+
}
|
|
112
|
+
const steps = (values.click ?? []).flatMap((selector, i) => [
|
|
113
|
+
{ click: selector },
|
|
114
|
+
{ screenshot: `click-${i + 1}` },
|
|
115
|
+
]);
|
|
116
|
+
const width = optionalNumber(values.width, '--width');
|
|
117
|
+
const height = optionalNumber(values.height, '--height');
|
|
118
|
+
const timeoutMs = optionalNumber(values.timeout, '--timeout');
|
|
119
|
+
return {
|
|
120
|
+
server,
|
|
121
|
+
tool: values.tool,
|
|
122
|
+
arguments: args,
|
|
123
|
+
steps,
|
|
124
|
+
host: {
|
|
125
|
+
...(values.theme && { theme: values.theme }),
|
|
126
|
+
...(width !== undefined && { width }),
|
|
127
|
+
...(height !== undefined && { height }),
|
|
128
|
+
...(values['stream-input'] && { streamInput: true }),
|
|
129
|
+
},
|
|
130
|
+
...(values.out && { outDir: path.resolve(values.out) }),
|
|
131
|
+
...(values.browser && { browserPath: values.browser }),
|
|
132
|
+
...(timeoutMs !== undefined && { timeoutMs }),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function optionalNumber(value, flag) {
|
|
136
|
+
if (value === undefined)
|
|
137
|
+
return;
|
|
138
|
+
const parsed = Number(value);
|
|
139
|
+
if (!Number.isFinite(parsed) || parsed <= 0)
|
|
140
|
+
throw new Error(`${flag} must be a positive number.`);
|
|
141
|
+
return parsed;
|
|
142
|
+
}
|
|
143
|
+
/** This process's environment, passed to a stdio server so its configuration reaches it. */
|
|
144
|
+
function inheritedEnv() {
|
|
145
|
+
return Object.fromEntries(Object.entries(process.env).filter((entry) => entry[1] !== undefined));
|
|
146
|
+
}
|
|
147
|
+
function errorMessage(err) {
|
|
148
|
+
return err instanceof Error ? err.message : String(err);
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=app-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-render.js","sourceRoot":"","sources":["../../src/cli/app-render.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* @fileoverview CLI entry point for `@cyanheads/mcp-ts-core`. Dispatches subcommands.
|
|
4
|
-
*
|
|
4
|
+
* Supports `init` for scaffolding new consumer projects and `app-render` (loaded on
|
|
5
|
+
* demand) for rendering an app tool's view in the headless MCP Apps host.
|
|
5
6
|
* @module src/cli/init
|
|
6
7
|
*/
|
|
7
8
|
export {};
|
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
|
package/dist/cli/init.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* @fileoverview CLI entry point for `@cyanheads/mcp-ts-core`. Dispatches subcommands.
|
|
4
|
-
*
|
|
4
|
+
* Supports `init` for scaffolding new consumer projects and `app-render` (loaded on
|
|
5
|
+
* demand) for rendering an app tool's view in the headless MCP Apps host.
|
|
5
6
|
* @module src/cli/init
|
|
6
7
|
*/
|
|
7
8
|
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
@@ -37,9 +38,13 @@ const [subcommand] = process.argv.slice(2);
|
|
|
37
38
|
if (subcommand === 'init') {
|
|
38
39
|
init();
|
|
39
40
|
}
|
|
41
|
+
else if (subcommand === 'app-render') {
|
|
42
|
+
const { appRender } = await import('./app-render.js');
|
|
43
|
+
process.exitCode = await appRender(process.argv.slice(3));
|
|
44
|
+
}
|
|
40
45
|
else {
|
|
41
46
|
printUsage();
|
|
42
|
-
process.exit(subcommand === undefined || subcommand === '--help' ? 0 : 1);
|
|
47
|
+
process.exit(subcommand === undefined || subcommand === '--help' || subcommand === '-h' ? 0 : 1);
|
|
43
48
|
}
|
|
44
49
|
function printUsage() {
|
|
45
50
|
console.log(`
|
|
@@ -48,11 +53,14 @@ function printUsage() {
|
|
|
48
53
|
Usage:
|
|
49
54
|
mcp-ts-core init [name] Scaffold a new MCP server project
|
|
50
55
|
Without [name], scaffolds in place (upgrade flow)
|
|
56
|
+
mcp-ts-core app-render ... Render an app tool's view in a headless MCP Apps host
|
|
57
|
+
and print the report (app-render --help for options)
|
|
51
58
|
mcp-ts-core --help, -h Show this help message
|
|
52
59
|
mcp-ts-core init --help Show init help (same output)
|
|
53
60
|
|
|
54
61
|
Examples:
|
|
55
62
|
bunx @cyanheads/mcp-ts-core init my-mcp-server
|
|
63
|
+
bunx @cyanheads/mcp-ts-core app-render --tool my_app_tool -- bun run dist/index.js
|
|
56
64
|
`);
|
|
57
65
|
}
|
|
58
66
|
// ── Init command ──────────────────────────────────────────────────────
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
package/dist/core/context.d.ts
CHANGED
|
@@ -645,8 +645,9 @@ export interface ContextDeps {
|
|
|
645
645
|
uri?: URL | undefined;
|
|
646
646
|
/**
|
|
647
647
|
* Mirrors `ctx.log` onto the MCP wire as `notifications/message`
|
|
648
|
-
* (`ctx.mcpReq.log`)
|
|
649
|
-
*
|
|
648
|
+
* (`ctx.mcpReq.log`) — only a record `logger.isLevelEnabled` admits, with
|
|
649
|
+
* its sensitive fields masked. Absent outside a live request scope; a rejected
|
|
650
|
+
* send is swallowed — a log that cannot flush must never fail the handler.
|
|
650
651
|
*/
|
|
651
652
|
wireLog?: ((level: LoggingLevel, data: unknown) => Promise<void>) | undefined;
|
|
652
653
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EACL,KAAK,aAAa,EAGlB,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
|