From 2d4311a25d73d12be387b9837faa75a95e0f4a26 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Mon, 26 Jan 2026 14:30:00 +0000 Subject: [PATCH] chore: bump version to 0.4.2 (#334) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adding a simple (bad) pdf icon for directory (#330) * chore: bump version to 0.4.2 - Update package version from 0.4.1 to 0.4.2 - Pin @types/node to 22.10.0 for dev compatibility - Override seroval to ^1.4.1 to fix security vulnerabilities - Use '*' for workspace SDK dependency (works with unpublished versions) * fix(e2e): update Map Server display name to CesiumJS Map Server (#324) * fix(test): update map-server test to expect 'CesiumJS Map Server' The server name was renamed but the E2E test config was not updated. * fix: change in another file --------- Co-authored-by: Claude Co-authored-by: Olivier Chafik * feat(server): add getUiCapability helper for capability negotiation (#313) * feat(server): add hasUiSupport/getUiCapability for experimental+extensions Support double-tagging for MCP Apps capability negotiation: - Check both experimental and extensions fields in client capabilities - Add hasUiSupport() to easily check if client supports MCP Apps - Add getUiCapability() to retrieve the capability settings - Update spec to document both capability locations This enables forward compatibility as MCP transitions from experimental to the extensions field (SEP-1724). Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%) Claude-Steers: 0 Claude-Permission-Prompts: 0 Claude-Escapes: 0 * fix: update @types/node version in package-lock.json Replace invalid 22.19.5/22.19.6/22.19.7 versions with valid 22.19.3 * docs(spec): clarify hosts SHOULD double-tag, servers SHOULD check both - Hosts SHOULD advertise capabilities in both experimental and extensions - Servers SHOULD check both locations, preferring extensions when present - Updated example to show double-tagging pattern * chore: remove double-tagging recommendation, keep hasUiSupport helper Reverts the spec changes that recommended clients double-tag capabilities in both experimental and extensions fields. The helper functions remain as they're useful for checking capability in either location. * refactor(server): simplify to only getUiCapability, remove hasUiSupport - Remove hasUiSupport function (use getUiCapability directly) - Remove double-tagging logic (only check extensions field) - Add ClientCapabilitiesWithExtensions type using SDK's ClientCapabilities - Update spec to use getUiCapability - Simplify tests * fix: update @see link to getUiCapability * refactor(server): inline ClientCapabilitiesWithExtensions type in getUiCapability * refactor: move McpUiClientCapabilities to spec.types.ts * fix: update playwright docker image to v1.58.0 * fix: use -i instead of -it for docker commands (no TTY needed) * fix: Python server dependency resolution and Docker host validation (#333) * fix(say-server): add --index flag to uv run for PyPI resolution The pocket-tts dependency wasn't resolving without explicit --index flag when invoked via npm scripts. * fix(qr-server): allow Docker bridge IP in transport security Add 172.17.0.1:* to allowed_hosts to fix 421 Misdirected Request errors when the server is accessed from Docker containers. * feat(basic-host): Add theme toggle and MCP style variables (#336) * feat(basic-host): add theme toggle and MCP style variables Add theme support to basic-host example: - theme.ts: Global theme manager with light/dark toggle - host-styles.ts: Full set of MCP CSS variables using light-dark() - ThemeToggle component with sun/moon icons - Theme-aware CSS using CSS custom properties - Pass theme + styles to apps via hostContext - Notify apps when theme changes via sendHostContextChange Apps now receive: - hostContext.theme: 'light' | 'dark' - hostContext.styles.variables: All 60+ MCP CSS variables - onhostcontextchanged notifications when theme changes * test: update e2e goldens for theme changes * [MCP Apps] Add appCapabilities.availableDisplayModes documentation to spec (#331) * Add appCapabilities.availableDisplayModes documentation to spec Document the availableDisplayModes field in McpUiAppCapabilities that allows apps to declare which display modes they support. This enables hosts to compute the intersection of host and app capabilities and only offer appropriate display mode controls. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Address PR review feedback - Change "Guest UI" to "View" terminology - Add "View" prefix to availableDisplayModes heading for disambiguation - Remove intersection logic - host only checks its own supported modes - Remove assumption that apps must support inline mode - Simplify host behavior to honor/reject based on its own capabilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Add appCapabilities.availableDisplayModes to types - Add `availableDisplayModes` field to `McpUiAppCapabilities` so apps can declare which display modes they support - Change `HostContext.availableDisplayModes` type from `string[]` to `McpUiDisplayMode[]` for type safety - Regenerate schemas 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Address Olivier's feedback - consolidate display mode docs - Remove separate "App Capabilities" section for availableDisplayModes - Add display mode requirements to existing ui/request-display-mode section: - Host MUST NOT switch View to mode not in appCapabilities.availableDisplayModes - Host MAY decline requests from Views that didn't declare modes - View MUST declare supported modes during initialization 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Restore McpUiAppCapabilities docs and fix display mode clause - Restore McpUiAppCapabilities interface documentation with availableDisplayModes - Restore "View MUST check if the requested mode is in availableDisplayModes from host context" clause that was accidentally removed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Create unified Display Modes section Consolidate all display mode documentation into a single section: - Display mode types (inline, fullscreen, pip) - Declaring support from View (appCapabilities.availableDisplayModes) - Declaring support from Host (HostContext.availableDisplayModes) - Requesting changes (ui/request-display-mode) - Notifying changes (ui/notifications/host-context-changed) - All MUST/SHOULD requirements for View and Host behavior The ui/request-display-mode in Requests section now references the Display Modes section for behavior details. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Remove mode coercion clause from display modes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Regenerate schemas with correct version 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --------- Co-authored-by: Claude * feat(say-server): add light/dark theme support (#338) - Add importmap entry for main SDK exports (applyDocumentTheme, etc.) - Import and apply host theme and styles on context changes - Apply initial host context theme/styles when app connects - Update CSS to use [data-theme="dark"] selector for host-provided themes - Keep @media prefers-color-scheme as fallback for standalone mode - Add color-scheme meta tag for native element theming * fix: followup app -> view terminology (#339) * chore: husky env fix, version pins, update-lock:docker script (#341) * fix(husky): load Node.js env for GUI apps + add update-lock:docker script Cherry-picked non-e2e changes from ochafik/fix-e2e-flaky-tests: - Load nvm/fnm/volta/homebrew paths in pre-commit for GitHub Desktop - Add update-lock:docker script to regenerate lockfile with public registry * pin package versions for dev compatibility - solid-js: 1.9.10 - caniuse-lite: 1.0.30001763 - cheerio: 1.1.2 - electron-to-chromium: 1.5.267 - @playwright/test: 1.57.0 - playwright: 1.57.0 - playwright-core: 1.57.0 * regen * fix: pin @types/node to existing version and regenerate lockfile - Fix @types/node 20.19.28 -> 20.19.27 (typo, version didn't exist) - Regenerate package-lock.json to resolve versions available on both public npm and Anthropic artifactory registries * fix(basic-server-solid): bump solid-js 1.9.10 -> 1.9.11 to fix seroval vulnerabilities * fix: pin seroval to 1.4.1 for dev compatibility * Refactor server startup functions Rename `startServer` to `startStreamableHTTPServer` and add a new `startStdioServer` helper to make the transport type explicit. Remove the `ServerOptions` interface in favor of reading `PORT` directly from the environment inside the function (defaulting to `3001`). Also update Python examples to default to port `3001` for consistency. Co-Authored-By: Claude Opus 4.5 * Support full-file inclusion in synced code snippets Previously, the script only supported extracting regions from `.ts/.tsx` files using the `#regionName` syntax. Now it also supports including entire files without a region specifier, enabling sync of any file type (JSON, YAML, shell scripts, etc.) into documentation. Changes: - Make `#regionName` optional in the `source=""` attribute - Accept any fence language (not just `ts`/`tsx`) - Simplify cache to flat map with composite keys - Add validation error for region extraction on non-TypeScript files Co-Authored-By: Claude Opus 4.5 * Rewrite Quickstart guide with type-checked code examples Rewrites the Quickstart tutorial to provide a more focused, step-by-step introduction to building MCP Apps. The guide now uses synced code fences that pull from `examples/quickstart/`, ensuring all code shown in the documentation is type-checked and tested. Key improvements: - Clearer project setup instructions with explicit commands - Streamlined explanations of the tool + resource registration pattern - Added screenshot showing the completed app - E2E test coverage validates the example works end-to-end Co-Authored-By: Claude Opus 4.5 * Add MCP Apps Overview document Adds `docs/overview.md` covering the core concepts: architecture, lifecycle, UI resources, bidirectional communication, theming, display modes, and security. Includes mermaid flowchart and sequence diagrams. Also adds the `@boneskull/typedoc-plugin-mermaid` TypeDoc plugin for mermaid diagram support. However, the plugin handles HTML entities from TypeDoc incorrectly, so `scripts/typedoc-plugin-fix-mermaid-entities.mjs` decodes HTML entities before the plugin processes them. Co-Authored-By: Claude Opus 4.5 * Add Agent Skills installation guide Add `docs/agent-skills.md` with installation instructions for multiple AI coding agents including Claude Code, VS Code/Copilot, Gemini CLI, Cline, and Goose. The guide provides three installation methods: Claude Code plugin, Vercel Skills CLI (`npx skills add`), and manual installation. Update `README.md` to link to the new guide and reframe the plugin section around the broader "Agent Skills" concept. Co-Authored-By: Claude Opus 4.5 * Polish OpenAI migration reference for readability Add framing prose to the migration guide to improve navigation: - Expanded intro describing document purpose and how to use it - Added note about features marked "Not yet implemented" - Added brief transition sentences before Server-Side and Client-Side sections Co-Authored-By: Claude Opus 4.5 * Fix mermaid diagram arrowheads not rendering The `@boneskull/typedoc-plugin-mermaid` creates both dark and light theme variants of each diagram, each with identical marker IDs (e.g., `#arrowhead`). When mermaid renders SVGs at runtime, lines reference `url(#arrowhead)`, but the browser resolves this to the first match in document order — the hidden dark-theme SVG — causing arrows to be invisible. The fix removes dark-theme `
` elements at build time, leaving only one SVG per diagram with unique marker IDs. A CSS filter (`filter: invert(1) hue-rotate(180deg)`) handles dark mode styling instead. Co-Authored-By: Claude Opus 4.5 * fix(docs): improve OpenAI migration guide accuracy (#349) - Add missing setOpenInAppUrl API to 'Not Yet in MCP Apps' section - Clarify Event Handling table: specify exact OpenAI properties (toolInput/toolOutput) instead of vague 'window.openai.*' - Improve notes to distinguish sync property reads vs callbacks * Add Testing MCP Apps guide Document how to test MCP Apps using `basic-host` and MCP Apps-compatible hosts like Claude.ai and VS Code Copilot. Cover debugging features for `basic-host`, and using `cloudflared` to expose local servers for remote hosts. Co-Authored-By: Claude Opus 4.5 * Fix `onhostcontextchanged` handler invocation in examples `App.onhostcontextchanged` is a setter-only property with no getter. TypeScript doesn't prevent reading from setter-only properties, so `app.onhostcontextchanged?.(ctx)` compiles but silently returns `undefined` at runtime. Extract the handler into a named `handleHostContextChanged()` function and call it directly after `connect()`, matching the pattern used in `basic-server-vanillajs` and other examples. Co-Authored-By: Claude Opus 4.5 * Expand Agent Skills guide Add intro explaining what Agent Skills are and link to the two skill files (`create-mcp-app`, `migrate-oai-app`). Reorganize headings and add "Invoke a Skill" and "Test Your App" sections. Update `README.md` link text and add tip to quickstart suggesting agent skills as an alternative. Co-Authored-By: Claude Opus 4.5 * fix(e2e): improve test stability and developer experience (#337) * fix(e2e): add masks for dynamic content and increase timeouts for slow servers - Add HOST_MASKS for Tool Input/Result panels with dynamic timestamps - Add say-server to SLOW_SERVERS (10s) for TTS model download - Add say-server to EXTRA_WAIT_MS (30s) in generate-grid-screenshots * feat: add update-lock:docker script to regenerate lockfile with public registry * pin package versions for dev compatibility * feat(basic-host): add ?theme=hide query param to hide theme toggle in screenshots - Add hideThemeToggle param to getQueryParams() - Conditionally render ThemeToggle based on ?theme=hide - Update e2e tests to use ?theme=hide for consistent screenshots * update screenshots * update screenshots * fix(husky): load Node.js environment for GUI apps like GitHub Desktop * fix(e2e): increase map-server wait time to 15s for tile loading * fix(e2e): increase waitForAppLoad timeout to 30s for nested iframe loading * ci: add workflow to update e2e snapshots * ci: trigger snapshot update on push to this branch * chore: update e2e snapshots [skip ci] * ci: trigger CI after snapshot update * style: fix prettier formatting in update-snapshots workflow * fix: pin seroval, seroval-plugins, and solid-js for dev compatibility --------- Co-authored-by: github-actions[bot] * Improve README structure and clarity Add "Why MCP Apps?" section to explain the motivation upfront. Reorganize the "How It Works" section to lead with tool definition. Rename "Overview" to "Using the SDK" and add "For" prefix to audience headings. Restructure the Examples section with clearer subsections for running examples with `basic-host` vs MCP clients using stdio transport. Move the `qr` server note outside the collapsed details block. Co-Authored-By: Claude Opus 4.5 * Add Codex and Goose to documentation Add Codex to the list of agents supporting skills in `agent-skills.md`. Add Goose to the list of supported clients in `testing-mcp-apps.md` and rename "VS Code Copilot" to "VS Code (Insiders)" for accuracy. Co-Authored-By: Claude Opus 4.5 * chore: regenerate lockfile with public registry, use ^0.4.2 for ext-apps deps * fix: update quickstart example to use workspace reference * chore: remove internal registry references from lockfile * feat(ci): add /update-snapshots comment trigger for PRs - Comment '/update-snapshots' on any PR to update E2E snapshots - Adds rocket reaction to acknowledge the command - Comments back with result (updated or no changes needed) - Removes hardcoded branch trigger - Keeps workflow_dispatch for manual runs * docs: document /update-snapshots PR comment trigger * fix: pin @hono/node-server to 1.19.7 for dev compatibility SDK 1.25.3 requires @hono/node-server@^1.19.9 which doesn't exist on the public npm registry (latest is 1.19.7). * fix: pin @modelcontextprotocol/sdk to 1.25.2 SDK 1.25.3 has broken dependency on @hono/node-server@^1.19.9 which doesn't exist on public npm registry. * fix: restore flexible SDK peerDep range (^1.24.0) devDependencies stays pinned to 1.25.2 for our builds, but peerDependencies should allow users flexibility. * fix: pin @types/node to avoid unpublished versions - Pin quickstart @types/node to 22.19.5 (latest public 22.x) - Add @types/node override to root package.json - Regenerate lockfile with public registry only --------- Co-authored-by: Tobin South Co-authored-by: Liad Yosef Co-authored-by: Claude Co-authored-by: martinalong Co-authored-by: Ido Salomon Co-authored-by: Jonathan Hefner Co-authored-by: github-actions[bot] --- .github/workflows/update-snapshots.yml | 68 ++- CONTRIBUTING.md | 10 + examples/basic-host/package.json | 6 +- examples/basic-server-preact/package.json | 6 +- examples/basic-server-react/package.json | 6 +- examples/basic-server-solid/package.json | 6 +- examples/basic-server-svelte/package.json | 6 +- examples/basic-server-vanillajs/package.json | 6 +- examples/basic-server-vue/package.json | 6 +- examples/budget-allocator-server/package.json | 6 +- examples/cohort-heatmap-server/package.json | 6 +- .../customer-segmentation-server/package.json | 6 +- examples/debug-server/package.json | 6 +- examples/integration-server/package.json | 4 +- examples/map-server/package.json | 6 +- examples/pdf-server/package.json | 6 +- examples/qr-server/package.json | 2 +- examples/quickstart/package.json | 4 +- examples/say-server/package.json | 4 +- examples/scenario-modeler-server/package.json | 6 +- examples/shadertoy-server/package.json | 6 +- examples/sheet-music-server/package.json | 6 +- examples/system-monitor-server/package.json | 6 +- examples/threejs-server/package.json | 6 +- examples/transcript-server/package.json | 6 +- examples/video-resource-server/package.json | 6 +- examples/wiki-explorer-server/package.json | 6 +- package-lock.json | 464 ++++++++++-------- package.json | 8 +- 29 files changed, 395 insertions(+), 295 deletions(-) diff --git a/.github/workflows/update-snapshots.yml b/.github/workflows/update-snapshots.yml index acd20eb..52795d6 100644 --- a/.github/workflows/update-snapshots.yml +++ b/.github/workflows/update-snapshots.yml @@ -7,23 +7,50 @@ on: description: "Branch to update snapshots on" required: true default: "main" - # Temporary: auto-run on this branch to update snapshots - push: - branches: - - "ochafik/fix-e2e-flaky-tests" - paths: - - ".github/workflows/update-snapshots.yml" + issue_comment: + types: [created] permissions: contents: write + pull-requests: write jobs: update-snapshots: + # Run on workflow_dispatch OR when someone comments "/update-snapshots" on a PR + if: > + github.event_name == 'workflow_dispatch' || + (github.event.issue.pull_request && contains(github.event.comment.body, '/update-snapshots')) runs-on: ubuntu-latest steps: + - name: Get PR branch + if: github.event_name == 'issue_comment' + id: pr + uses: actions/github-script@v7 + with: + script: | + const pr = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number + }); + core.setOutput('ref', pr.data.head.ref); + core.setOutput('sha', pr.data.head.sha); + + - name: Add reaction to comment + if: github.event_name == 'issue_comment' + uses: actions/github-script@v7 + with: + script: | + await github.rest.reactions.createForIssueComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: context.payload.comment.id, + content: 'rocket' + }); + - uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.branch || github.ref }} + ref: ${{ github.event.inputs.branch || steps.pr.outputs.ref || github.ref }} token: ${{ secrets.GITHUB_TOKEN }} - uses: oven-sh/setup-bun@v2 @@ -45,9 +72,32 @@ jobs: run: npx playwright test --update-snapshots --reporter=list - name: Commit updated snapshots + id: commit run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add tests/e2e/**/*.png - git diff --staged --quiet || git commit -m "chore: update e2e snapshots [skip ci]" - git push + if git diff --staged --quiet; then + echo "changed=false" >> $GITHUB_OUTPUT + echo "No snapshot changes to commit" + else + git commit -m "chore: update e2e snapshots [skip ci]" + git push + echo "changed=true" >> $GITHUB_OUTPUT + fi + + - name: Comment on PR + if: github.event_name == 'issue_comment' + uses: actions/github-script@v7 + with: + script: | + const changed = '${{ steps.commit.outputs.changed }}' === 'true'; + const body = changed + ? '✅ Snapshots updated and pushed to this branch.' + : '✅ No snapshot changes needed - all snapshots are up to date.'; + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body + }); diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 81f776a..3793622 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,6 +79,16 @@ npm run test:e2e:update -- --grep "Three.js" **Note**: Golden screenshots are platform-agnostic. Tests use canvas masking and tolerance thresholds to handle minor cross-platform rendering differences. +#### Updating Snapshots in CI + +If E2E tests fail in CI due to screenshot mismatches, you can update snapshots directly from your PR: + +1. Comment `/update-snapshots` on the PR +2. The workflow will update snapshots and push to your branch +3. A comment will confirm when complete + +Alternatively, use the [workflow dispatch](https://github.com/modelcontextprotocol/ext-apps/actions/workflows/update-snapshots.yml) to manually trigger updates for any branch. + ## Code of Conduct This project follows our [Code of Conduct](CODE_OF_CONDUCT.md). Please review it before contributing. diff --git a/examples/basic-host/package.json b/examples/basic-host/package.json index 9975de4..d3ce4f9 100644 --- a/examples/basic-host/package.json +++ b/examples/basic-host/package.json @@ -1,7 +1,7 @@ { "homepage": "https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-host", "name": "@modelcontextprotocol/ext-apps-basic-host", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "scripts": { "build": "tsc --noEmit && concurrently \"cross-env INPUT=index.html vite build\" \"cross-env INPUT=sandbox.html vite build\"", @@ -11,7 +11,7 @@ "dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "react": "^19.2.0", "react-dom": "^19.2.0", @@ -19,7 +19,7 @@ }, "devDependencies": { "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/basic-server-preact/package.json b/examples/basic-server-preact/package.json index bbd31c7..d58b2f4 100644 --- a/examples/basic-server-preact/package.json +++ b/examples/basic-server-preact/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-basic-preact", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Basic MCP App Server example using Preact", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -33,7 +33,7 @@ "@preact/preset-vite": "^2.0.0", "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/basic-server-react/package.json b/examples/basic-server-react/package.json index 18ba617..df612e0 100644 --- a/examples/basic-server-react/package.json +++ b/examples/basic-server-react/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-basic-react", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Basic MCP App Server example using React", "repository": { @@ -32,7 +32,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -43,7 +43,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/basic-server-solid/package.json b/examples/basic-server-solid/package.json index aa71017..313cc3f 100644 --- a/examples/basic-server-solid/package.json +++ b/examples/basic-server-solid/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-basic-solid", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Basic MCP App Server example using Solid", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -32,7 +32,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/basic-server-svelte/package.json b/examples/basic-server-svelte/package.json index 4bfb9cb..608311e 100644 --- a/examples/basic-server-svelte/package.json +++ b/examples/basic-server-svelte/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-basic-svelte", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Basic MCP App Server example using Svelte", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -33,7 +33,7 @@ "@sveltejs/vite-plugin-svelte": "^5.0.0", "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/basic-server-vanillajs/package.json b/examples/basic-server-vanillajs/package.json index 35047e5..3e0ad79 100644 --- a/examples/basic-server-vanillajs/package.json +++ b/examples/basic-server-vanillajs/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-basic-vanillajs", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Basic MCP App Server example using vanilla JavaScript", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -31,7 +31,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/basic-server-vue/package.json b/examples/basic-server-vue/package.json index 1dad261..05e12cf 100644 --- a/examples/basic-server-vue/package.json +++ b/examples/basic-server-vue/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-basic-vue", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Basic MCP App Server example using Vue", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -32,7 +32,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@vitejs/plugin-vue": "^5.0.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", diff --git a/examples/budget-allocator-server/package.json b/examples/budget-allocator-server/package.json index 7d26960..f362fea 100644 --- a/examples/budget-allocator-server/package.json +++ b/examples/budget-allocator-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-budget-allocator", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Budget allocator MCP App Server with interactive visualization", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -36,7 +36,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/cohort-heatmap-server/package.json b/examples/cohort-heatmap-server/package.json index ce0a999..070ccb8 100644 --- a/examples/cohort-heatmap-server/package.json +++ b/examples/cohort-heatmap-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-cohort-heatmap", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Cohort heatmap MCP App Server for retention analysis", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -37,7 +37,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/customer-segmentation-server/package.json b/examples/customer-segmentation-server/package.json index afa419e..4a86c1c 100644 --- a/examples/customer-segmentation-server/package.json +++ b/examples/customer-segmentation-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-customer-segmentation", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Customer segmentation MCP App Server with filtering", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -36,7 +36,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/debug-server/package.json b/examples/debug-server/package.json index 226f7e3..d95f22f 100644 --- a/examples/debug-server/package.json +++ b/examples/debug-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-debug", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Debug MCP App Server for testing all SDK capabilities", "repository": { @@ -23,14 +23,14 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "zod": "^4.1.13" }, "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cors": "^2.8.5", "cross-env": "^10.1.0", diff --git a/examples/integration-server/package.json b/examples/integration-server/package.json index 67538c9..0a7c114 100644 --- a/examples/integration-server/package.json +++ b/examples/integration-server/package.json @@ -15,7 +15,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -26,7 +26,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/map-server/package.json b/examples/map-server/package.json index da5f9f4..4cfab8f 100644 --- a/examples/map-server/package.json +++ b/examples/map-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-map", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "MCP App Server example with CesiumJS 3D globe and geocoding", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -35,7 +35,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/pdf-server/package.json b/examples/pdf-server/package.json index 61d2669..d934737 100644 --- a/examples/pdf-server/package.json +++ b/examples/pdf-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-pdf", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "MCP server for loading and extracting text from PDF files with chunked pagination and interactive viewer", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -32,7 +32,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/qr-server/package.json b/examples/qr-server/package.json index b83503b..2da800b 100644 --- a/examples/qr-server/package.json +++ b/examples/qr-server/package.json @@ -8,6 +8,6 @@ "build": "echo 'No build step needed for Python server'" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1" + "@modelcontextprotocol/ext-apps": "../.." } } diff --git a/examples/quickstart/package.json b/examples/quickstart/package.json index 86933d4..d616d6f 100644 --- a/examples/quickstart/package.json +++ b/examples/quickstart/package.json @@ -15,7 +15,7 @@ "start": "concurrently 'cross-env NODE_ENV=development INPUT=mcp-app.html vite build --watch' 'tsx watch main.ts'" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0" @@ -24,7 +24,7 @@ "@types/cors": "^2.8.19", "concurrently": "^9.2.1", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.19.5", "cross-env": "^10.1.0", "tsx": "^4.21.0", "typescript": "^5.9.3", diff --git a/examples/say-server/package.json b/examples/say-server/package.json index dcf2128..f7401cd 100644 --- a/examples/say-server/package.json +++ b/examples/say-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-say", - "version": "0.4.1", + "version": "0.4.2", "private": true, "description": "Streaming TTS MCP App Server with karaoke-style text highlighting", "repository": { @@ -15,6 +15,6 @@ "build": "echo 'No build step needed for Python server'" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1" + "@modelcontextprotocol/ext-apps": "../.." } } diff --git a/examples/scenario-modeler-server/package.json b/examples/scenario-modeler-server/package.json index c0bfc8e..c2040ba 100644 --- a/examples/scenario-modeler-server/package.json +++ b/examples/scenario-modeler-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-scenario-modeler", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Financial scenario modeling MCP App Server", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -38,7 +38,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/shadertoy-server/package.json b/examples/shadertoy-server/package.json index bc5e666..ea74b5f 100644 --- a/examples/shadertoy-server/package.json +++ b/examples/shadertoy-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-shadertoy", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "MCP App Server example for rendering ShaderToy-compatible GLSL shaders", "repository": { @@ -24,7 +24,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -33,7 +33,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/sheet-music-server/package.json b/examples/sheet-music-server/package.json index 53e842e..a2a2da2 100644 --- a/examples/sheet-music-server/package.json +++ b/examples/sheet-music-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-sheet-music", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "MCP App Server for rendering and playing sheet music from ABC notation", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "abcjs": "^6.4.4", "cors": "^2.8.5", @@ -32,7 +32,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/system-monitor-server/package.json b/examples/system-monitor-server/package.json index 84ac75f..a6277ad 100644 --- a/examples/system-monitor-server/package.json +++ b/examples/system-monitor-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-system-monitor", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "System monitor MCP App Server with real-time stats", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -37,7 +37,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/threejs-server/package.json b/examples/threejs-server/package.json index 36b6833..f2b7557 100644 --- a/examples/threejs-server/package.json +++ b/examples/threejs-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-threejs", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Three.js 3D visualization MCP App Server", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -38,7 +38,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@types/three": "^0.181.0", diff --git a/examples/transcript-server/package.json b/examples/transcript-server/package.json index 4aeaab8..7d9b957 100644 --- a/examples/transcript-server/package.json +++ b/examples/transcript-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-transcript", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "MCP App Server for live speech transcription", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -32,7 +32,7 @@ "@types/cors": "^2.8.19", "@types/dom-speech-recognition": "^0.0.7", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/video-resource-server/package.json b/examples/video-resource-server/package.json index 9361768..809855f 100644 --- a/examples/video-resource-server/package.json +++ b/examples/video-resource-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-video-resource", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "MCP App Server demonstrating video resources served as base64 blobs", "repository": { @@ -22,7 +22,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -31,7 +31,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", diff --git a/examples/wiki-explorer-server/package.json b/examples/wiki-explorer-server/package.json index 20ad160..6fdcee4 100644 --- a/examples/wiki-explorer-server/package.json +++ b/examples/wiki-explorer-server/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-wiki-explorer", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "description": "Wikipedia link explorer MCP App Server with graph visualization", "repository": { @@ -26,7 +26,7 @@ "serve": "bun --watch main.ts" }, "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cheerio": "^1.0.0", "cors": "^2.8.5", @@ -36,7 +36,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "force-graph": "^1.49.0", diff --git a/package-lock.json b/package-lock.json index c6372f9..272f679 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@modelcontextprotocol/ext-apps", - "version": "0.4.1", + "version": "0.4.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@modelcontextprotocol/ext-apps", - "version": "0.4.1", + "version": "0.4.2", "hasInstallScript": true, "license": "MIT", "workspaces": [ @@ -14,7 +14,7 @@ ], "devDependencies": { "@boneskull/typedoc-plugin-mermaid": "^0.2.0", - "@modelcontextprotocol/sdk": "^1.24.0", + "@modelcontextprotocol/sdk": "1.25.2", "@playwright/test": "1.57.0", "@types/bun": "^1.3.2", "@types/node": "20.19.27", @@ -79,9 +79,9 @@ }, "examples/basic-host": { "name": "@modelcontextprotocol/ext-apps-basic-host", - "version": "0.4.1", + "version": "0.4.2", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "react": "^19.2.0", "react-dom": "^19.2.0", @@ -89,7 +89,7 @@ }, "devDependencies": { "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", @@ -104,19 +104,24 @@ } }, "examples/basic-host/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/basic-host/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/basic-server-preact": { "name": "@modelcontextprotocol/server-basic-preact", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -130,7 +135,7 @@ "@preact/preset-vite": "^2.0.0", "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -139,19 +144,24 @@ } }, "examples/basic-server-preact/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/basic-server-preact/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/basic-server-react": { "name": "@modelcontextprotocol/server-basic-react", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -165,7 +175,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", @@ -177,19 +187,24 @@ } }, "examples/basic-server-react/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/basic-server-react/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/basic-server-solid": { "name": "@modelcontextprotocol/server-basic-solid", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -202,7 +217,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -212,19 +227,24 @@ } }, "examples/basic-server-solid/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/basic-server-solid/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/basic-server-svelte": { "name": "@modelcontextprotocol/server-basic-svelte", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -238,7 +258,7 @@ "@sveltejs/vite-plugin-svelte": "^5.0.0", "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -247,19 +267,24 @@ } }, "examples/basic-server-svelte/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/basic-server-svelte/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/basic-server-vanillajs": { "name": "@modelcontextprotocol/server-basic-vanillajs", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -271,7 +296,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -280,19 +305,24 @@ } }, "examples/basic-server-vanillajs/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/basic-server-vanillajs/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/basic-server-vue": { "name": "@modelcontextprotocol/server-basic-vue", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -305,7 +335,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@vitejs/plugin-vue": "^5.0.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", @@ -315,19 +345,24 @@ } }, "examples/basic-server-vue/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/basic-server-vue/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/budget-allocator-server": { "name": "@modelcontextprotocol/server-budget-allocator", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -340,7 +375,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -349,19 +384,24 @@ } }, "examples/budget-allocator-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/budget-allocator-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/cohort-heatmap-server": { "name": "@modelcontextprotocol/server-cohort-heatmap", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -375,7 +415,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", @@ -387,19 +427,24 @@ } }, "examples/cohort-heatmap-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/cohort-heatmap-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/customer-segmentation-server": { "name": "@modelcontextprotocol/server-customer-segmentation", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -412,7 +457,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -421,26 +466,31 @@ } }, "examples/customer-segmentation-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/customer-segmentation-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/debug-server": { "name": "@modelcontextprotocol/server-debug", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "zod": "^4.1.13" }, "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cors": "^2.8.5", "cross-env": "^10.1.0", @@ -451,19 +501,22 @@ } }, "examples/debug-server/node_modules/@types/node": { - "version": "22.19.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", - "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/debug-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/integration-server": { "version": "1.0.0", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -477,7 +530,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", @@ -488,19 +541,24 @@ } }, "examples/integration-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/integration-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/map-server": { "name": "@modelcontextprotocol/server-map", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -512,7 +570,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -521,19 +579,24 @@ } }, "examples/map-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/map-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/pdf-server": { "name": "@modelcontextprotocol/server-pdf", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -546,7 +609,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -555,18 +618,23 @@ } }, "examples/pdf-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/pdf-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/qr-server": { "name": "@modelcontextprotocol/server-qr", "version": "1.0.0", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1" + "@modelcontextprotocol/ext-apps": "../.." } }, "examples/quickstart": { @@ -574,7 +642,7 @@ "version": "0.4.1", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0" @@ -582,7 +650,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.19.5", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "tsx": "^4.21.0", @@ -592,36 +660,27 @@ } }, "examples/quickstart/node_modules/@types/node": { - "version": "22.19.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", - "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "version": "22.19.5", "dev": true, "license": "MIT", "dependencies": { "undici-types": "~6.21.0" } }, - "examples/quickstart/node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, "examples/say-server": { "name": "@modelcontextprotocol/server-say", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1" + "@modelcontextprotocol/ext-apps": "../.." } }, "examples/scenario-modeler-server": { "name": "@modelcontextprotocol/server-scenario-modeler", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -636,7 +695,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "^4.3.4", @@ -648,19 +707,24 @@ } }, "examples/scenario-modeler-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/scenario-modeler-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/shadertoy-server": { "name": "@modelcontextprotocol/server-shadertoy", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -672,7 +736,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -681,19 +745,24 @@ } }, "examples/shadertoy-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/shadertoy-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/sheet-music-server": { "name": "@modelcontextprotocol/server-sheet-music", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "abcjs": "^6.4.4", "cors": "^2.8.5", @@ -706,7 +775,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -715,19 +784,24 @@ } }, "examples/sheet-music-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/sheet-music-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/system-monitor-server": { "name": "@modelcontextprotocol/server-system-monitor", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "chart.js": "^4.4.0", "cors": "^2.8.5", @@ -741,7 +815,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -750,19 +824,24 @@ } }, "examples/system-monitor-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/system-monitor-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/threejs-server": { "name": "@modelcontextprotocol/server-threejs", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -777,7 +856,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@types/three": "^0.181.0", @@ -790,19 +869,24 @@ } }, "examples/threejs-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/threejs-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/transcript-server": { "name": "@modelcontextprotocol/server-transcript", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -815,7 +899,7 @@ "@types/cors": "^2.8.19", "@types/dom-speech-recognition": "^0.0.7", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -824,13 +908,18 @@ } }, "examples/transcript-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/transcript-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/transcript-server/node_modules/zod": { "version": "3.25.76", "license": "MIT", @@ -840,10 +929,10 @@ }, "examples/video-resource-server": { "name": "@modelcontextprotocol/server-video-resource", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -855,7 +944,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "typescript": "^5.9.3", @@ -864,19 +953,24 @@ } }, "examples/video-resource-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/video-resource-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "examples/wiki-explorer-server": { "name": "@modelcontextprotocol/server-wiki-explorer", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/ext-apps": "^0.4.1", + "@modelcontextprotocol/ext-apps": "../..", "@modelcontextprotocol/sdk": "^1.24.0", "cheerio": "^1.0.0", "cors": "^2.8.5", @@ -889,7 +983,7 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.0", - "@types/node": "^22.0.0", + "@types/node": "22.10.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "force-graph": "^1.49.0", @@ -899,13 +993,18 @@ } }, "examples/wiki-explorer-server/node_modules/@types/node": { - "version": "22.19.3", + "version": "22.10.0", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, + "examples/wiki-explorer-server/node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/code-frame": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", @@ -937,7 +1036,6 @@ "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", @@ -1794,9 +1892,9 @@ } }, "node_modules/@hono/node-server": { - "version": "1.19.9", - "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz", - "integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==", + "version": "1.19.7", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.7.tgz", + "integrity": "sha512-vUcD0uauS7EU2caukW8z5lJKtoGMokxNbJtBiwHgpqxEXokaHCBkQUmCHhjFB1VUTWdqj25QoMkMKzgjq+uhrw==", "license": "MIT", "engines": { "node": ">=18.14.1" @@ -2347,47 +2445,8 @@ "license": "MIT" }, "node_modules/@modelcontextprotocol/ext-apps": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/ext-apps/-/ext-apps-0.4.1.tgz", - "integrity": "sha512-LUw6NidwWInzWVF8OSPw/Mtdz5ES2qF+yBze2h+WRARdSbXf+agTkZLCGFtdkogI64W6mDlJnSTp/k5W+FZ84A==", - "hasInstallScript": true, - "license": "MIT", - "workspaces": [ - "examples/*" - ], - "optionalDependencies": { - "@oven/bun-darwin-aarch64": "^1.2.21", - "@oven/bun-darwin-x64": "^1.2.21", - "@oven/bun-darwin-x64-baseline": "^1.2.21", - "@oven/bun-linux-aarch64": "^1.2.21", - "@oven/bun-linux-aarch64-musl": "^1.2.21", - "@oven/bun-linux-x64": "^1.2.21", - "@oven/bun-linux-x64-baseline": "^1.2.21", - "@oven/bun-linux-x64-musl": "^1.2.21", - "@oven/bun-linux-x64-musl-baseline": "^1.2.21", - "@oven/bun-windows-x64": "^1.2.21", - "@oven/bun-windows-x64-baseline": "^1.2.21", - "@rollup/rollup-darwin-arm64": "^4.53.3", - "@rollup/rollup-darwin-x64": "^4.53.3", - "@rollup/rollup-linux-arm64-gnu": "^4.53.3", - "@rollup/rollup-linux-x64-gnu": "^4.53.3", - "@rollup/rollup-win32-arm64-msvc": "^4.53.3", - "@rollup/rollup-win32-x64-msvc": "^4.53.3" - }, - "peerDependencies": { - "@modelcontextprotocol/sdk": "^1.24.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0", - "zod": "^3.25.0 || ^4.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } + "resolved": "", + "link": true }, "node_modules/@modelcontextprotocol/ext-apps-basic-host": { "resolved": "examples/basic-host", @@ -2398,13 +2457,12 @@ "link": true }, "node_modules/@modelcontextprotocol/sdk": { - "version": "1.25.3", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.25.3.tgz", - "integrity": "sha512-vsAMBMERybvYgKbg/l4L1rhS7VXV1c0CtyJg72vwxONVX0l4ZfKVAnZEWTQixJGTzKnELjQ59e4NbdFDALRiAQ==", + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.25.2.tgz", + "integrity": "sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==", "license": "MIT", - "peer": true, "dependencies": { - "@hono/node-server": "^1.19.9", + "@hono/node-server": "^1.19.7", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", @@ -3482,7 +3540,6 @@ "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.1", @@ -3689,7 +3746,6 @@ "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -3714,7 +3770,6 @@ "integrity": "sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -4117,7 +4172,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4336,9 +4390,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.17", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.17.tgz", - "integrity": "sha512-agD0MgJFUP/4nvjqzIB29zRPUuCF7Ge6mEv9s8dHrtYD7QWXRcx75rOADE/d5ah1NI+0vkDl0yorDd5U852IQQ==", + "version": "2.9.18", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.18.tgz", + "integrity": "sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4459,7 +4513,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -5175,7 +5228,6 @@ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -5648,7 +5700,6 @@ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", - "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", @@ -7198,7 +7249,6 @@ "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.2.tgz", "integrity": "sha512-lbteaWGzGHdlIuiJ0l2Jq454m6kcpI1zNje6d8MlGAFlYvP2GO4ibnat7P74Esfz4sPTdM6UxtTwh/d3pwM9JA==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -7408,7 +7458,6 @@ "integrity": "sha512-9FwVqlgUHzbXtDg9RCMgodF3Ua4Na6Gau+Sdt9vyCN4RhHfVKX2DCHy3BjMLTDd47ITDhYAnTwGulWTblJSDLg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -7530,7 +7579,6 @@ "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.4.1.tgz", "integrity": "sha512-9GOc+8T6LN4aByLN75uRvMbrwY5RDBW6lSlknsY4LEa9ZmWcxKcRe1G/Q3HZXjltxMHTrStnvrwAICxZrhldtg==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" } @@ -7821,11 +7869,10 @@ "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.10.tgz", "integrity": "sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.1.0", - "seroval": "~1.5.0", - "seroval-plugins": "~1.5.0" + "seroval": "~1.3.0", + "seroval-plugins": "~1.3.0" } }, "node_modules/solid-refresh": { @@ -7996,11 +8043,10 @@ } }, "node_modules/svelte": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.48.0.tgz", - "integrity": "sha512-+NUe82VoFP1RQViZI/esojx70eazGF4u0O/9ucqZ4rPcOZD+n5EVp17uYsqwdzjUjZyTpGKunHbDziW6AIAVkQ==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.48.2.tgz", + "integrity": "sha512-VPWD+UyoSFZ7Nxix5K/F8yWiKWOiROkLlWYXOZReE0TUycw+58YWB3D6lAKT+57xmN99wRX4H3oZmw0NPy7y3Q==", "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -8023,9 +8069,9 @@ } }, "node_modules/systeminformation": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.30.5.tgz", - "integrity": "sha512-DpWmpCckhwR3hG+6udb6/aQB7PpiqVnvSljrjbKxNSvTRsGsg7NVE3/vouoYf96xgwMxXFKcS4Ux+cnkFwYM7A==", + "version": "5.30.6", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.30.6.tgz", + "integrity": "sha512-LEIyK1aEv5P3BhAPW3swdlIyCihxwEq/Gki+kcONieU4PIeRCSLDuGkk0Va/56PSBgjVgEksOM88dmY6YqOyfQ==", "license": "MIT", "os": [ "darwin", @@ -8328,7 +8374,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -9028,7 +9073,6 @@ "integrity": "sha512-x4xW77QC3i5DUFMBp0qjukOTnr/sSg+oEs86nB3LjDslvAmwe/PUGDWbe3GrIqt59oTqoXK5GRK9tAa0sYMiog==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@gerrit0/mini-shiki": "^3.17.0", "lunr": "^2.3.9", @@ -9092,7 +9136,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9116,9 +9159,9 @@ "license": "MIT" }, "node_modules/undici": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.19.0.tgz", - "integrity": "sha512-Heho1hJD81YChi+uS2RkSjcVO+EQLmLSyUlHyp7Y/wFbxQaGb4WXVKD073JytrjXJVkSZVzoE2MCSOKugFGtOQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.19.1.tgz", + "integrity": "sha512-Gpq0iNm5M6cQWlyHQv9MV+uOj1jWk7LpkoE5vSp/7zjb4zMdAcUD+VL5y0nH4p9EbUklq00eVIIX/XcDHzu5xg==", "license": "MIT", "engines": { "node": ">=20.18.1" @@ -9186,7 +9229,6 @@ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -9363,7 +9405,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -9482,7 +9523,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.27.tgz", "integrity": "sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.27", "@vue/compiler-sfc": "3.5.27", @@ -9643,7 +9683,6 @@ "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, "license": "ISC", - "peer": true, "bin": { "yaml": "bin.mjs" }, @@ -9694,7 +9733,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index 6b9ca61..1494582 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "https://github.com/modelcontextprotocol/ext-apps" }, "homepage": "https://github.com/modelcontextprotocol/ext-apps", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "description": "MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients.", "type": "module", @@ -74,7 +74,7 @@ "author": "Olivier Chafik", "devDependencies": { "@boneskull/typedoc-plugin-mermaid": "^0.2.0", - "@modelcontextprotocol/sdk": "^1.24.0", + "@modelcontextprotocol/sdk": "1.25.2", "@playwright/test": "1.57.0", "@types/bun": "^1.3.2", "@types/react": "^19.2.2", @@ -139,6 +139,8 @@ "overrides": { "seroval": "1.4.1", "seroval-plugins": "1.4.2", - "solid-js": "1.9.10" + "solid-js": "1.9.10", + "@hono/node-server": "1.19.7", + "@types/node": "20.19.27" } }