# mcp-use

## 1.28.0

### Minor Changes

- 46caf80: feat(auth): Node OAuth client provider + CLI OAuth flow

  Adds a real OAuth flow to the `mcp-use` CLI. `mcp-use client connect <url>`
  against an OAuth-protected MCP server now opens a browser, captures the
  authorization code via a localhost loopback, persists tokens to
  `~/.mcp-use/oauth/<urlHash>/`, and silently refreshes them on subsequent
  commands — no flag plumbing.

  New on `mcp-use`:
  - `mcp-use/auth/node` entrypoint exporting `NodeOAuthClientProvider`,
    `FileKVStore`, the `KVStore` type, and re-exporting the SDK's `auth` and
    `UnauthorizedError`.
  - `NodeOAuthClientProvider` implements `OAuthClientProvider`, owns the
    loopback callback server (preferred port 33418, walks up to 33427 on
    conflict, persisted across runs), and exposes `getAuthorizationCode()`
    for the orchestrator pattern in `useMcp.ts`.
  - `FileKVStore` writes tokens, client info, and code verifiers to one file
    per key under `~/.mcp-use/oauth/<urlHash>/` with `0o600` perms and atomic
    rename on write.

  New on `@mcp-use/cli`:
  - `mcp-use client connect <url>` auto-runs OAuth on `UnauthorizedError`
    when no `--auth` is supplied. New flags: `--no-oauth`, `--auth-timeout`.
  - `mcp-use client auth status|refresh|logout [session]` for token
    introspection, forced refresh, and revocation. (No `auth login` — that's
    what `connect` is for.)
  - Follow-up commands (`tools list`, etc.) on OAuth sessions transparently
    refresh expiring JWTs. If the refresh token itself is dead, the CLI
    prompts to re-auth on TTY or prints the exact `connect` command to run
    on non-TTY.

### Patch Changes

- 46caf80: Remove unused dependencies and devDependencies flagged by `knip`.
  - Root: drop `lint-staged` and `typescript-eslint` (unused; ESLint config uses `@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` directly, and Husky pre-commit runs `pnpm format`/`lint:fix` directly without lint-staged). Removed the stale root `lint-staged` config block.
  - `@mcp-use/cli`: drop `globby`, `ws`, `@types/ws` (no source references; `globby` was explicitly replaced by Node built-ins). Removed `globby` from `tsup.config.ts` `noExternal`.
  - `create-mcp-use-app`: drop `fs-extra` and `@types/fs-extra` (no source references).
  - `mcp-use`: drop `ws`, `@types/ws`, `@antfu/eslint-config`, `@langchain/anthropic` (devDep — already an optional peer; only referenced as a string for dynamic import), `eslint-plugin-format`, `lint-staged`. Removed the stale package-level `lint-staged` config block.
  - `knip.json`: ignore `@mcp-use/inspector` for the `cli` package (resolved dynamically via `createRequire().resolve` to read its `package.json`).

  `pnpm knip:deps` now reports 0 unused (dev)dependencies. `pnpm install --frozen-lockfile`, `pnpm lint`, and `pnpm build` all succeed.

- 46caf80: Updated dependency `next` to `^15.5.18`.
- 46caf80: Make `mcp-use/server` response helpers discoverable to humans and coding agents.
  - **`MCPServer.tool()` JSDoc**: each `@example` block now includes the matching `import { ... } from "mcp-use/server"` line, plus a note that helpers (`text`, `object`, `image`, `markdown`, `html`, `error`, `widget`, …) are exported from `mcp-use/server`. Previously the examples called `text(...)` / `error(...)` with no import, so anyone reading the hover doc had no breadcrumb to the package.
  - **`create-mcp-use-app` blank template**: the commented tool/resource/prompt blocks previously called `text(...)`, `object(...)`, and `z.object(...)` without showing where any of those came from — and the file's top-level imports never referenced them either. Each commented block now includes the relevant `import { ... } from "mcp-use/server"` / `import { z } from "zod"` lines inside the comment, alongside a leading note naming the available response helpers. The template stays truly blank (no tools registered) but the discovery path is now local to the file.

- 46caf80: fix(auth): make `forceRefresh()` actually exchange the refresh_token, and escape HTML in the loopback failure page
  - `NodeOAuthClientProvider.forceRefresh()` now delegates to a new
    `OAuthSessionStore.forceRefresh()` that calls the existing dedup'd
    refresh path directly. The previous implementation tried to coerce a
    refresh by zeroing out `access_token` and re-reading via `tokens()`,
    but `tokens()` gates the refresh path on a truthy `access_token`, so
    no network call was ever made and the stale tokens were returned. This
    is what `mcp-use client auth refresh` runs.
  - The loopback failure page (rendered when the OAuth server redirects
    back with `?error=…`) now HTML-escapes both the `error` code and
    `error_description` rather than only stripping `<>&` from the
    description. Closes a low-severity reflected-XSS in the localhost
    callback page.

- 46caf80: fix(auth): handle SDK-initiated OAuth redirect on 401 in CLI connect

  The SDK's `StreamableHTTPClientTransport` auto-calls `auth()` on a 401, which
  in turn calls our `redirectToAuthorization()` — binding the loopback and
  opening the browser before the transport throws. Two fixes so the CLI's
  `connect` command picks up where the SDK left off instead of dying:
  - `NodeOAuthClientProvider` exposes `hasPendingFlow` so orchestrators can
    detect that the SDK already kicked off the flow and skip straight to
    `getAuthorizationCode()` (calling `auth()` again would throw "an
    authorization is already in progress").
  - `mcp-use client connect`'s `runOAuthFlow` uses `hasPendingFlow` to skip
    the duplicate `auth()` call, and `isUnauthorized` now also matches the
    rewrapped 401 that `HttpConnector` throws (plain `Error` with `code = 401`).

  Without these, the first connect to an OAuth-protected server printed
  "Authentication required" and `process.exit(1)`'d before the browser
  callback returned — leaving the user staring at a "connection refused"
  loopback page.

- 46caf80: refactor(auth): extract `OAuthSessionStore` helper from `BrowserOAuthClientProvider`

  Pulls token storage, JWT-expiry-driven refresh (with deduplication),
  client-info validation, code-verifier handling, key hashing, and generic
  authorization-state persistence into a new platform-neutral
  `OAuthSessionStore` helper parameterized over a `KVStore`. The browser
  provider now holds an `OAuthSessionStore` and delegates the SDK
  `OAuthClientProvider` interface methods to it. No behavior change —
  this prepares the ground for a future Node/CLI OAuth provider.

- 46caf80: Resolved duplicate exports flagged by Knip.
  - Annotated the `Tel` alias for `Telemetry` with the `@alias` directive so Knip no longer flags it as a duplicate export. The alias remains available for consumers.
  - Unified the canonical source path for `Telemetry`, `Tel`, `setTelemetrySource`, and `isBrowserEnvironment` in `src/telemetry/index.ts`. The Node implementation is now the default and is swapped for the browser implementation in browser bundles via the existing tsup substitution plugin.
  - Removed the redundant default export of `JsonRpcLoggerView` in `@mcp-use/inspector`. The named export is unchanged.

- 46caf80: Declare `jsdom` and `@vitest/coverage-v8` as explicit devDependencies (resolves `pnpm knip` unlisted-dependency warnings). `@vitest/coverage-v8` is pinned to `~4.0.18` to match the installed `vitest` and satisfy its exact peer-dep constraint.
- 46caf80: feat(server): print a one-line hint on startup pointing devs at the
  `mcp-use client connect <url>` CLI. Appears in dim gray right after
  the existing `[SERVER] Listening` / `[MCP] Endpoints` lines.
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
- Updated dependencies [46caf80]
  - @mcp-use/cli@3.2.0
  - @mcp-use/inspector@6.0.0

## 1.28.0-canary.15

### Patch Changes

- Updated dependencies [c3da11e]
  - @mcp-use/cli@3.2.0-canary.15
  - @mcp-use/inspector@6.0.0-canary.15

## 1.28.0-canary.14

### Patch Changes

- Updated dependencies [e124d58]
  - @mcp-use/cli@3.2.0-canary.14
  - @mcp-use/inspector@6.0.0-canary.14

## 1.28.0-canary.13

### Patch Changes

- Updated dependencies [03612f1]
  - @mcp-use/cli@3.2.0-canary.13
  - @mcp-use/inspector@6.0.0-canary.13

## 1.28.0-canary.12

### Patch Changes

- Updated dependencies [2ef0a90]
  - @mcp-use/cli@3.2.0-canary.12
  - @mcp-use/inspector@6.0.0-canary.12

## 1.28.0-canary.11

### Patch Changes

- Updated dependencies [fb50dbb]
  - @mcp-use/cli@3.2.0-canary.11
  - @mcp-use/inspector@6.0.0-canary.11

## 1.28.0-canary.10

### Patch Changes

- Updated dependencies [64f74d2]
- Updated dependencies [64f74d2]
- Updated dependencies [64f74d2]
- Updated dependencies [64f74d2]
- Updated dependencies [64f74d2]
- Updated dependencies [64f74d2]
- Updated dependencies [64f74d2]
- Updated dependencies [64f74d2]
  - @mcp-use/cli@3.2.0-canary.10
  - @mcp-use/inspector@6.0.0-canary.10

## 1.28.0-canary.9

### Patch Changes

- Updated dependencies [4cc5436]
  - @mcp-use/inspector@6.0.0-canary.9
  - @mcp-use/cli@3.2.0-canary.9

## 1.28.0-canary.8

### Patch Changes

- Updated dependencies [77b2a04]
  - @mcp-use/cli@3.2.0-canary.8
  - @mcp-use/inspector@6.0.0-canary.8

## 1.28.0-canary.7

### Patch Changes

- 097f57c: Resolved duplicate exports flagged by Knip.
  - Annotated the `Tel` alias for `Telemetry` with the `@alias` directive so Knip no longer flags it as a duplicate export. The alias remains available for consumers.
  - Unified the canonical source path for `Telemetry`, `Tel`, `setTelemetrySource`, and `isBrowserEnvironment` in `src/telemetry/index.ts`. The Node implementation is now the default and is swapped for the browser implementation in browser bundles via the existing tsup substitution plugin.
  - Removed the redundant default export of `JsonRpcLoggerView` in `@mcp-use/inspector`. The named export is unchanged.

- Updated dependencies [097f57c]
  - @mcp-use/inspector@6.0.0-canary.7
  - @mcp-use/cli@3.2.0-canary.7

## 1.28.0-canary.6

### Patch Changes

- Updated dependencies [ce16171]
  - @mcp-use/cli@3.2.0-canary.6
  - @mcp-use/inspector@6.0.0-canary.6

## 1.28.0-canary.5

### Minor Changes

- 25a906a: feat(auth): Node OAuth client provider + CLI OAuth flow

  Adds a real OAuth flow to the `mcp-use` CLI. `mcp-use client connect <url>`
  against an OAuth-protected MCP server now opens a browser, captures the
  authorization code via a localhost loopback, persists tokens to
  `~/.mcp-use/oauth/<urlHash>/`, and silently refreshes them on subsequent
  commands — no flag plumbing.

  New on `mcp-use`:
  - `mcp-use/auth/node` entrypoint exporting `NodeOAuthClientProvider`,
    `FileKVStore`, the `KVStore` type, and re-exporting the SDK's `auth` and
    `UnauthorizedError`.
  - `NodeOAuthClientProvider` implements `OAuthClientProvider`, owns the
    loopback callback server (preferred port 33418, walks up to 33427 on
    conflict, persisted across runs), and exposes `getAuthorizationCode()`
    for the orchestrator pattern in `useMcp.ts`.
  - `FileKVStore` writes tokens, client info, and code verifiers to one file
    per key under `~/.mcp-use/oauth/<urlHash>/` with `0o600` perms and atomic
    rename on write.

  New on `@mcp-use/cli`:
  - `mcp-use client connect <url>` auto-runs OAuth on `UnauthorizedError`
    when no `--auth` is supplied. New flags: `--no-oauth`, `--auth-timeout`.
  - `mcp-use client auth status|refresh|logout [session]` for token
    introspection, forced refresh, and revocation. (No `auth login` — that's
    what `connect` is for.)
  - Follow-up commands (`tools list`, etc.) on OAuth sessions transparently
    refresh expiring JWTs. If the refresh token itself is dead, the CLI
    prompts to re-auth on TTY or prints the exact `connect` command to run
    on non-TTY.

### Patch Changes

- 25a906a: fix(auth): make `forceRefresh()` actually exchange the refresh_token, and escape HTML in the loopback failure page
  - `NodeOAuthClientProvider.forceRefresh()` now delegates to a new
    `OAuthSessionStore.forceRefresh()` that calls the existing dedup'd
    refresh path directly. The previous implementation tried to coerce a
    refresh by zeroing out `access_token` and re-reading via `tokens()`,
    but `tokens()` gates the refresh path on a truthy `access_token`, so
    no network call was ever made and the stale tokens were returned. This
    is what `mcp-use client auth refresh` runs.
  - The loopback failure page (rendered when the OAuth server redirects
    back with `?error=…`) now HTML-escapes both the `error` code and
    `error_description` rather than only stripping `<>&` from the
    description. Closes a low-severity reflected-XSS in the localhost
    callback page.

- 25a906a: fix(auth): handle SDK-initiated OAuth redirect on 401 in CLI connect

  The SDK's `StreamableHTTPClientTransport` auto-calls `auth()` on a 401, which
  in turn calls our `redirectToAuthorization()` — binding the loopback and
  opening the browser before the transport throws. Two fixes so the CLI's
  `connect` command picks up where the SDK left off instead of dying:
  - `NodeOAuthClientProvider` exposes `hasPendingFlow` so orchestrators can
    detect that the SDK already kicked off the flow and skip straight to
    `getAuthorizationCode()` (calling `auth()` again would throw "an
    authorization is already in progress").
  - `mcp-use client connect`'s `runOAuthFlow` uses `hasPendingFlow` to skip
    the duplicate `auth()` call, and `isUnauthorized` now also matches the
    rewrapped 401 that `HttpConnector` throws (plain `Error` with `code = 401`).

  Without these, the first connect to an OAuth-protected server printed
  "Authentication required" and `process.exit(1)`'d before the browser
  callback returned — leaving the user staring at a "connection refused"
  loopback page.

- 25a906a: feat(server): print a one-line hint on startup pointing devs at the
  `mcp-use client connect <url>` CLI. Appears in dim gray right after
  the existing `[SERVER] Listening` / `[MCP] Endpoints` lines.
- Updated dependencies [25a906a]
- Updated dependencies [25a906a]
- Updated dependencies [25a906a]
- Updated dependencies [25a906a]
- Updated dependencies [25a906a]
- Updated dependencies [25a906a]
- Updated dependencies [25a906a]
- Updated dependencies [25a906a]
  - @mcp-use/cli@3.2.0-canary.5
  - @mcp-use/inspector@6.0.0-canary.5

## 1.27.2-canary.4

### Patch Changes

- dc71f7f: refactor(auth): extract `OAuthSessionStore` helper from `BrowserOAuthClientProvider`

  Pulls token storage, JWT-expiry-driven refresh (with deduplication),
  client-info validation, code-verifier handling, key hashing, and generic
  authorization-state persistence into a new platform-neutral
  `OAuthSessionStore` helper parameterized over a `KVStore`. The browser
  provider now holds an `OAuthSessionStore` and delegates the SDK
  `OAuthClientProvider` interface methods to it. No behavior change —
  this prepares the ground for a future Node/CLI OAuth provider.
  - @mcp-use/cli@3.1.5-canary.4
  - @mcp-use/inspector@5.0.2-canary.4

## 1.27.2-canary.3

### Patch Changes

- 5bb6d47: Declare `jsdom` and `@vitest/coverage-v8` as explicit devDependencies (resolves `pnpm knip` unlisted-dependency warnings). `@vitest/coverage-v8` is pinned to `~4.0.18` to match the installed `vitest` and satisfy its exact peer-dep constraint.
  - @mcp-use/cli@3.1.5-canary.3
  - @mcp-use/inspector@5.0.2-canary.3

## 1.27.2-canary.2

### Patch Changes

- 79a3f4c: Make `mcp-use/server` response helpers discoverable to humans and coding agents.
  - **`MCPServer.tool()` JSDoc**: each `@example` block now includes the matching `import { ... } from "mcp-use/server"` line, plus a note that helpers (`text`, `object`, `image`, `markdown`, `html`, `error`, `widget`, …) are exported from `mcp-use/server`. Previously the examples called `text(...)` / `error(...)` with no import, so anyone reading the hover doc had no breadcrumb to the package.
  - **`create-mcp-use-app` blank template**: the commented tool/resource/prompt blocks previously called `text(...)`, `object(...)`, and `z.object(...)` without showing where any of those came from — and the file's top-level imports never referenced them either. Each commented block now includes the relevant `import { ... } from "mcp-use/server"` / `import { z } from "zod"` lines inside the comment, alongside a leading note naming the available response helpers. The template stays truly blank (no tools registered) but the discovery path is now local to the file.
  - @mcp-use/cli@3.1.5-canary.2
  - @mcp-use/inspector@5.0.2-canary.2

## 1.27.2-canary.1

### Patch Changes

- 2810bf6: Remove unused dependencies and devDependencies flagged by `knip`.
  - Root: drop `lint-staged` and `typescript-eslint` (unused; ESLint config uses `@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` directly, and Husky pre-commit runs `pnpm format`/`lint:fix` directly without lint-staged). Removed the stale root `lint-staged` config block.
  - `@mcp-use/cli`: drop `globby`, `ws`, `@types/ws` (no source references; `globby` was explicitly replaced by Node built-ins). Removed `globby` from `tsup.config.ts` `noExternal`.
  - `create-mcp-use-app`: drop `fs-extra` and `@types/fs-extra` (no source references).
  - `mcp-use`: drop `ws`, `@types/ws`, `@antfu/eslint-config`, `@langchain/anthropic` (devDep — already an optional peer; only referenced as a string for dynamic import), `eslint-plugin-format`, `lint-staged`. Removed the stale package-level `lint-staged` config block.
  - `knip.json`: ignore `@mcp-use/inspector` for the `cli` package (resolved dynamically via `createRequire().resolve` to read its `package.json`).

  `pnpm knip:deps` now reports 0 unused (dev)dependencies. `pnpm install --frozen-lockfile`, `pnpm lint`, and `pnpm build` all succeed.

- Updated dependencies [2810bf6]
  - @mcp-use/cli@3.1.5-canary.1
  - @mcp-use/inspector@5.0.2-canary.1

## 1.27.2-canary.0

### Patch Changes

- 549f50c: Updated dependency `next` to `^15.5.18`.
  - @mcp-use/cli@3.1.5-canary.0
  - @mcp-use/inspector@5.0.2-canary.0

## 1.27.1

### Patch Changes

- ca1b34f: Forward `outputSchema` from tool definitions into the MCP SDK so `tools/list` exposes output JSON Schema for clients (e.g. ChatGPT App Store validation).
- Updated dependencies [ca1b34f]
  - @mcp-use/inspector@5.0.1
  - @mcp-use/cli@3.1.4

## 1.27.1-canary.1

### Patch Changes

- Updated dependencies [25a8745]
  - @mcp-use/inspector@5.0.1-canary.1
  - @mcp-use/cli@3.1.4-canary.1

## 1.27.1-canary.0

### Patch Changes

- c40cd03: Forward `outputSchema` from tool definitions into the MCP SDK so `tools/list` exposes output JSON Schema for clients (e.g. ChatGPT App Store validation).
  - @mcp-use/cli@3.1.4-canary.0
  - @mcp-use/inspector@5.0.1-canary.0

## 1.27.0

### Minor Changes

- 78cfc8a: feat(mcp-use): add Clerk OAuth provider

  Adds `oauthClerkProvider` for using Clerk as an OAuth authorization
  server in MCP servers. Uses DCR-direct mode — MCP clients register and
  authenticate directly with Clerk, and the MCP server verifies
  Clerk-issued JWTs via JWKS.

  Default scopes are `["profile", "email", "offline_access"]`. The
  `openid` scope is excluded by default because it requires OIDC to be
  explicitly enabled in the Clerk Dashboard; users who need it can pass
  `scopesSupported: ["openid", "profile", "email", "offline_access"]`.

- 78cfc8a: Add support for pre-registered OAuth client IDs (proxy mode), including optional client secrets for confidential clients.

  `UseMcpOptions` / `McpServerOptions` now accept an `oauth: { clientId?, clientSecret?, scope? }` field. When `clientId` is provided, `BrowserOAuthClientProvider` returns it from `clientInformation()` so the SDK skips Dynamic Client Registration — required for MCP servers that proxy through providers like Slack or WorkOS, which strip `registration_endpoint` from metadata. When `clientSecret` is also provided, the SDK auto-switches token-endpoint auth from `none` to `client_secret_basic`/`client_secret_post`, which is useful for providers that don't support PKCE. `scope` is forwarded as `clientMetadata.scope`.

  The Inspector's Authentication dialog now has `Client ID`, `Client Secret`, and `Scope` fields, all wired through `addServer` / `updateServer`.

### Patch Changes

- 78cfc8a: fix(inspector): honor `MCP_USE_ANONYMIZED_TELEMETRY=false` for the
  in-browser `useMcp` posthog-js init.

  Previously the env var only disabled Node-side telemetry and the
  inspector's server-side proxy. The `useMcp` React hook still
  initialized `posthog-js` directly in the browser, sending events to
  `https://eu.i.posthog.com` that ad/tracker blockers would flag.

  The inspector server now mirrors the env var into a per-page runtime
  flag (`window.__MCP_USE_ANONYMIZED_TELEMETRY__`) before the client
  bundle runs; both `mcp-use`'s browser telemetry and the inspector's
  own client telemetry honor that flag, so a single env var disables
  every telemetry path. The flag is page-scoped — it leaves no
  persistent state, so unsetting the env var fully restores defaults on
  the next page load. Default behavior (telemetry on) is unchanged.

- Updated dependencies [78cfc8a]
- Updated dependencies [78cfc8a]
- Updated dependencies [78cfc8a]
- Updated dependencies [78cfc8a]
- Updated dependencies [78cfc8a]
  - @mcp-use/cli@3.1.3
  - @mcp-use/inspector@5.0.0

## 1.27.0-canary.5

### Patch Changes

- 02c8e2d: fix(inspector): honor `MCP_USE_ANONYMIZED_TELEMETRY=false` for the
  in-browser `useMcp` posthog-js init.

  Previously the env var only disabled Node-side telemetry and the
  inspector's server-side proxy. The `useMcp` React hook still
  initialized `posthog-js` directly in the browser, sending events to
  `https://eu.i.posthog.com` that ad/tracker blockers would flag.

  The inspector server now mirrors the env var into a per-page runtime
  flag (`window.__MCP_USE_ANONYMIZED_TELEMETRY__`) before the client
  bundle runs; both `mcp-use`'s browser telemetry and the inspector's
  own client telemetry honor that flag, so a single env var disables
  every telemetry path. The flag is page-scoped — it leaves no
  persistent state, so unsetting the env var fully restores defaults on
  the next page load. Default behavior (telemetry on) is unchanged.

- Updated dependencies [02c8e2d]
  - @mcp-use/inspector@5.0.0-canary.5
  - @mcp-use/cli@3.1.3-canary.5

## 1.27.0-canary.4

### Minor Changes

- afbfa92: Add support for pre-registered OAuth client IDs (proxy mode), including optional client secrets for confidential clients.

  `UseMcpOptions` / `McpServerOptions` now accept an `oauth: { clientId?, clientSecret?, scope? }` field. When `clientId` is provided, `BrowserOAuthClientProvider` returns it from `clientInformation()` so the SDK skips Dynamic Client Registration — required for MCP servers that proxy through providers like Slack or WorkOS, which strip `registration_endpoint` from metadata. When `clientSecret` is also provided, the SDK auto-switches token-endpoint auth from `none` to `client_secret_basic`/`client_secret_post`, which is useful for providers that don't support PKCE. `scope` is forwarded as `clientMetadata.scope`.

  The Inspector's Authentication dialog now has `Client ID`, `Client Secret`, and `Scope` fields, all wired through `addServer` / `updateServer`.

### Patch Changes

- Updated dependencies [afbfa92]
  - @mcp-use/inspector@5.0.0-canary.4
  - @mcp-use/cli@3.1.3-canary.4

## 1.27.0-canary.3

### Patch Changes

- Updated dependencies [870983e]
  - @mcp-use/inspector@5.0.0-canary.3
  - @mcp-use/cli@3.1.3-canary.3

## 1.27.0-canary.2

### Patch Changes

- Updated dependencies [8b4f674]
  - @mcp-use/inspector@5.0.0-canary.2
  - @mcp-use/cli@3.1.3-canary.2

## 1.27.0-canary.1

### Patch Changes

- Updated dependencies [6229097]
  - @mcp-use/cli@3.1.3-canary.1
  - @mcp-use/inspector@5.0.0-canary.1

## 1.27.0-canary.0

### Minor Changes

- 1633518: feat(mcp-use): add Clerk OAuth provider

  Adds `oauthClerkProvider` for using Clerk as an OAuth authorization
  server in MCP servers. Uses DCR-direct mode — MCP clients register and
  authenticate directly with Clerk, and the MCP server verifies
  Clerk-issued JWTs via JWKS.

  Default scopes are `["profile", "email", "offline_access"]`. The
  `openid` scope is excluded by default because it requires OIDC to be
  explicitly enabled in the Clerk Dashboard; users who need it can pass
  `scopesSupported: ["openid", "profile", "email", "offline_access"]`.

### Patch Changes

- @mcp-use/cli@3.1.3-canary.0
- @mcp-use/inspector@5.0.0-canary.0

## 1.26.0

### Minor Changes

- bdf9182: feat(server): add `MCP_DEBUG_LEVEL` env var with `info` / `debug` / `trace` levels for HTTP request logs

  Replaces the previous all-or-nothing `DEBUG=1` behavior with three explicit verbosity levels:
  - `info` (default): one compact line per request, e.g.
    `[19:44:56] POST /mcp [tools/call: greet] OK (1ms)`. Initialize lines now include the client `name/version` and the new short session id (`→ session=92c4e0b`); subsequent requests are prefixed with `sess=<short>`. JSON-RPC and tool errors are extracted from the response body and shown inline (`ERROR cannot divide by zero`).
  - `debug`: same as `info` plus inline `args=<json>` for `tools/call`.
  - `trace`: identical to the legacy `DEBUG=1` output (full request/response headers and bodies).

  `DEBUG=1` (or any truthy `DEBUG` value) continues to work and maps to `trace`. Internal "Session initialized"/"Session closed" log lines are now suppressed at `info` level, since the per-request log line already conveys that information.

### Patch Changes

- bdf9182: fix(widgets): pre-warm widget Vite entries before registration to prevent first-render `/.vite/deps/*` 504s

  When a widget is registered (initial boot, watcher add-file, or watcher add-folder), `mount-widgets-dev` now calls `viteServer.warmupRequest()` followed by `viteServer.waitForRequestsIdle()` for the widget's `entry.tsx` before exposing it to the inspector. This forces Vite's `depsOptimizer` to finish pre-bundling and stabilise its dependency hash before the browser starts requesting `/.vite/deps/*` modules.

  Previously, the inspector iframe could fetch optimized dependencies (e.g. `mcp-use_react.js`) with a stale Vite hash while `depsOptimizer` was still re-bundling, which surfaced as `504 Gateway Timeout` errors and a blank widget on first interaction in Vibe-created sandboxes. Each widget is warmed at most once per dev-server lifetime; failures fall back to a warning so registration never blocks.
  - @mcp-use/cli@3.1.2
  - @mcp-use/inspector@4.0.0

## 1.26.0-canary.1

### Minor Changes

- 1b70559: feat(server): add `MCP_DEBUG_LEVEL` env var with `info` / `debug` / `trace` levels for HTTP request logs

  Replaces the previous all-or-nothing `DEBUG=1` behavior with three explicit verbosity levels:
  - `info` (default): one compact line per request, e.g.
    `[19:44:56] POST /mcp [tools/call: greet] OK (1ms)`. Initialize lines now include the client `name/version` and the new short session id (`→ session=92c4e0b`); subsequent requests are prefixed with `sess=<short>`. JSON-RPC and tool errors are extracted from the response body and shown inline (`ERROR cannot divide by zero`).
  - `debug`: same as `info` plus inline `args=<json>` for `tools/call`.
  - `trace`: identical to the legacy `DEBUG=1` output (full request/response headers and bodies).

  `DEBUG=1` (or any truthy `DEBUG` value) continues to work and maps to `trace`. Internal "Session initialized"/"Session closed" log lines are now suppressed at `info` level, since the per-request log line already conveys that information.

### Patch Changes

- @mcp-use/cli@3.1.2-canary.1
- @mcp-use/inspector@4.0.0-canary.1

## 1.25.2-canary.0

### Patch Changes

- 2636f32: fix(widgets): pre-warm widget Vite entries before registration to prevent first-render `/.vite/deps/*` 504s

  When a widget is registered (initial boot, watcher add-file, or watcher add-folder), `mount-widgets-dev` now calls `viteServer.warmupRequest()` followed by `viteServer.waitForRequestsIdle()` for the widget's `entry.tsx` before exposing it to the inspector. This forces Vite's `depsOptimizer` to finish pre-bundling and stabilise its dependency hash before the browser starts requesting `/.vite/deps/*` modules.

  Previously, the inspector iframe could fetch optimized dependencies (e.g. `mcp-use_react.js`) with a stale Vite hash while `depsOptimizer` was still re-bundling, which surfaced as `504 Gateway Timeout` errors and a blank widget on first interaction in Vibe-created sandboxes. Each widget is warmed at most once per dev-server lifetime; failures fall back to a warning so registration never blocks.
  - @mcp-use/cli@3.1.2-canary.0
  - @mcp-use/inspector@3.0.2-canary.0

## 1.25.1

### Patch Changes

- 806dbca: Fix OAuth error handling to redirect back to inspector instead of showing raw error page. When OAuth callback receives an error (e.g. user denies access), the callback now looks up the stored state first to retrieve the returnUrl, then redirects back to the inspector with error parameters instead of immediately throwing and displaying a raw error page with stack traces. The inspector surfaces these errors as a persistent App-level toast that fires regardless of the active route.
- 806dbca: Fix Supabase OAuth provider to use OAuth 2.1 server endpoints

  `SupabaseOAuthProvider.getAuthEndpoint()` and `getTokenEndpoint()` now return `/auth/v1/oauth/authorize` and `/auth/v1/oauth/token` — the OAuth 2.1 server paths — instead of the legacy `/auth/v1/authorize` and `/auth/v1/token`. Metadata discovery and JWT verification were already correct, so most DCR-direct clients weren't affected, but any code path that consulted the provider's endpoint getters was pointed at the wrong URLs.

  Also clarifies the Supabase provider docs: adds a `<Steps>` prerequisites block (enable OAuth Server, allow dynamic OAuth apps, set consent URL, pick a sign-in method) and notes that `MCP_USE_OAUTH_SUPABASE_PUBLISHABLE_KEY` is used by your consent UI and Supabase SDK calls — the provider itself only needs the project ID.

- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
- Updated dependencies [806dbca]
  - @mcp-use/inspector@3.0.1
  - @mcp-use/cli@3.1.1

## 1.25.1-canary.8

### Patch Changes

- Updated dependencies [d62850e]
  - @mcp-use/inspector@3.0.1-canary.8
  - @mcp-use/cli@3.1.1-canary.8

## 1.25.1-canary.7

### Patch Changes

- dd0ec5f: Fix Supabase OAuth provider to use OAuth 2.1 server endpoints

  `SupabaseOAuthProvider.getAuthEndpoint()` and `getTokenEndpoint()` now return `/auth/v1/oauth/authorize` and `/auth/v1/oauth/token` — the OAuth 2.1 server paths — instead of the legacy `/auth/v1/authorize` and `/auth/v1/token`. Metadata discovery and JWT verification were already correct, so most DCR-direct clients weren't affected, but any code path that consulted the provider's endpoint getters was pointed at the wrong URLs.

  Also clarifies the Supabase provider docs: adds a `<Steps>` prerequisites block (enable OAuth Server, allow dynamic OAuth apps, set consent URL, pick a sign-in method) and notes that `MCP_USE_OAUTH_SUPABASE_PUBLISHABLE_KEY` is used by your consent UI and Supabase SDK calls — the provider itself only needs the project ID.
  - @mcp-use/cli@3.1.1-canary.7
  - @mcp-use/inspector@3.0.1-canary.7

## 1.25.1-canary.6

### Patch Changes

- Updated dependencies [47b446e]
  - @mcp-use/inspector@3.0.1-canary.6
  - @mcp-use/cli@3.1.1-canary.6

## 1.25.1-canary.5

### Patch Changes

- c1ea21a: Fix OAuth error handling to redirect back to inspector instead of showing raw error page. When OAuth callback receives an error (e.g. user denies access), the callback now looks up the stored state first to retrieve the returnUrl, then redirects back to the inspector with error parameters instead of immediately throwing and displaying a raw error page with stack traces. The inspector surfaces these errors as a persistent App-level toast that fires regardless of the active route.
- Updated dependencies [c1ea21a]
  - @mcp-use/inspector@3.0.1-canary.5
  - @mcp-use/cli@3.1.1-canary.5

## 1.25.1-canary.4

### Patch Changes

- Updated dependencies [37a217c]
  - @mcp-use/cli@3.1.1-canary.4
  - @mcp-use/inspector@3.0.1-canary.4

## 1.25.1-canary.3

### Patch Changes

- Updated dependencies [f41869b]
  - @mcp-use/inspector@3.0.1-canary.3
  - @mcp-use/cli@3.1.1-canary.3

## 1.25.1-canary.2

### Patch Changes

- Updated dependencies [dfe35fa]
  - @mcp-use/inspector@3.0.1-canary.2
  - @mcp-use/cli@3.1.1-canary.2

## 1.25.1-canary.1

### Patch Changes

- Updated dependencies [7f4e99d]
  - @mcp-use/cli@3.1.1-canary.1
  - @mcp-use/inspector@3.0.1-canary.1

## 1.25.1-canary.0

### Patch Changes

- Updated dependencies [c864134]
- Updated dependencies [a59476b]
  - @mcp-use/inspector@3.0.1-canary.0
  - @mcp-use/cli@3.1.1-canary.0

## 1.25.0

### Minor Changes

- 1bdec92: feat(cli, mcp-use): Next.js drop-in support for MCP servers
  - `mcp-use dev/build/start --mcp-dir <dir>` lets a Next.js app colocate an MCP server (default `src/mcp/`) alongside its routes, sharing the same `@/*` aliases, Tailwind styles, and component library.
  - Auto-shims Next.js server-runtime modules (`server-only`, `client-only`, `next/cache`, `next/headers`, `next/navigation`, `next/server`) when `next` is detected in `package.json`, so tools transitively imported from the app don't blow up outside a Next runtime. Shim list is centralized in `next-shims-registry.json`.
  - Loads Next.js env cascade (`.env`, `.env.development`, `.env.local`, `.env.development.local`) in the MCP server process.
  - Widget builds fail fast with an actionable error when a widget (or a module it transitively imports) pulls in a Next.js server-only module — widgets run in a browser iframe, so the right fix is to read server data in an MCP tool and pass it through widget props.

- 1bdec92: Refactor OAuth providers to use DCR-direct flow by default

  **Breaking Changes (mcp-use):**
  - Removed proxy mode from built-in OAuth providers (Auth0, WorkOS, Supabase, Keycloak, Better Auth)
  - Built-in providers now only support DCR-direct flow: clients communicate directly with upstream authorization servers
  - `verifyToken` is now an explicit required function for custom providers
  - Provider configurations no longer accept `clientId`/`clientSecret` - use the new `oauthProxy` helper for providers that don't support DCR

  **New Features:**
  - Added `oauthProxy` helper for creating proxy-mode OAuth providers (useful for Google, GitHub, etc.)
  - Added `jwksVerifier` helper function for easy JWKS-based token verification in custom providers
  - Added Auth0 OAuth proxy example demonstrating the new proxy pattern

### Patch Changes

- 1bdec92: Fix OAuth authorize redirect stripping URL path when auth server uses basePath. The `authenticate()` function now preserves the pathname component (e.g. `/api/auth`) instead of reducing the URL to just the origin.
- Updated dependencies [1bdec92]
- Updated dependencies [1bdec92]
- Updated dependencies [1bdec92]
- Updated dependencies [1bdec92]
- Updated dependencies [1bdec92]
- Updated dependencies [1bdec92]
- Updated dependencies [1bdec92]
- Updated dependencies [1bdec92]
  - @mcp-use/cli@3.1.0
  - @mcp-use/inspector@3.0.0

## 1.25.0-canary.9

### Minor Changes

- 6406d28: Refactor OAuth providers to use DCR-direct flow by default

  **Breaking Changes (mcp-use):**
  - Removed proxy mode from built-in OAuth providers (Auth0, WorkOS, Supabase, Keycloak, Better Auth)
  - Built-in providers now only support DCR-direct flow: clients communicate directly with upstream authorization servers
  - `verifyToken` is now an explicit required function for custom providers
  - Provider configurations no longer accept `clientId`/`clientSecret` - use the new `oauthProxy` helper for providers that don't support DCR

  **New Features:**
  - Added `oauthProxy` helper for creating proxy-mode OAuth providers (useful for Google, GitHub, etc.)
  - Added `jwksVerifier` helper function for easy JWKS-based token verification in custom providers
  - Added Auth0 OAuth proxy example demonstrating the new proxy pattern

### Patch Changes

- @mcp-use/cli@3.1.0-canary.9
- @mcp-use/inspector@3.0.0-canary.9

## 1.25.0-canary.8

### Patch Changes

- Updated dependencies [a0500f4]
  - @mcp-use/inspector@3.0.0-canary.8
  - @mcp-use/cli@3.1.0-canary.8

## 1.25.0-canary.7

### Patch Changes

- 25dbaa5: Fix OAuth authorize redirect stripping URL path when auth server uses basePath. The `authenticate()` function now preserves the pathname component (e.g. `/api/auth`) instead of reducing the URL to just the origin.
  - @mcp-use/cli@3.1.0-canary.7
  - @mcp-use/inspector@3.0.0-canary.7

## 1.25.0-canary.6

### Patch Changes

- Updated dependencies [2304ff0]
  - @mcp-use/inspector@3.0.0-canary.6
  - @mcp-use/cli@3.1.0-canary.6

## 1.25.0-canary.5

### Patch Changes

- Updated dependencies [9805a50]
  - @mcp-use/cli@3.1.0-canary.5
  - @mcp-use/inspector@3.0.0-canary.5

## 1.25.0-canary.4

### Patch Changes

- Updated dependencies [4470adc]
  - @mcp-use/cli@3.1.0-canary.4
  - @mcp-use/inspector@3.0.0-canary.4

## 1.25.0-canary.3

### Minor Changes

- 3b79a17: feat(cli, mcp-use): Next.js drop-in support for MCP servers
  - `mcp-use dev/build/start --mcp-dir <dir>` lets a Next.js app colocate an MCP server (default `src/mcp/`) alongside its routes, sharing the same `@/*` aliases, Tailwind styles, and component library.
  - Auto-shims Next.js server-runtime modules (`server-only`, `client-only`, `next/cache`, `next/headers`, `next/navigation`, `next/server`) when `next` is detected in `package.json`, so tools transitively imported from the app don't blow up outside a Next runtime. Shim list is centralized in `next-shims-registry.json`.
  - Loads Next.js env cascade (`.env`, `.env.development`, `.env.local`, `.env.development.local`) in the MCP server process.
  - Widget builds fail fast with an actionable error when a widget (or a module it transitively imports) pulls in a Next.js server-only module — widgets run in a browser iframe, so the right fix is to read server data in an MCP tool and pass it through widget props.

### Patch Changes

- Updated dependencies [3b79a17]
  - @mcp-use/cli@3.1.0-canary.3
  - @mcp-use/inspector@3.0.0-canary.3

## 1.24.3-canary.2

### Patch Changes

- Updated dependencies [e9bb402]
  - @mcp-use/cli@3.1.0-canary.2
  - @mcp-use/inspector@2.2.1-canary.2

## 1.24.3-canary.1

### Patch Changes

- Updated dependencies [468af39]
  - @mcp-use/cli@3.1.0-canary.1
  - @mcp-use/inspector@2.2.1-canary.1

## 1.24.3-canary.0

### Patch Changes

- Updated dependencies [52a98f9]
  - @mcp-use/cli@3.0.3-canary.0
  - @mcp-use/inspector@2.2.1-canary.0

## 1.24.2

### Patch Changes

- e9c4bd0: fix(landing): add deeplink to manufact inspector
- e9c4bd0: ThemeProvider: gate color-scheme on opt-in prop to fix transparent iframe backgrounds.

  Setting `color-scheme` to an explicit value ("dark"/"light") on the iframe document root causes browsers to paint an opaque canvas behind the iframe when the widget and host documents use different schemes, making `background-color: transparent` ineffective.

  `McpUseProvider` now accepts a `colorScheme?: boolean` prop (default `false`). When `false`, `ThemeProvider` clears any previously set `color-scheme` inline style, preserving iframe transparency. When `true`, the previous behavior is restored (useful for widgets that need native dark scrollbars or CSS `light-dark()`).

  Theme class (`dark`/`light`) and `data-theme` attribute are unaffected.

- Updated dependencies [e9c4bd0]
- Updated dependencies [e9c4bd0]
- Updated dependencies [e9c4bd0]
- Updated dependencies [e9c4bd0]
- Updated dependencies [e9c4bd0]
- Updated dependencies [e9c4bd0]
- Updated dependencies [e9c4bd0]
  - @mcp-use/inspector@2.2.0
  - @mcp-use/cli@3.0.2

## 1.24.2-canary.7

### Patch Changes

- Updated dependencies [028cd3c]
  - @mcp-use/inspector@2.2.0-canary.7
  - @mcp-use/cli@3.0.2-canary.7

## 1.24.2-canary.6

### Patch Changes

- Updated dependencies [baa93e6]
  - @mcp-use/inspector@2.2.0-canary.6
  - @mcp-use/cli@3.0.2-canary.6

## 1.24.2-canary.5

### Patch Changes

- bd58d95: fix(landing): add deeplink to manufact inspector
- Updated dependencies [1b64075]
  - @mcp-use/inspector@2.2.0-canary.5
  - @mcp-use/cli@3.0.2-canary.5

## 1.24.2-canary.4

### Patch Changes

- Updated dependencies [d9ac208]
  - @mcp-use/inspector@2.2.0-canary.4
  - @mcp-use/cli@3.0.2-canary.4

## 1.24.2-canary.3

### Patch Changes

- aa86071: ThemeProvider: gate color-scheme on opt-in prop to fix transparent iframe backgrounds.

  Setting `color-scheme` to an explicit value ("dark"/"light") on the iframe document root causes browsers to paint an opaque canvas behind the iframe when the widget and host documents use different schemes, making `background-color: transparent` ineffective.

  `McpUseProvider` now accepts a `colorScheme?: boolean` prop (default `false`). When `false`, `ThemeProvider` clears any previously set `color-scheme` inline style, preserving iframe transparency. When `true`, the previous behavior is restored (useful for widgets that need native dark scrollbars or CSS `light-dark()`).

  Theme class (`dark`/`light`) and `data-theme` attribute are unaffected.
  - @mcp-use/cli@3.0.2-canary.3
  - @mcp-use/inspector@2.2.0-canary.3

## 1.24.2-canary.2

### Patch Changes

- Updated dependencies [ee5abf8]
  - @mcp-use/inspector@2.2.0-canary.2
  - @mcp-use/cli@3.0.2-canary.2

## 1.24.2-canary.1

### Patch Changes

- Updated dependencies [8f8a8e0]
  - @mcp-use/cli@3.0.2-canary.1
  - @mcp-use/inspector@2.1.1-canary.1

## 1.24.2-canary.0

### Patch Changes

- Updated dependencies [5f0c888]
  - @mcp-use/cli@3.0.2-canary.0
  - @mcp-use/inspector@2.1.1-canary.0

## 1.24.1

### Patch Changes

- 30be19e: Fix inspector "Protected resource does not match" error when switching from Via Proxy to Direct connection. The `window.fetch` interceptor installed by `BrowserOAuthClientProvider` is now correctly restored when `useMcp` unmounts, preventing the stale proxy interceptor from interfering with subsequent direct OAuth flows.
- Updated dependencies [30be19e]
- Updated dependencies [30be19e]
- Updated dependencies [30be19e]
  - @mcp-use/inspector@2.1.0
  - @mcp-use/cli@3.0.1

## 1.24.1-canary.3

### Patch Changes

- Updated dependencies [d85fb4f]
  - @mcp-use/inspector@2.1.0-canary.3
  - @mcp-use/cli@3.0.1-canary.3

## 1.24.1-canary.2

### Patch Changes

- Updated dependencies [744db4d]
  - @mcp-use/cli@3.0.1-canary.2
  - @mcp-use/inspector@2.1.0-canary.2

## 1.24.1-canary.1

### Patch Changes

- 9fed740: Fix inspector "Protected resource does not match" error when switching from Via Proxy to Direct connection. The `window.fetch` interceptor installed by `BrowserOAuthClientProvider` is now correctly restored when `useMcp` unmounts, preventing the stale proxy interceptor from interfering with subsequent direct OAuth flows.
  - @mcp-use/cli@3.0.1-canary.1
  - @mcp-use/inspector@2.1.0-canary.1

## 1.24.1-canary.0

### Patch Changes

- Updated dependencies [27bd31c]
  - @mcp-use/inspector@2.1.0-canary.0
  - @mcp-use/cli@3.0.1-canary.0

## 1.24.0

### Minor Changes

- 4070f26: Fix OAuth callback URL for inspector mounted at a sub-path

  **mcp-use:** Add `defaultCallbackUrl` prop to `McpClientProvider` so apps mounted at a sub-path (e.g. `/inspector`) can declare the correct OAuth redirect URL once at the provider level instead of passing it to every `addServer` call.

  **inspector:** Pass `defaultCallbackUrl` pointing to `/inspector/oauth/callback`, which is where the React Router (with `basename="/inspector"`) mounts the `OAuthCallback` component. Previously the callback URL defaulted to `/oauth/callback`, causing a blank screen after OAuth because the route was never matched. The "Redirect URL" field has been removed from the authentication dialog — it was never wired to the actual connection and could not be set to a path the inspector would handle.

- 4070f26: Add scopes customization to oauth providers

### Patch Changes

- 4070f26: Fix deployment flow through cli and github connection
- 4070f26: Add missing fields to CustomProviderConfig to match documentation: `userInfoEndpoint`, `jwksUrl`, `clientId`, `clientSecret`, `mode`, `scopesSupported`, and `audience`. Add `getClientId()`, `getUserInfoEndpoint()`, and `getAudience()` as optional methods on the `OAuthProvider` interface. Replace unsafe `(provider as any).config?.clientId` cast in routes with type-safe `provider.getClientId?.()`.
- 4070f26: Fix Google provider rejecting tool schemas with `propertyNames` keyword.

  `z.record()` causes `@langchain/core` to emit a `propertyNames` field in the JSON Schema output for constrained or enum key types, which Google's Generative AI API rejects. Switching to `z.object({}).catchall()` produces identical runtime behavior while serializing cleanly without `propertyNames`.

- 4070f26: chore(mcp-use): switch several logers to debug from info
- 4070f26: fix(mcp-use): correct handling of paths on windows
- Updated dependencies [4070f26]
- Updated dependencies [4070f26]
- Updated dependencies [4070f26]
- Updated dependencies [4070f26]
- Updated dependencies [4070f26]
- Updated dependencies [4070f26]
  - @mcp-use/inspector@2.0.0
  - @mcp-use/cli@3.0.0

## 1.24.0-canary.5

### Patch Changes

- bba147b: Fix deployment flow through cli and github connection
  - @mcp-use/cli@3.0.0-canary.5
  - @mcp-use/inspector@2.0.0-canary.5

## 1.24.0-canary.4

### Minor Changes

- 1718d68: Fix OAuth callback URL for inspector mounted at a sub-path

  **mcp-use:** Add `defaultCallbackUrl` prop to `McpClientProvider` so apps mounted at a sub-path (e.g. `/inspector`) can declare the correct OAuth redirect URL once at the provider level instead of passing it to every `addServer` call.

  **inspector:** Pass `defaultCallbackUrl` pointing to `/inspector/oauth/callback`, which is where the React Router (with `basename="/inspector"`) mounts the `OAuthCallback` component. Previously the callback URL defaulted to `/oauth/callback`, causing a blank screen after OAuth because the route was never matched. The "Redirect URL" field has been removed from the authentication dialog — it was never wired to the actual connection and could not be set to a path the inspector would handle.

### Patch Changes

- Updated dependencies [1718d68]
- Updated dependencies [2bfcf48]
  - @mcp-use/inspector@2.0.0-canary.4
  - @mcp-use/cli@3.0.0-canary.4

## 1.24.0-canary.3

### Patch Changes

- c51a656: chore(mcp-use): switch several logers to debug from info
- c51a656: fix(mcp-use): correct handling of paths on windows
- Updated dependencies [c51a656]
- Updated dependencies [c51a656]
- Updated dependencies [c51a656]
  - @mcp-use/cli@3.0.0-canary.3
  - @mcp-use/inspector@2.0.0-canary.3

## 1.24.0-canary.2

### Patch Changes

- 9478920: Fix Google provider rejecting tool schemas with `propertyNames` keyword.

  `z.record()` causes `@langchain/core` to emit a `propertyNames` field in the JSON Schema output for constrained or enum key types, which Google's Generative AI API rejects. Switching to `z.object({}).catchall()` produces identical runtime behavior while serializing cleanly without `propertyNames`.

- Updated dependencies [b0e2492]
  - @mcp-use/inspector@2.0.0-canary.2
  - @mcp-use/cli@2.21.5-canary.2

## 1.24.0-canary.1

### Patch Changes

- 4525a5d: Add missing fields to CustomProviderConfig to match documentation: `userInfoEndpoint`, `jwksUrl`, `clientId`, `clientSecret`, `mode`, `scopesSupported`, and `audience`. Add `getClientId()`, `getUserInfoEndpoint()`, and `getAudience()` as optional methods on the `OAuthProvider` interface. Replace unsafe `(provider as any).config?.clientId` cast in routes with type-safe `provider.getClientId?.()`.
  - @mcp-use/cli@2.21.5-canary.1
  - @mcp-use/inspector@2.0.0-canary.1

## 1.24.0-canary.0

### Minor Changes

- c77a998: Add scopes customization to oauth providers

### Patch Changes

- @mcp-use/cli@2.21.5-canary.0
- @mcp-use/inspector@2.0.0-canary.0

## 1.23.1

### Patch Changes

- 6d7fd2e: Fix embedded inspector failing when `langchain` is not installed: export `telFetch` from `mcp-use/telemetry/tel-fetch` so inspector server code does not load the root `mcp-use` entry (which eagerly pulls the agent graph). Log inspector mount failures in development or when `MCP_USE_DEBUG` is set.
- Updated dependencies [6d7fd2e]
  - @mcp-use/inspector@1.0.1
  - @mcp-use/cli@2.21.4

## 1.23.1-canary.0

### Patch Changes

- b3680f9: Fix embedded inspector failing when `langchain` is not installed: export `telFetch` from `mcp-use/telemetry/tel-fetch` so inspector server code does not load the root `mcp-use` entry (which eagerly pulls the agent graph). Log inspector mount failures in development or when `MCP_USE_DEBUG` is set.
- Updated dependencies [b3680f9]
  - @mcp-use/inspector@1.0.1-canary.0
  - @mcp-use/cli@2.21.4-canary.0

## 1.23.0

### Minor Changes

- 6d7c4df: Add `updateServerMetadata()` to `McpClientProvider` for metadata-only updates that do not trigger a reconnection.

  `updateServer()` continues to disconnect and remount the connection for any connection-affecting change (URL, headers, proxy, transport). `updateServerMetadata(id, { name })` updates the configured display name in place without touching the live connection.

  The Inspector uses this new path to let users set editable server aliases in the connection settings dialog. Alias-only edits no longer cause a full reconnect. All Inspector surfaces (dashboard tiles, server dropdown, header export actions, command palette, server info modal, server icon) now resolve the display name through a shared `getServerDisplayName` utility that prefers user-set aliases over server-reported metadata.

  Also fixes an IME composition issue where pressing `Enter` during Chinese/Japanese/Korean input could accidentally submit the connection form.

- 6d7c4df: adds Better Auth oauth provider

### Patch Changes

- 6d7c4df: Updated dependency `@hono/node-server` to `^1.19.13`.
- 6d7c4df: Updated dependency `hono` to `^4.12.12`.
- 6d7c4df: Updated dependency `vite` to `^8.0.5`.
- 6d7c4df: Harden transitive dependencies: tighten root `pnpm` overrides (vite, axios, lodash, hono, brace-expansion, path-to-regexp, yaml) and refresh the lockfile so `pnpm audit` reports no known vulnerabilities; add a `lodash` override to the `mcp-apps` scaffold template for standalone installs.
- 6d7c4df: fix(mcp-use): correct handling of paths on windows
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
- Updated dependencies [6d7c4df]
  - @mcp-use/inspector@1.0.0
  - @mcp-use/cli@2.21.3

## 1.23.0-canary.10

### Patch Changes

- Updated dependencies [5749a4b]
  - @mcp-use/inspector@1.0.0-canary.10
  - @mcp-use/cli@2.21.3-canary.10

## 1.23.0-canary.9

### Patch Changes

- 1118308: Harden transitive dependencies: tighten root `pnpm` overrides (vite, axios, lodash, hono, brace-expansion, path-to-regexp, yaml) and refresh the lockfile so `pnpm audit` reports no known vulnerabilities; add a `lodash` override to the `mcp-apps` scaffold template for standalone installs.
- Updated dependencies [1118308]
  - @mcp-use/cli@2.21.3-canary.9
  - @mcp-use/inspector@1.0.0-canary.9

## 1.23.0-canary.8

### Patch Changes

- 9ec2039: Updated dependency `@hono/node-server` to `^1.19.13`.
- Updated dependencies [9ec2039]
- Updated dependencies [ebc6c9f]
  - @mcp-use/inspector@1.0.0-canary.8
  - @mcp-use/cli@2.21.3-canary.8

## 1.23.0-canary.7

### Minor Changes

- 10ab350: adds Better Auth oauth provider

### Patch Changes

- @mcp-use/cli@2.21.3-canary.7
- @mcp-use/inspector@1.0.0-canary.7

## 1.23.0-canary.6

### Minor Changes

- 47b8052: Add `updateServerMetadata()` to `McpClientProvider` for metadata-only updates that do not trigger a reconnection.

  `updateServer()` continues to disconnect and remount the connection for any connection-affecting change (URL, headers, proxy, transport). `updateServerMetadata(id, { name })` updates the configured display name in place without touching the live connection.

  The Inspector uses this new path to let users set editable server aliases in the connection settings dialog. Alias-only edits no longer cause a full reconnect. All Inspector surfaces (dashboard tiles, server dropdown, header export actions, command palette, server info modal, server icon) now resolve the display name through a shared `getServerDisplayName` utility that prefers user-set aliases over server-reported metadata.

  Also fixes an IME composition issue where pressing `Enter` during Chinese/Japanese/Korean input could accidentally submit the connection form.

### Patch Changes

- Updated dependencies [47b8052]
  - @mcp-use/inspector@1.0.0-canary.6
  - @mcp-use/cli@2.21.3-canary.6

## 1.22.4-canary.5

### Patch Changes

- Updated dependencies [7be81db]
  - @mcp-use/inspector@0.27.0-canary.5
  - @mcp-use/cli@2.21.3-canary.5

## 1.22.4-canary.4

### Patch Changes

- Updated dependencies [36334a0]
  - @mcp-use/inspector@0.26.2-canary.4
  - @mcp-use/cli@2.21.3-canary.4

## 1.22.4-canary.3

### Patch Changes

- 02c26cc: Updated dependency `vite` to `^8.0.5`.
- Updated dependencies [02c26cc]
  - @mcp-use/cli@2.21.3-canary.3
  - @mcp-use/inspector@0.26.2-canary.3

## 1.22.4-canary.2

### Patch Changes

- d09532e: Updated dependency `hono` to `^4.12.12`.
- Updated dependencies [d09532e]
  - @mcp-use/inspector@0.26.2-canary.2
  - @mcp-use/cli@2.21.3-canary.2

## 1.22.4-canary.1

### Patch Changes

- Updated dependencies [62f95c2]
  - @mcp-use/inspector@0.26.2-canary.1
  - @mcp-use/cli@2.21.3-canary.1

## 1.22.4-canary.0

### Patch Changes

- cca2612: fix(mcp-use): correct handling of paths on windows
- Updated dependencies [cca2612]
  - @mcp-use/cli@2.21.3-canary.0
  - @mcp-use/inspector@0.26.2-canary.0

## 1.22.3

### Patch Changes

- Updated dependencies [0ec6068]
  - @mcp-use/inspector@0.26.1
  - @mcp-use/cli@2.21.2

## 1.22.3-canary.0

### Patch Changes

- Updated dependencies [8cb5d98]
  - @mcp-use/inspector@0.26.1-canary.0
  - @mcp-use/cli@2.21.2-canary.0

## 1.22.2

### Patch Changes

- 6255bbd: Fix TypeScript type incompatibility when mcp-use is resolved as multiple pnpm peer-variant copies. Moved \_trackClientInit from a class method to a standalone function so it no longer appears in .d.ts, eliminating nominal type conflicts across duplicate installations.
- 6255bbd: Move mcp-use from dependencies to peerDependencies in @mcp-use/inspector. This ensures consumers share a single copy of mcp-use types, fixing TS2322 errors caused by pnpm creating multiple peer-variant copies with nominally-incompatible private/protected class members. Also add stripInternal to mcp-use tsconfig and mark internal class members with @internal to reduce .d.ts surface area.
- 6255bbd: Revert stripInternal tsconfig option and @internal annotations that broke tool handler type inference in downstream consumers. The peer dep fix for @mcp-use/inspector is the correct solution for pnpm type duplication.
- 6255bbd: chore: fix protected method in the mcpclient to avoid peer dep duplication
- Updated dependencies [6255bbd]
- Updated dependencies [6255bbd]
  - @mcp-use/inspector@0.26.0
  - @mcp-use/cli@2.21.1

## 1.22.2-canary.4

### Patch Changes

- f36d835: Revert stripInternal tsconfig option and @internal annotations that broke tool handler type inference in downstream consumers. The peer dep fix for @mcp-use/inspector is the correct solution for pnpm type duplication.
  - @mcp-use/cli@2.21.1-canary.4

## 1.22.2-canary.3

### Patch Changes

- 1637670: Move mcp-use from dependencies to peerDependencies in @mcp-use/inspector. This ensures consumers share a single copy of mcp-use types, fixing TS2322 errors caused by pnpm creating multiple peer-variant copies with nominally-incompatible private/protected class members. Also add stripInternal to mcp-use tsconfig and mark internal class members with @internal to reduce .d.ts surface area.
- Updated dependencies [1637670]
  - @mcp-use/inspector@0.26.0-canary.3
  - @mcp-use/cli@2.21.1-canary.3

## 1.22.2-canary.2

### Patch Changes

- 6af0a9b: Fix TypeScript type incompatibility when mcp-use is resolved as multiple pnpm peer-variant copies. Moved \_trackClientInit from a class method to a standalone function so it no longer appears in .d.ts, eliminating nominal type conflicts across duplicate installations.
  - @mcp-use/cli@2.21.1-canary.2
  - @mcp-use/inspector@0.26.0-canary.2

## 1.22.2-canary.1

### Patch Changes

- cffa4c3: chore: fix protected method in the mcpclient to avoid peer dep duplication
  - @mcp-use/cli@2.21.1-canary.1
  - @mcp-use/inspector@0.26.0-canary.1

## 1.22.2-canary.0

### Patch Changes

- Updated dependencies [a412783]
  - @mcp-use/inspector@0.26.0-canary.0
  - @mcp-use/cli@2.21.1-canary.0

## 1.22.1

### Patch Changes

- 7d2112e: Fix middleware-to-tool-handler context propagation and `ctx.auth` typing
  - **Singleton AsyncLocalStorage**: The `context-storage` module now uses `globalThis` to guarantee a single `AsyncLocalStorage` instance even when bundlers split the module into multiple chunks. Previously, dynamic imports from resources, prompts, and proxy handlers could get a different instance, causing `getRequestContext()` to return `undefined` in tool handlers.
  - **Safe Hono context extraction**: Replaced `Object.create(honoContext)` with explicit property extraction in `createEnhancedContext` and `buildHandlerContext`. Hono's `Context` class uses JavaScript private fields (`#req`, `#var`) that cannot be accessed through prototype chains — `Object.create()` caused `TypeError: Cannot read private member #req`. The new approach copies public data (variables from `c.set()`, `req`, `env`) into a plain object.
  - **Auth propagation from middleware to tools**: MCP middleware `ctx.auth` and `ctx.state` values are now forwarded to the enhanced tool context before the callback runs. This ensures data set by HTTP middleware (e.g., bearer token auth via `c.set("auth", ...)`) is accessible as `ctx.auth` in tool handlers.
  - **`ctx.auth` typing**: `ctx.auth` is now typed as `AuthInfo | undefined` (instead of `never`) when OAuth is not configured, allowing `if (!ctx.auth) return error(...)` guards in servers with conditional OAuth.

- 7d2112e: Add `fallback` and `onError` props to ErrorBoundary

  The `ErrorBoundary` component now accepts an optional `fallback` prop (`ReactNode` or `(error: Error) => ReactNode`) for custom error UI, and an `onError` callback for error reporting. When no fallback is provided, the default red error card is shown (backward compatible).

- 7d2112e: Improve MCP middleware and tool typing ergonomics
  - **Typed MCP middleware context**: `server.use("mcp:tools/call", ...)` now narrows `ctx.params` to `{ name: string; arguments?: Record<string, unknown> }` instead of the generic `Record<string, unknown>`. Same for `mcp:resources/read` (typed `uri`) and `mcp:prompts/get` (typed `name` + `arguments`). Wildcard patterns (`mcp:*`) fall back to the base `MiddlewareContext`.
  - **`outputSchema` + response helpers compatibility**: Tools with `outputSchema` can now return `text()`, `mix()`, `markdown()`, and other content helpers without a type error. The callback return type is widened to `Promise<TypedCallToolResult<TOutput> | CallToolResult>`.
  - **Typed `resourceTemplate` params**: `server.resourceTemplate()` now accepts an optional `schema` field (Zod schema). When provided, the callback's `params` argument is narrowed to `z.infer<schema>` instead of `Record<string, any>`, matching how `server.tool()` works.

- Updated dependencies [7d2112e]
- Updated dependencies [7d2112e]
- Updated dependencies [7d2112e]
- Updated dependencies [7d2112e]
  - @mcp-use/cli@2.21.0
  - @mcp-use/inspector@0.25.1

## 1.22.1-canary.5

### Patch Changes

- Updated dependencies [e743a07]
  - @mcp-use/cli@2.21.0-canary.5
  - @mcp-use/inspector@0.25.1-canary.5

## 1.22.1-canary.4

### Patch Changes

- Updated dependencies [7934749]
  - @mcp-use/cli@2.21.0-canary.4
  - @mcp-use/inspector@0.25.1-canary.4

## 1.22.1-canary.3

### Patch Changes

- Updated dependencies [f28452e]
  - @mcp-use/inspector@0.25.1-canary.3
  - @mcp-use/cli@2.20.1-canary.3

## 1.22.1-canary.2

### Patch Changes

- 8500c06: Add `fallback` and `onError` props to ErrorBoundary

  The `ErrorBoundary` component now accepts an optional `fallback` prop (`ReactNode` or `(error: Error) => ReactNode`) for custom error UI, and an `onError` callback for error reporting. When no fallback is provided, the default red error card is shown (backward compatible).

- Updated dependencies [8500c06]
  - @mcp-use/inspector@0.25.1-canary.2
  - @mcp-use/cli@2.20.1-canary.2

## 1.22.1-canary.1

### Patch Changes

- cfa387a: Fix middleware-to-tool-handler context propagation and `ctx.auth` typing
  - **Singleton AsyncLocalStorage**: The `context-storage` module now uses `globalThis` to guarantee a single `AsyncLocalStorage` instance even when bundlers split the module into multiple chunks. Previously, dynamic imports from resources, prompts, and proxy handlers could get a different instance, causing `getRequestContext()` to return `undefined` in tool handlers.
  - **Safe Hono context extraction**: Replaced `Object.create(honoContext)` with explicit property extraction in `createEnhancedContext` and `buildHandlerContext`. Hono's `Context` class uses JavaScript private fields (`#req`, `#var`) that cannot be accessed through prototype chains — `Object.create()` caused `TypeError: Cannot read private member #req`. The new approach copies public data (variables from `c.set()`, `req`, `env`) into a plain object.
  - **Auth propagation from middleware to tools**: MCP middleware `ctx.auth` and `ctx.state` values are now forwarded to the enhanced tool context before the callback runs. This ensures data set by HTTP middleware (e.g., bearer token auth via `c.set("auth", ...)`) is accessible as `ctx.auth` in tool handlers.
  - **`ctx.auth` typing**: `ctx.auth` is now typed as `AuthInfo | undefined` (instead of `never`) when OAuth is not configured, allowing `if (!ctx.auth) return error(...)` guards in servers with conditional OAuth.
  - @mcp-use/cli@2.20.1-canary.1
  - @mcp-use/inspector@0.25.1-canary.1

## 1.22.1-canary.0

### Patch Changes

- 5e9d5a8: Improve MCP middleware and tool typing ergonomics
  - **Typed MCP middleware context**: `server.use("mcp:tools/call", ...)` now narrows `ctx.params` to `{ name: string; arguments?: Record<string, unknown> }` instead of the generic `Record<string, unknown>`. Same for `mcp:resources/read` (typed `uri`) and `mcp:prompts/get` (typed `name` + `arguments`). Wildcard patterns (`mcp:*`) fall back to the base `MiddlewareContext`.
  - **`outputSchema` + response helpers compatibility**: Tools with `outputSchema` can now return `text()`, `mix()`, `markdown()`, and other content helpers without a type error. The callback return type is widened to `Promise<TypedCallToolResult<TOutput> | CallToolResult>`.
  - **Typed `resourceTemplate` params**: `server.resourceTemplate()` now accepts an optional `schema` field (Zod schema). When provided, the callback's `params` argument is narrowed to `z.infer<schema>` instead of `Record<string, any>`, matching how `server.tool()` works.
  - @mcp-use/cli@2.20.1-canary.0
  - @mcp-use/inspector@0.25.1-canary.0

## 1.22.0

### Minor Changes

- b76df33: Add MCP operation-level middleware via `server.use('mcp:...', fn)`

  Introduces a Hono-style middleware system for intercepting MCP operations (tool calls, resource reads, prompt fetches, and list operations) without touching HTTP routing.

  **Usage:**

  ```typescript
  // Fires for every MCP operation
  server.use("mcp:*", async (ctx, next) => {
    console.log(`→ [${ctx.method}]`, ctx.params);
    const result = await next();
    console.log(`← [${ctx.method}] done`);
    return result;
  });

  // Only fires on tool calls — ctx and next are fully typed automatically
  server.use("mcp:tools/call", async (ctx, next) => {
    if (ctx.auth && !ctx.auth.scopes.includes("tools:*")) {
      throw new Error("Insufficient scope");
    }
    return next();
  });
  ```

  **Patterns:** `mcp:*` (catch-all), `mcp:tools/call`, `mcp:tools/list`, `mcp:resources/read`, `mcp:resources/list`, `mcp:prompts/get`, `mcp:prompts/list`.

  **`MiddlewareContext` fields:** `method`, `params`, `session`, `auth` (populated when OAuth is configured), `state` (per-request `Map` for sharing data between middleware).

  Middleware runs in registration order (onion model), is compatible with HMR, and integrates with the existing OAuth scope system. The `mcp:` prefix clearly distinguishes MCP middleware from HTTP middleware registered via the same `server.use()` call.

- b76df33: feat(tunnel): added ability to start/stop the mcp-use dev tunnel from the inspector
- b76df33: Add `useFiles` React hook with `isSupported` detection and `modelVisible` option for file attachment widgets; add `ModelContext` component and `modelContext` imperative API for injecting model context from the server side.
- b76df33: Upgrade to Vite 8 with Rolldown bundler and fix all test failures

  **Vite 8 upgrade:**
  - Upgrade `vite` from v7.3.x to v8.0.0 across all packages and examples
  - Upgrade `@vitejs/plugin-react` from v5 to v6 (Oxc-based transforms)
  - Migrate `rollupOptions` to `rolldownOptions` in all vite configs
  - Migrate `optimizeDeps.esbuildOptions` to `optimizeDeps.rolldownOptions`
  - Remove deprecated `build.commonjsOptions` (no-op in Vite 8)
  - Switch programmatic `minify: "esbuild"` to `minify: true` (Oxc minifier)
  - Extract `loadConfigFile` from `config.ts` into `config-file.ts` to prevent `require("fs")` leaking into browser bundles

  **Test fixes (35 pre-existing failures):**
  - Telemetry tests: add `vi.resetModules()`, async flush for fire-and-forget tracking, `type: "ai"` on agent mocks, missing adapter methods
  - response-helpers tests: update widget() assertions from `_meta["mcp-use/props"]` to `structuredContent` per SEP-1865
  - HMR tests: add widget config markers, mock `registerPrompt`/`registerResource` on sessions, update error message assertions
  - ai_sdk_compatibility test: fix `StreamEvent` import to `@langchain/core/tracers/log_stream`
  - distributed-stream-routing test: use OS-assigned ports instead of fixed port to eliminate EADDRINUSE race condition
  - browser-react-no-node-deps test: fix `execSync` → `execFileSync` call

  **CI fix:**
  - Quote glob in `test:unit` script (`'tests/integration/**'`) to prevent shell expansion that was causing unit tests to be silently skipped in CI
  - Add missing dev dependencies: `ai`, `morgan`, `@types/morgan`, `express-rate-limit`

### Patch Changes

- b76df33: fix: map elicit result `content` to `data` for Zod validation

  The MCP SDK returns form data in `result.content` per the elicitation spec, but
  `createElicitMethod` was checking `result.data` which is always undefined from
  spec-compliant clients. This caused Zod validation to never run, leaving
  `result.data` as undefined for tool callbacks using `ctx.elicit()` with a Zod
  schema.

  Now reads `result.content` (with fallback to `result.data` for backward
  compatibility) and always maps accepted form data to `result.data` so the typed
  API works correctly. Also fixes the inspector to send `content` instead of
  `data` per the MCP spec.

- b76df33: Fix sse-retry conformance test for React client by passing explicit reconnectionOptions to preserve SDK-level SSE reconnection when autoReconnect is disabled
- b76df33: Fix tool name collisions between resources, prompts, and regular tools in LangChainAdapter. The `reserveName` method now checks whether the prefixed fallback name (`resource_<name>` / `prompt_<name>`) is itself already taken, falling back to a numeric suffix when needed. Prompt names are also now sanitized consistently with resource names.
- Updated dependencies [b76df33]
- Updated dependencies [b76df33]
- Updated dependencies [b76df33]
  - @mcp-use/inspector@0.25.0
  - @mcp-use/cli@2.20.0

## 1.22.0-canary.6

### Minor Changes

- 9d48429: feat(tunnel): added ability to start/stop the mcp-use dev tunnel from the inspector

### Patch Changes

- Updated dependencies [9d48429]
  - @mcp-use/inspector@0.25.0-canary.6
  - @mcp-use/cli@2.20.0-canary.6

## 1.22.0-canary.5

### Patch Changes

- bd7c2f6: fix: map elicit result `content` to `data` for Zod validation

  The MCP SDK returns form data in `result.content` per the elicitation spec, but
  `createElicitMethod` was checking `result.data` which is always undefined from
  spec-compliant clients. This caused Zod validation to never run, leaving
  `result.data` as undefined for tool callbacks using `ctx.elicit()` with a Zod
  schema.

  Now reads `result.content` (with fallback to `result.data` for backward
  compatibility) and always maps accepted form data to `result.data` so the typed
  API works correctly. Also fixes the inspector to send `content` instead of
  `data` per the MCP spec.

- Updated dependencies [bd7c2f6]
  - @mcp-use/inspector@0.25.0-canary.5
  - @mcp-use/cli@2.20.0-canary.5

## 1.22.0-canary.4

### Patch Changes

- f2034db: Fix tool name collisions between resources, prompts, and regular tools in LangChainAdapter. The `reserveName` method now checks whether the prefixed fallback name (`resource_<name>` / `prompt_<name>`) is itself already taken, falling back to a numeric suffix when needed. Prompt names are also now sanitized consistently with resource names.
  - @mcp-use/cli@2.20.0-canary.4
  - @mcp-use/inspector@0.25.0-canary.4

## 1.22.0-canary.3

### Minor Changes

- 42c93aa: Add `useFiles` React hook with `isSupported` detection and `modelVisible` option for file attachment widgets; add `ModelContext` component and `modelContext` imperative API for injecting model context from the server side.

### Patch Changes

- @mcp-use/cli@2.20.0-canary.3
- @mcp-use/inspector@0.25.0-canary.3

## 1.22.0-canary.2

### Minor Changes

- 0f9ee27: Add MCP operation-level middleware via `server.use('mcp:...', fn)`

  Introduces a Hono-style middleware system for intercepting MCP operations (tool calls, resource reads, prompt fetches, and list operations) without touching HTTP routing.

  **Usage:**

  ```typescript
  // Fires for every MCP operation
  server.use("mcp:*", async (ctx, next) => {
    console.log(`→ [${ctx.method}]`, ctx.params);
    const result = await next();
    console.log(`← [${ctx.method}] done`);
    return result;
  });

  // Only fires on tool calls — ctx and next are fully typed automatically
  server.use("mcp:tools/call", async (ctx, next) => {
    if (ctx.auth && !ctx.auth.scopes.includes("tools:*")) {
      throw new Error("Insufficient scope");
    }
    return next();
  });
  ```

  **Patterns:** `mcp:*` (catch-all), `mcp:tools/call`, `mcp:tools/list`, `mcp:resources/read`, `mcp:resources/list`, `mcp:prompts/get`, `mcp:prompts/list`.

  **`MiddlewareContext` fields:** `method`, `params`, `session`, `auth` (populated when OAuth is configured), `state` (per-request `Map` for sharing data between middleware).

  Middleware runs in registration order (onion model), is compatible with HMR, and integrates with the existing OAuth scope system. The `mcp:` prefix clearly distinguishes MCP middleware from HTTP middleware registered via the same `server.use()` call.

### Patch Changes

- @mcp-use/cli@2.20.0-canary.2
- @mcp-use/inspector@0.25.0-canary.2

## 1.22.0-canary.1

### Minor Changes

- e103822: Upgrade to Vite 8 with Rolldown bundler and fix all test failures

  **Vite 8 upgrade:**
  - Upgrade `vite` from v7.3.x to v8.0.0 across all packages and examples
  - Upgrade `@vitejs/plugin-react` from v5 to v6 (Oxc-based transforms)
  - Migrate `rollupOptions` to `rolldownOptions` in all vite configs
  - Migrate `optimizeDeps.esbuildOptions` to `optimizeDeps.rolldownOptions`
  - Remove deprecated `build.commonjsOptions` (no-op in Vite 8)
  - Switch programmatic `minify: "esbuild"` to `minify: true` (Oxc minifier)
  - Extract `loadConfigFile` from `config.ts` into `config-file.ts` to prevent `require("fs")` leaking into browser bundles

  **Test fixes (35 pre-existing failures):**
  - Telemetry tests: add `vi.resetModules()`, async flush for fire-and-forget tracking, `type: "ai"` on agent mocks, missing adapter methods
  - response-helpers tests: update widget() assertions from `_meta["mcp-use/props"]` to `structuredContent` per SEP-1865
  - HMR tests: add widget config markers, mock `registerPrompt`/`registerResource` on sessions, update error message assertions
  - ai_sdk_compatibility test: fix `StreamEvent` import to `@langchain/core/tracers/log_stream`
  - distributed-stream-routing test: use OS-assigned ports instead of fixed port to eliminate EADDRINUSE race condition
  - browser-react-no-node-deps test: fix `execSync` → `execFileSync` call

  **CI fix:**
  - Quote glob in `test:unit` script (`'tests/integration/**'`) to prevent shell expansion that was causing unit tests to be silently skipped in CI
  - Add missing dev dependencies: `ai`, `morgan`, `@types/morgan`, `express-rate-limit`

### Patch Changes

- Updated dependencies [e103822]
  - @mcp-use/inspector@0.25.0-canary.1
  - @mcp-use/cli@2.20.0-canary.1

## 1.21.6-canary.0

### Patch Changes

- aafea7b: Fix sse-retry conformance test for React client by passing explicit reconnectionOptions to preserve SDK-level SSE reconnection when autoReconnect is disabled
  - @mcp-use/cli@2.19.1-canary.0
  - @mcp-use/inspector@0.24.6-canary.0

## 1.21.5

### Patch Changes

- ed0fadb: Fix Dependabot security alerts by updating vulnerable dependencies across the monorepo. Added pnpm overrides for flatted, tar, hono, @hono/node-server, express-rate-limit, dompurify, minimatch, rollup, form-data, lodash, and other transitive deps. Bumped direct deps: hono to ^4.12.7 (mcp-use, inspector), tar to ^7.5.11 (cli, create-mcp-use-app). Pinned @modelcontextprotocol/sdk to ^1.25.2 in proxy example.
- ed0fadb: fix: TypeGen crash with Zod v4 enum schemas

  `zod-to-ts` assumed Zod v3 internal structure for `ZodEnum` (`_def.values`), which is `undefined` in Zod v4 where enum entries are stored as `_def.entries`. This caused `Cannot read properties of undefined (reading 'map')` during `mcp-use build` for any project using `z.enum()` with Zod v4. Added v4 fallback paths for `ZodEnum`, `ZodDiscriminatedUnion`, and null guards for `ZodUnion` and `ZodTuple`. Also fixed the CLI reporting success when type generation silently failed.

- ed0fadb: fix: move zod from dependencies to peerDependencies to prevent duplicate type trees

  When users had a different Zod v4 version than the bundled 4.3.5, npm/pnpm installed two copies. TypeScript then performed expensive structural comparisons of deeply recursive Zod types at every `server.tool()` and `ctx.elicit()` boundary, causing type errors or OOM during `mcp-use build`. Making Zod a peerDependency (`^4.0.0`) ensures a single shared instance.

- Updated dependencies [ed0fadb]
- Updated dependencies [ed0fadb]
- Updated dependencies [ed0fadb]
- Updated dependencies [ed0fadb]
  - @mcp-use/cli@2.19.0
  - @mcp-use/inspector@0.24.5

## 1.21.5-canary.3

### Patch Changes

- b4ad0e8: fix: TypeGen crash with Zod v4 enum schemas

  `zod-to-ts` assumed Zod v3 internal structure for `ZodEnum` (`_def.values`), which is `undefined` in Zod v4 where enum entries are stored as `_def.entries`. This caused `Cannot read properties of undefined (reading 'map')` during `mcp-use build` for any project using `z.enum()` with Zod v4. Added v4 fallback paths for `ZodEnum`, `ZodDiscriminatedUnion`, and null guards for `ZodUnion` and `ZodTuple`. Also fixed the CLI reporting success when type generation silently failed.

- Updated dependencies [b4ad0e8]
  - @mcp-use/cli@2.19.0-canary.3
  - @mcp-use/inspector@0.24.5-canary.3

## 1.21.5-canary.2

### Patch Changes

- Updated dependencies [3b0a426]
  - @mcp-use/cli@2.19.0-canary.2
  - @mcp-use/inspector@0.24.5-canary.2

## 1.21.5-canary.1

### Patch Changes

- 98e09ce: Fix Dependabot security alerts by updating vulnerable dependencies across the monorepo. Added pnpm overrides for flatted, tar, hono, @hono/node-server, express-rate-limit, dompurify, minimatch, rollup, form-data, lodash, and other transitive deps. Bumped direct deps: hono to ^4.12.7 (mcp-use, inspector), tar to ^7.5.11 (cli, create-mcp-use-app). Pinned @modelcontextprotocol/sdk to ^1.25.2 in proxy example.
- Updated dependencies [98e09ce]
  - @mcp-use/inspector@0.24.5-canary.1
  - @mcp-use/cli@2.19.0-canary.1

## 1.21.5-canary.0

### Patch Changes

- cfff626: fix: move zod from dependencies to peerDependencies to prevent duplicate type trees

  When users had a different Zod v4 version than the bundled 4.3.5, npm/pnpm installed two copies. TypeScript then performed expensive structural comparisons of deeply recursive Zod types at every `server.tool()` and `ctx.elicit()` boundary, causing type errors or OOM during `mcp-use build`. Making Zod a peerDependency (`^4.0.0`) ensures a single shared instance.

- Updated dependencies [cfff626]
  - @mcp-use/cli@2.19.0-canary.0
  - @mcp-use/inspector@0.24.5-canary.0

## 1.21.4

### Patch Changes

- dd77c3c: Fix regression where `ctx.auth` and other request context properties were `undefined` in tool callbacks. `mountMcp()` now wraps all `transport.handleRequest()` calls with `runWithContext()` so that `getRequestContext()` (AsyncLocalStorage) is properly populated during the MCP request lifecycle.
- dd77c3c: Fix stale mcp-use-ts references in README badges, image URLs, and eslint config to point to the new mcp-use monorepo
- Updated dependencies [dd77c3c]
- Updated dependencies [dd77c3c]
  - @mcp-use/cli@2.18.3
  - @mcp-use/inspector@0.24.4

## 1.21.4-canary.2

### Patch Changes

- 4a5e680: Fix regression where `ctx.auth` and other request context properties were `undefined` in tool callbacks. `mountMcp()` now wraps all `transport.handleRequest()` calls with `runWithContext()` so that `getRequestContext()` (AsyncLocalStorage) is properly populated during the MCP request lifecycle.
  - @mcp-use/cli@2.18.3-canary.2
  - @mcp-use/inspector@0.24.4-canary.2

## 1.21.4-canary.1

### Patch Changes

- d4f479d: Fix stale mcp-use-ts references in README badges, image URLs, and eslint config to point to the new mcp-use monorepo
- Updated dependencies [d4f479d]
  - @mcp-use/cli@2.18.3-canary.1
  - @mcp-use/inspector@0.24.4-canary.1

## 1.21.4-canary.0

### Patch Changes

- Updated dependencies [98f6521]
  - @mcp-use/cli@2.18.3-canary.0
  - @mcp-use/inspector@0.24.4-canary.0

## 1.21.3

### Patch Changes

- Updated dependencies [d8d6d06]
  - @mcp-use/inspector@0.24.3
  - @mcp-use/cli@2.18.2

## 1.21.3-canary.0

### Patch Changes

- Updated dependencies [c509930]
  - @mcp-use/inspector@0.24.3-canary.0
  - @mcp-use/cli@2.18.2-canary.0

## 1.21.2

### Patch Changes

- Updated dependencies [8d55603]
  - @mcp-use/inspector@0.24.2
  - @mcp-use/cli@2.18.1

## 1.21.2-canary.0

### Patch Changes

- Updated dependencies [76320f0]
  - @mcp-use/inspector@0.24.2-canary.0
  - @mcp-use/cli@2.18.1-canary.0

## 1.21.1

### Patch Changes

- ed1b034: fix(server): session recovery after restart returns 400 and distributed SSE stream routing
  - Fixed #1133: session recovery after server deploy/restart no longer returns `400 Bad Request: Server not initialized`. The transport's internal `_initialized` flag is now set during session recovery so reconnecting clients work seamlessly.
  - Integrated `StreamManager` into the server's notification and request flow so that standalone SSE messages (notifications, server-to-client requests) are routed through Redis Pub/Sub in distributed/load-balanced deployments.
  - Added distributed request/response correlation: server-to-client requests (sampling, elicitation, roots listing) are now correctly routed back to the originating server instance when the client's response POST lands on a different server.
  - Made `RedisStreamManager.create()` idempotent to handle SSE reconnects without duplicate Pub/Sub subscriptions.

- ed1b034: fix(stream-manager): remove console warn for session disconnetion in dev mode to avoid noise caused by hmr
- Updated dependencies [ed1b034]
- Updated dependencies [ed1b034]
- Updated dependencies [ed1b034]
- Updated dependencies [ed1b034]
- Updated dependencies [ed1b034]
- Updated dependencies [ed1b034]
  - @mcp-use/cli@2.18.0
  - @mcp-use/inspector@0.24.1

## 1.21.1-canary.6

### Patch Changes

- Updated dependencies [3cae276]
  - @mcp-use/inspector@0.24.1-canary.6
  - @mcp-use/cli@2.18.0-canary.6

## 1.21.1-canary.5

### Patch Changes

- fb91a61: fix(stream-manager): remove console warn for session disconnetion in dev mode to avoid noise caused by hmr
  - @mcp-use/cli@2.18.0-canary.5
  - @mcp-use/inspector@0.24.1-canary.5

## 1.21.1-canary.4

### Patch Changes

- bdeaadb: fix(server): session recovery after restart returns 400 and distributed SSE stream routing
  - Fixed #1133: session recovery after server deploy/restart no longer returns `400 Bad Request: Server not initialized`. The transport's internal `_initialized` flag is now set during session recovery so reconnecting clients work seamlessly.
  - Integrated `StreamManager` into the server's notification and request flow so that standalone SSE messages (notifications, server-to-client requests) are routed through Redis Pub/Sub in distributed/load-balanced deployments.
  - Added distributed request/response correlation: server-to-client requests (sampling, elicitation, roots listing) are now correctly routed back to the originating server instance when the client's response POST lands on a different server.
  - Made `RedisStreamManager.create()` idempotent to handle SSE reconnects without duplicate Pub/Sub subscriptions.
  - @mcp-use/cli@2.18.0-canary.4
  - @mcp-use/inspector@0.24.1-canary.4

## 1.21.1-canary.3

### Patch Changes

- Updated dependencies [53fb21a]
  - @mcp-use/cli@2.18.0-canary.3
  - @mcp-use/inspector@0.24.1-canary.3

## 1.21.1-canary.2

### Patch Changes

- Updated dependencies [c5d5a75]
  - @mcp-use/cli@2.18.0-canary.2
  - @mcp-use/inspector@0.24.1-canary.2

## 1.21.1-canary.1

### Patch Changes

- Updated dependencies [3e3767e]
  - @mcp-use/inspector@0.24.1-canary.1
  - @mcp-use/cli@2.17.1-canary.1

## 1.21.1-canary.0

### Patch Changes

- Updated dependencies [f0a872a]
- Updated dependencies [ef8a0cf]
  - @mcp-use/inspector@0.24.1-canary.0
  - @mcp-use/cli@2.17.1-canary.0

## 1.21.0

### Minor Changes

- 405fac7: Add client-side completion support for prompt arguments and resource template URIs

  This adds the ability for clients to request autocomplete suggestions from MCP servers:
  - New `complete()` method in BaseConnector, MCPSession, and useMcp hook
  - Support for both prompt argument completion and resource template URI completion
  - Fix `resourceTemplates` state population in useMcp (was never populated)
  - New `refreshResourceTemplates()` method in useMcp hook
  - Comprehensive documentation in docs/typescript/client/completion.mdx
  - Integration and unit tests for completion functionality

  The completion feature allows servers to provide static lists or dynamic callbacks for suggesting values based on partial user input, improving the autocomplete experience in client applications.

- 405fac7: feat: ctx.client.user(), MCP Apps capabilities fix, CLI tunnel inspector fix

  ### mcp-use

  **ctx.client.user()** — new per-invocation method on the tool context that extracts
  end-user metadata from `tools/call` `params._meta` (e.g. ChatGPT `openai/*` keys).
  Returns `undefined` on clients that don't send request-level metadata. The `UserContext`
  type is exported from `mcp-use/server`.

  ChatGPT runs a single MCP session for all users of a deployed app — use
  `ctx.client.user()?.subject` to identify the user and `?.conversationId` for the thread.

  **MCP Apps capabilities fix** — patched the MCP SDK's `ClientCapabilitiesSchema` to
  preserve the `extensions` field (previously stripped by Zod's default `$strip` mode),
  so `ctx.client.supportsApps()` now correctly returns `true` for clients that advertise
  `io.modelcontextprotocol/ui`.

  **Session isolation fix** — `findSessionContext` no longer falls back to an arbitrary
  session when the correct one can't be matched, preventing metadata leakage in
  multi-connection scenarios.

  ### @mcp-use/inspector

  The Inspector now advertises MCP Apps support (`io.modelcontextprotocol/ui`) in its
  `clientInfo.capabilities`. The `capabilities` field on `McpClientProvider.clientInfo`
  is a new provider-level default that applies to all server connections, including those
  restored from localStorage.

  ### @mcp-use/cli

  Fixed: the Inspector's `?autoConnect=` URL now uses the tunnel endpoint when
  `--tunnel` is active, instead of always pointing to `localhost`.

- 405fac7: feat(server): improve mcp server landing page
- 405fac7: feat(widgets): allow sendFollowUp to accept multiple mime types and not just text
- 405fac7: feat(auth): enhance OAuth flow and CORS handling
- 405fac7: Added robust SDK-level server composition and proxying functionality via `MCPServer.proxy()`.

  You can now natively compose multiple disparate MCP servers into a single unified aggregator server. The SDK automatically orchestrates connections, proxies JSON-RPC execution (including tools, prompts, resources, LLM Sampling, Elicitation, and Progress), translates schemas on the fly, prefixes namespaces to prevent collisions, and multiplexes list-changed notifications up to the parent connection.

  ### Example

  ```typescript
  import { MCPServer } from "mcp-use/server";
  const server = new MCPServer({ name: "UnifiedServer", version: "1.0.0" });

  await server.proxy({
    database: {
      command: "npx",
      args: ["-y", "@modelcontextprotocol/server-postgres", "postgresql://..."],
    },
    weather: {
      url: "https://weather-mcp.example.com/mcp",
    },
  });

  await server.listen(3000);
  ```

- 405fac7: feat(mcp-use): enhance host information and capabilities handling

### Patch Changes

- 405fac7: Fix TypeScript type errors when passing Express middleware to server.use(). Added proper type definitions to accept both Hono and Express middleware, with Express middleware automatically detected and adapted at runtime.
- 405fac7: feat(mcp-use): enhance reconnection and health check options
- 405fac7: Fix unwanted GET polling when autoReconnect is disabled and spurious duplicate server warning in StrictMode
  - When `autoReconnect: false` is set, the SDK transport's internal SSE reconnection is now also disabled (`maxRetries: 0`), preventing recurring GET requests every ~2 seconds to streamable HTTP servers.
  - `getServer()` now checks `serverConfigs` in addition to the reactive `servers` state, so a `!getServer(id)` guard works correctly in React StrictMode double-mount scenarios. The duplicate `addServer` log has been downgraded to debug level.

- 405fac7: fix(widgets): fix metadata enrichment in dev
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
- Updated dependencies [405fac7]
  - @mcp-use/inspector@0.24.0
  - @mcp-use/cli@2.17.0

## 1.21.0-canary.14

### Minor Changes

- cb89d47: feat(auth): enhance OAuth flow and CORS handling

### Patch Changes

- Updated dependencies [cb89d47]
  - @mcp-use/inspector@0.24.0-canary.14
  - @mcp-use/cli@2.17.0-canary.14

## 1.21.0-canary.13

### Minor Changes

- a903dd8: feat(server): improve mcp server landing page

### Patch Changes

- @mcp-use/cli@2.17.0-canary.13
- @mcp-use/inspector@0.24.0-canary.13

## 1.21.0-canary.12

### Patch Changes

- 2f6a6a0: fix(widgets): fix metadata enrichment in dev
  - @mcp-use/cli@2.17.0-canary.12
  - @mcp-use/inspector@0.24.0-canary.12

## 1.21.0-canary.11

### Patch Changes

- Updated dependencies [71fd188]
  - @mcp-use/inspector@0.24.0-canary.11
  - @mcp-use/cli@2.17.0-canary.11

## 1.21.0-canary.10

### Patch Changes

- Updated dependencies [28dc5bf]
  - @mcp-use/cli@2.17.0-canary.10
  - @mcp-use/inspector@0.24.0-canary.10

## 1.21.0-canary.9

### Patch Changes

- Updated dependencies [3aa578a]
  - @mcp-use/inspector@0.24.0-canary.9
  - @mcp-use/cli@2.17.0-canary.9

## 1.21.0-canary.8

### Minor Changes

- 0747144: Added robust SDK-level server composition and proxying functionality via `MCPServer.proxy()`.

  You can now natively compose multiple disparate MCP servers into a single unified aggregator server. The SDK automatically orchestrates connections, proxies JSON-RPC execution (including tools, prompts, resources, LLM Sampling, Elicitation, and Progress), translates schemas on the fly, prefixes namespaces to prevent collisions, and multiplexes list-changed notifications up to the parent connection.

  ### Example

  ```typescript
  import { MCPServer } from "mcp-use/server";
  const server = new MCPServer({ name: "UnifiedServer", version: "1.0.0" });

  await server.proxy({
    database: {
      command: "npx",
      args: ["-y", "@modelcontextprotocol/server-postgres", "postgresql://..."],
    },
    weather: {
      url: "https://weather-mcp.example.com/mcp",
    },
  });

  await server.listen(3000);
  ```

### Patch Changes

- @mcp-use/cli@2.17.0-canary.8
- @mcp-use/inspector@0.24.0-canary.8

## 1.21.0-canary.7

### Minor Changes

- 6f66801: feat(widgets): allow sendFollowUp to accept multiple mime types and not just text

### Patch Changes

- @mcp-use/cli@2.17.0-canary.7
- @mcp-use/inspector@0.24.0-canary.7

## 1.21.0-canary.6

### Patch Changes

- d9f946a: feat(mcp-use): enhance reconnection and health check options
  - @mcp-use/cli@2.17.0-canary.6
  - @mcp-use/inspector@0.24.0-canary.6

## 1.21.0-canary.5

### Patch Changes

- Updated dependencies [2a8a9d1]
  - @mcp-use/inspector@0.24.0-canary.5
  - @mcp-use/cli@2.17.0-canary.5

## 1.21.0-canary.4

### Minor Changes

- 22a596e: feat: ctx.client.user(), MCP Apps capabilities fix, CLI tunnel inspector fix

  ### mcp-use

  **ctx.client.user()** — new per-invocation method on the tool context that extracts
  end-user metadata from `tools/call` `params._meta` (e.g. ChatGPT `openai/*` keys).
  Returns `undefined` on clients that don't send request-level metadata. The `UserContext`
  type is exported from `mcp-use/server`.

  ChatGPT runs a single MCP session for all users of a deployed app — use
  `ctx.client.user()?.subject` to identify the user and `?.conversationId` for the thread.

  **MCP Apps capabilities fix** — patched the MCP SDK's `ClientCapabilitiesSchema` to
  preserve the `extensions` field (previously stripped by Zod's default `$strip` mode),
  so `ctx.client.supportsApps()` now correctly returns `true` for clients that advertise
  `io.modelcontextprotocol/ui`.

  **Session isolation fix** — `findSessionContext` no longer falls back to an arbitrary
  session when the correct one can't be matched, preventing metadata leakage in
  multi-connection scenarios.

  ### @mcp-use/inspector

  The Inspector now advertises MCP Apps support (`io.modelcontextprotocol/ui`) in its
  `clientInfo.capabilities`. The `capabilities` field on `McpClientProvider.clientInfo`
  is a new provider-level default that applies to all server connections, including those
  restored from localStorage.

  ### @mcp-use/cli

  Fixed: the Inspector's `?autoConnect=` URL now uses the tunnel endpoint when
  `--tunnel` is active, instead of always pointing to `localhost`.

- 22a596e: feat(mcp-use): enhance host information and capabilities handling

### Patch Changes

- Updated dependencies [22a596e]
- Updated dependencies [22a596e]
  - @mcp-use/inspector@0.24.0-canary.4
  - @mcp-use/cli@2.17.0-canary.4

## 1.21.0-canary.3

### Minor Changes

- 560a0ae: Add client-side completion support for prompt arguments and resource template URIs

  This adds the ability for clients to request autocomplete suggestions from MCP servers:
  - New `complete()` method in BaseConnector, MCPSession, and useMcp hook
  - Support for both prompt argument completion and resource template URI completion
  - Fix `resourceTemplates` state population in useMcp (was never populated)
  - New `refreshResourceTemplates()` method in useMcp hook
  - Comprehensive documentation in docs/typescript/client/completion.mdx
  - Integration and unit tests for completion functionality

  The completion feature allows servers to provide static lists or dynamic callbacks for suggesting values based on partial user input, improving the autocomplete experience in client applications.

### Patch Changes

- @mcp-use/cli@2.16.1-canary.3
- @mcp-use/inspector@0.23.2-canary.3

## 1.20.6-canary.2

### Patch Changes

- Updated dependencies [869eafa]
  - @mcp-use/cli@2.16.1-canary.2
  - @mcp-use/inspector@0.23.2-canary.2

## 1.20.6-canary.1

### Patch Changes

- 1c8d340: Fix TypeScript type errors when passing Express middleware to server.use(). Added proper type definitions to accept both Hono and Express middleware, with Express middleware automatically detected and adapted at runtime.
  - @mcp-use/cli@2.16.1-canary.1
  - @mcp-use/inspector@0.23.2-canary.1

## 1.20.6-canary.0

### Patch Changes

- Updated dependencies [85f4bff]
  - @mcp-use/inspector@0.23.2-canary.0
  - @mcp-use/cli@2.16.1-canary.0

## 1.20.5

### Patch Changes

- Updated dependencies [ee3c3c5]
  - @mcp-use/cli@2.16.0
  - @mcp-use/inspector@0.23.1

## 1.20.5-canary.0

### Patch Changes

- Updated dependencies [7a5f8fd]
  - @mcp-use/cli@2.16.0-canary.0
  - @mcp-use/inspector@0.23.1-canary.0

## 1.20.4

### Patch Changes

- Updated dependencies [9d8a73f]
  - @mcp-use/inspector@0.23.0
  - @mcp-use/cli@2.15.4

## 1.20.4-canary.0

### Patch Changes

- Updated dependencies [452d274]
  - @mcp-use/inspector@0.23.0-canary.0
  - @mcp-use/cli@2.15.4-canary.0

## 1.20.3

### Patch Changes

- Updated dependencies [322ab53]
  - @mcp-use/inspector@0.22.3
  - @mcp-use/cli@2.15.3

## 1.20.3-canary.0

### Patch Changes

- Updated dependencies [0b9818c]
  - @mcp-use/inspector@0.22.3-canary.0
  - @mcp-use/cli@2.15.3-canary.0

## 1.20.2

### Patch Changes

- 455c18f: feat(mcp-use): enhance health monitoring with dynamic authentication headers
  - Added `getAuthHeaders` parameter to `startConnectionHealthMonitoring` for customizable authentication headers during health checks.
  - Implemented logic to fetch and include authorization headers in the health check request, improving security and flexibility.
  - Updated `useMcp` to provide a default implementation for `getAuthHeaders`, ensuring seamless integration with authentication providers.
  - Modified middleware to allow HEAD requests without authentication, facilitating health checks and keep-alive functionality.

- 455c18f: Add `exposeResourcesAsTools` and `exposePromptsAsTools` options to `MCPAgentOptions` (both default to `true` for backward compatibility). The inspector chat tab now sets both to `false`, so the agent only exposes actual MCP tools to the LLM rather than fabricating tool wrappers for resources and prompts.
- Updated dependencies [455c18f]
- Updated dependencies [455c18f]
- Updated dependencies [455c18f]
  - @mcp-use/inspector@0.22.2
  - @mcp-use/cli@2.15.2

## 1.20.2-canary.0

### Patch Changes

- 89cdd0b: feat(mcp-use): enhance health monitoring with dynamic authentication headers
  - Added `getAuthHeaders` parameter to `startConnectionHealthMonitoring` for customizable authentication headers during health checks.
  - Implemented logic to fetch and include authorization headers in the health check request, improving security and flexibility.
  - Updated `useMcp` to provide a default implementation for `getAuthHeaders`, ensuring seamless integration with authentication providers.
  - Modified middleware to allow HEAD requests without authentication, facilitating health checks and keep-alive functionality.

- 89cdd0b: Add `exposeResourcesAsTools` and `exposePromptsAsTools` options to `MCPAgentOptions` (both default to `true` for backward compatibility). The inspector chat tab now sets both to `false`, so the agent only exposes actual MCP tools to the LLM rather than fabricating tool wrappers for resources and prompts.
- Updated dependencies [89cdd0b]
- Updated dependencies [89cdd0b]
- Updated dependencies [89cdd0b]
  - @mcp-use/inspector@0.22.2-canary.0
  - @mcp-use/cli@2.15.2-canary.0

## 1.20.1

### Patch Changes

- 4546a8c: feat(widget): introduce invoking and invoked status texts for improved user feedback
  - Added `invoking` and `invoked` properties to widget metadata, allowing for customizable status messages during tool execution.
  - Updated relevant components to display these status texts, enhancing user experience by providing real-time feedback on tool operations.
  - Adjusted default values for `invoking` and `invoked` to improve clarity and consistency across widgets.
  - Refactored documentation to reflect changes in widget metadata and usage patterns, ensuring developers have clear guidance on implementing these features.

- Updated dependencies [4546a8c]
  - @mcp-use/inspector@0.22.1
  - @mcp-use/cli@2.15.1

## 1.20.1-canary.0

### Patch Changes

- fbd1dfe: feat(widget): introduce invoking and invoked status texts for improved user feedback
  - Added `invoking` and `invoked` properties to widget metadata, allowing for customizable status messages during tool execution.
  - Updated relevant components to display these status texts, enhancing user experience by providing real-time feedback on tool operations.
  - Adjusted default values for `invoking` and `invoked` to improve clarity and consistency across widgets.
  - Refactored documentation to reflect changes in widget metadata and usage patterns, ensuring developers have clear guidance on implementing these features.

- Updated dependencies [fbd1dfe]
  - @mcp-use/inspector@0.22.1-canary.0
  - @mcp-use/cli@2.15.1-canary.0

## 1.20.0

### Minor Changes

- 5a73b41: - **@mcp-use/cli**: Add update check that notifies when a newer mcp-use release is available. Fix TSC build to use node with increased heap and avoid npx installing wrong package.
  - **create-mcp-use-app**: Add @types/react and @types/react-dom to template devDependencies. Slim down generated READMEs. Improve mcp-apps template (Carousel, product-search-result widget). Include .mcp-use in tsconfig. Fix postinstall script.
  - **@mcp-use/inspector**: Improve Iframe Console with expandable logs, level filter, search, resizable height. Add widget debug context for chat. Refactor MCP Apps debug controls (tool props JSON view, required props hint, SEP-1865 semantics). Add CDN build. Fix useSyncExternalStore first-render handling.
  - **mcp-use**: Refactor useWidget to merge props from toolInput and structuredContent per SEP-1865. Add updateModelContext and useMcp clientOptions. Add typescript to examples.

- 5a73b41: - fix(@mcp-use/cli): fallback MCP_URL when tunnel is unavailable
  - fix(create-mcp-use-app): product-search-result template styling and CSP metadata
  - fix(@mcp-use/inspector): reconnect logic; Tools tab only sends explicitly set fields; resource annotations include \_meta
  - feat(@mcp-use/inspector): CSP violations panel with clear action; widget re-execution on CSP mode change; CSP mode for Apps SDK
  - fix(mcp-use): widget CSP fallback from tool metadata; protocol and mount-widgets-dev improvements

### Patch Changes

- 5a73b41: Fix WorkOS subdomain config to accept full AuthKit domain (e.g., `name.authkit.app`) instead of just the prefix
- 5a73b41: Fix(docs): updated docs to remove outdated information
- Updated dependencies [5a73b41]
- Updated dependencies [5a73b41]
- Updated dependencies [5a73b41]
- Updated dependencies [5a73b41]
  - @mcp-use/inspector@0.22.0
  - @mcp-use/cli@2.15.0

## 1.20.0-canary.4

### Patch Changes

- 76f10ec: Fix(docs): updated docs to remove outdated information
- Updated dependencies [76f10ec]
  - @mcp-use/inspector@0.22.0-canary.4
  - @mcp-use/cli@2.15.0-canary.4

## 1.20.0-canary.3

### Minor Changes

- f55c56e: - fix(@mcp-use/cli): fallback MCP_URL when tunnel is unavailable
  - fix(create-mcp-use-app): product-search-result template styling and CSP metadata
  - fix(@mcp-use/inspector): reconnect logic; Tools tab only sends explicitly set fields; resource annotations include \_meta
  - feat(@mcp-use/inspector): CSP violations panel with clear action; widget re-execution on CSP mode change; CSP mode for Apps SDK
  - fix(mcp-use): widget CSP fallback from tool metadata; protocol and mount-widgets-dev improvements

### Patch Changes

- Updated dependencies [f55c56e]
  - @mcp-use/inspector@0.22.0-canary.3
  - @mcp-use/cli@2.15.0-canary.3

## 1.20.0-canary.2

### Minor Changes

- ba0ea97: - **@mcp-use/cli**: Add update check that notifies when a newer mcp-use release is available. Fix TSC build to use node with increased heap and avoid npx installing wrong package.
  - **create-mcp-use-app**: Add @types/react and @types/react-dom to template devDependencies. Slim down generated READMEs. Improve mcp-apps template (Carousel, product-search-result widget). Include .mcp-use in tsconfig. Fix postinstall script.
  - **@mcp-use/inspector**: Improve Iframe Console with expandable logs, level filter, search, resizable height. Add widget debug context for chat. Refactor MCP Apps debug controls (tool props JSON view, required props hint, SEP-1865 semantics). Add CDN build. Fix useSyncExternalStore first-render handling.
  - **mcp-use**: Refactor useWidget to merge props from toolInput and structuredContent per SEP-1865. Add updateModelContext and useMcp clientOptions. Add typescript to examples.

### Patch Changes

- Updated dependencies [ba0ea97]
  - @mcp-use/inspector@0.22.0-canary.2
  - @mcp-use/cli@2.15.0-canary.2

## 1.19.4-canary.1

### Patch Changes

- 8abb736: Fix WorkOS subdomain config to accept full AuthKit domain (e.g., `name.authkit.app`) instead of just the prefix
  - @mcp-use/cli@2.14.1-canary.1
  - @mcp-use/inspector@0.21.2-canary.1

## 1.19.4-canary.0

### Patch Changes

- Updated dependencies [fbf1308]
  - @mcp-use/inspector@0.21.2-canary.0
  - @mcp-use/cli@2.14.1-canary.0

## 1.19.3

### Patch Changes

- Updated dependencies [7ebe19a]
  - @mcp-use/cli@2.14.0
  - @mcp-use/inspector@0.21.1

## 1.19.3-canary.0

### Patch Changes

- Updated dependencies [54324c6]
  - @mcp-use/cli@2.14.0-canary.0
  - @mcp-use/inspector@0.21.1-canary.0

## 1.19.2

### Patch Changes

- 179e800: feat(inspector): update ToolExecutionPanel to copy full tool definition
  fix(server): correctly convert nested inpout schema args for tools
- 179e800: - fix(cli): add generate-types command for auto-generating TypeScript type definitions from tool schemas
  - fix(mcp-use): add useCallTool hook for calling MCP tools with TanStack Query-like state management
  - fix(mcp-use): add tool registry type generation utilities (generateToolRegistryTypes, zod-to-ts converter)
  - fix(mcp-use): add type-safe helper functions for tool calls via generateHelpers
  - fix(inspector): improve MCPAppsRenderer loading logic and enhance useWidget for iframe handling
  - chore(create-mcp-use-app): update project template dependencies and TypeScript configuration
  - docs: add comprehensive useCallTool documentation and update CLI reference with generate-types command
- 179e800: feat(inspector): enhance ToolsTab with bulk paste functionality and auto-fill dialog
  - Implemented a new bulk paste feature in the ToolsTab component, allowing users to paste JSON or JavaScript object syntax directly into input fields.
  - Added an auto-fill dialog to confirm updates when pasted data would overwrite existing values, improving user experience and data integrity.
  - Introduced utility functions for parsing pasted text and converting JavaScript object syntax to valid JSON.
  - Updated ToolInputForm and ToolExecutionPanel components to support the new bulk paste functionality and visual feedback for auto-filled fields.

- 179e800: Add everything-server example and CI step for compile-time type regression testing
- Updated dependencies [179e800]
- Updated dependencies [179e800]
- Updated dependencies [179e800]
  - @mcp-use/inspector@0.21.0
  - @mcp-use/cli@2.13.10

## 1.19.2-canary.2

### Patch Changes

- 9ef0ba9: - fix(cli): add generate-types command for auto-generating TypeScript type definitions from tool schemas
  - fix(mcp-use): add useCallTool hook for calling MCP tools with TanStack Query-like state management
  - fix(mcp-use): add tool registry type generation utilities (generateToolRegistryTypes, zod-to-ts converter)
  - fix(mcp-use): add type-safe helper functions for tool calls via generateHelpers
  - fix(inspector): improve MCPAppsRenderer loading logic and enhance useWidget for iframe handling
  - chore(create-mcp-use-app): update project template dependencies and TypeScript configuration
  - docs: add comprehensive useCallTool documentation and update CLI reference with generate-types command
- Updated dependencies [9ef0ba9]
  - @mcp-use/inspector@0.21.0-canary.2
  - @mcp-use/cli@2.13.10-canary.2

## 1.19.2-canary.1

### Patch Changes

- 894d21a: feat(inspector): update ToolExecutionPanel to copy full tool definition
  fix(server): correctly convert nested inpout schema args for tools
- 894d21a: feat(inspector): enhance ToolsTab with bulk paste functionality and auto-fill dialog
  - Implemented a new bulk paste feature in the ToolsTab component, allowing users to paste JSON or JavaScript object syntax directly into input fields.
  - Added an auto-fill dialog to confirm updates when pasted data would overwrite existing values, improving user experience and data integrity.
  - Introduced utility functions for parsing pasted text and converting JavaScript object syntax to valid JSON.
  - Updated ToolInputForm and ToolExecutionPanel components to support the new bulk paste functionality and visual feedback for auto-filled fields.

- Updated dependencies [894d21a]
- Updated dependencies [894d21a]
  - @mcp-use/inspector@0.21.0-canary.1
  - @mcp-use/cli@2.13.10-canary.1

## 1.19.2-canary.0

### Patch Changes

- 1921562: Add everything-server example and CI step for compile-time type regression testing
  - @mcp-use/cli@2.13.10-canary.0
  - @mcp-use/inspector@0.20.2-canary.0

## 1.19.1

### Patch Changes

- 568901e: fix(inspector): improve MCPAppsRenderer loading logic and enhance useWidget for iframe handling
- Updated dependencies [568901e]
  - @mcp-use/inspector@0.20.1
  - @mcp-use/cli@2.13.9

## 1.19.1-canary.0

### Patch Changes

- 344dc29: fix(inspector): improve MCPAppsRenderer loading logic and enhance useWidget for iframe handling
- Updated dependencies [344dc29]
  - @mcp-use/inspector@0.20.1-canary.0
  - @mcp-use/cli@2.13.9-canary.0

## 1.19.0

### Minor Changes

- f4e2a70: fix(client): ensure client is 100% conformant

### Patch Changes

- f4e2a70: fix: use correct MIME type for mcp_apps resource counting and disable telemetry in local test runs
- f4e2a70: fix(logging): enhance logging consistency and add tests for logLevel behavior
  - Improved logging consistency across React components by ensuring all console calls are routed through the Logger class.
  - Added comprehensive tests for Logger configuration, including log level filtering and silent mode behavior.
  - Updated useMcp hook tests to validate logLevel options and their interactions.

- f4e2a70: feat(mcp): implement direct stdio connector handling in Node.js client
  - Added support for handling the stdio connector directly within the Node.js MCPClient, allowing for command and argument configuration
  - Updated the loadConfigFile function to dynamically import the fs module, preventing unnecessary inclusion in browser bundles
  - Enhanced error handling to ensure that the stdio connector is only utilized in the appropriate environment, improving compatibility and clarity

- f4e2a70: Fix prompt method to use generic type inference for callback parameters, matching the pattern used by the tool method
- f4e2a70: fix(inspector): enhance MCPAppsRenderer and OpenAIComponentRenderer with loading states and spinner
  - Updated MCPAppsRenderer to include a loading spinner during widget initialization, improving user feedback.
  - Introduced a new `isReady` state to manage the loading state effectively.
  - Enhanced OpenAIComponentRenderer to adjust display properties based on the new configuration for better responsiveness.
  - Added a maximum width for the Picture-in-Picture mode in MCP_APPS_CONFIG for improved layout control.
  - Refactored iframe loading handling to ensure proper state management and user experience during loading phases.

- f4e2a70: fix(vitest): add support for additional file extensions in Vitest configuration
- f4e2a70: Fix error() return type to be compatible with tool callbacks that use outputSchema
- f4e2a70: feat(inspector): improve loading state and UI feedback in OpenAIComponentRenderer
  - Replaced shimmer animation with a Spinner component for a more consistent loading experience
  - Introduced a skeleton loading state that only displays on the initial load of the widget
  - Updated ToolResultDisplay to adjust the order of view checks for better clarity
  - Enhanced ToolsList to conditionally display parameter counts based on tool input schemas

- f4e2a70: Fix TypedCallToolResult type inference by replacing Omit<CallToolResult, "structuredContent"> with explicit property declarations
- f4e2a70: feat(inspector): add log copying functionality and enhance theme handling
  - Implemented a new feature in IframeConsole to copy all logs to the clipboard, providing users with an easy way to access console logs
  - Enhanced OpenAIComponentRenderer to manage widget readiness state and apply theme changes dynamically, improving user experience and visual consistency
  - Updated ThemeProvider to synchronize theme application with Tailwind dark mode and OpenAI Apps SDK design tokens, ensuring a seamless theme transition
  - Added a message signaling to the parent window when the widget is ready, enhancing communication between components

- Updated dependencies [f4e2a70]
- Updated dependencies [f4e2a70]
- Updated dependencies [f4e2a70]
- Updated dependencies [f4e2a70]
- Updated dependencies [f4e2a70]
- Updated dependencies [f4e2a70]
- Updated dependencies [f4e2a70]
- Updated dependencies [f4e2a70]
  - @mcp-use/inspector@0.20.0
  - @mcp-use/cli@2.13.8

## 1.19.0-canary.6

### Patch Changes

- 8774ef6: fix(inspector): enhance MCPAppsRenderer and OpenAIComponentRenderer with loading states and spinner
  - Updated MCPAppsRenderer to include a loading spinner during widget initialization, improving user feedback.
  - Introduced a new `isReady` state to manage the loading state effectively.
  - Enhanced OpenAIComponentRenderer to adjust display properties based on the new configuration for better responsiveness.
  - Added a maximum width for the Picture-in-Picture mode in MCP_APPS_CONFIG for improved layout control.
  - Refactored iframe loading handling to ensure proper state management and user experience during loading phases.

- Updated dependencies [8774ef6]
  - @mcp-use/inspector@0.20.0-canary.6
  - @mcp-use/cli@2.13.8-canary.6

## 1.19.0-canary.5

### Patch Changes

- 5823280: Fix error() return type to be compatible with tool callbacks that use outputSchema
  - @mcp-use/cli@2.13.8-canary.5
  - @mcp-use/inspector@0.20.0-canary.5

## 1.19.0-canary.4

### Patch Changes

- 21b3c0b: fix(logging): enhance logging consistency and add tests for logLevel behavior
  - Improved logging consistency across React components by ensuring all console calls are routed through the Logger class.
  - Added comprehensive tests for Logger configuration, including log level filtering and silent mode behavior.
  - Updated useMcp hook tests to validate logLevel options and their interactions.
  - @mcp-use/cli@2.13.8-canary.4
  - @mcp-use/inspector@0.20.0-canary.4

## 1.19.0-canary.3

### Patch Changes

- aa81040: feat(mcp): implement direct stdio connector handling in Node.js client
  - Added support for handling the stdio connector directly within the Node.js MCPClient, allowing for command and argument configuration
  - Updated the loadConfigFile function to dynamically import the fs module, preventing unnecessary inclusion in browser bundles
  - Enhanced error handling to ensure that the stdio connector is only utilized in the appropriate environment, improving compatibility and clarity

- aa81040: fix(vitest): add support for additional file extensions in Vitest configuration
- aa81040: feat(inspector): improve loading state and UI feedback in OpenAIComponentRenderer
  - Replaced shimmer animation with a Spinner component for a more consistent loading experience
  - Introduced a skeleton loading state that only displays on the initial load of the widget
  - Updated ToolResultDisplay to adjust the order of view checks for better clarity
  - Enhanced ToolsList to conditionally display parameter counts based on tool input schemas

- aa81040: feat(inspector): add log copying functionality and enhance theme handling
  - Implemented a new feature in IframeConsole to copy all logs to the clipboard, providing users with an easy way to access console logs
  - Enhanced OpenAIComponentRenderer to manage widget readiness state and apply theme changes dynamically, improving user experience and visual consistency
  - Updated ThemeProvider to synchronize theme application with Tailwind dark mode and OpenAI Apps SDK design tokens, ensuring a seamless theme transition
  - Added a message signaling to the parent window when the widget is ready, enhancing communication between components

- Updated dependencies [aa81040]
- Updated dependencies [aa81040]
- Updated dependencies [dea387a]
- Updated dependencies [aa81040]
- Updated dependencies [aa81040]
- Updated dependencies [aa81040]
  - @mcp-use/inspector@0.20.0-canary.3
  - @mcp-use/cli@2.13.8-canary.3

## 1.19.0-canary.2

### Patch Changes

- e8383a7: Fix prompt method to use generic type inference for callback parameters, matching the pattern used by the tool method
- 1a8a2a6: Fix TypedCallToolResult type inference by replacing Omit<CallToolResult, "structuredContent"> with explicit property declarations
  - @mcp-use/cli@2.13.8-canary.2
  - @mcp-use/inspector@0.19.1-canary.2

## 1.19.0-canary.1

### Patch Changes

- 8e3cfb8: fix: use correct MIME type for mcp_apps resource counting and disable telemetry in local test runs
- Updated dependencies [8e3cfb8]
  - @mcp-use/cli@2.13.8-canary.1
  - @mcp-use/inspector@0.19.1-canary.1

## 1.19.0-canary.0

### Minor Changes

- df8d269: fix(client): ensure client is 100% conformant

### Patch Changes

- @mcp-use/cli@2.13.8-canary.0
- @mcp-use/inspector@0.19.1-canary.0

## 1.18.0

### Minor Changes

- 3334a67: feat(inspector): enhance elicitation support with SEP-1330 enum schema variants
- 3334a67: feat(server): added DNS rebinding protection support and updated documentation

### Patch Changes

- 3334a67: feat(mcp): defer server callbacks to avoid render-phase updates
- Updated dependencies [3334a67]
- Updated dependencies [3334a67]
  - @mcp-use/inspector@0.19.0
  - @mcp-use/cli@2.13.7

## 1.18.0-canary.3

### Patch Changes

- Updated dependencies [c93a061]
  - @mcp-use/inspector@0.19.0-canary.3
  - @mcp-use/cli@2.13.7-canary.3

## 1.18.0-canary.2

### Minor Changes

- 4a2b65e: feat(inspector): enhance elicitation support with SEP-1330 enum schema variants

### Patch Changes

- Updated dependencies [4a2b65e]
  - @mcp-use/inspector@0.19.0-canary.2
  - @mcp-use/cli@2.13.7-canary.2

## 1.18.0-canary.1

### Patch Changes

- 52cd2a8: feat(mcp): defer server callbacks to avoid render-phase updates
  - @mcp-use/cli@2.13.7-canary.1
  - @mcp-use/inspector@0.18.10-canary.1

## 1.18.0-canary.0

### Minor Changes

- c3a452a: feat(server): added DNS rebinding protection support and updated documentation

### Patch Changes

- @mcp-use/cli@2.13.7-canary.0
- @mcp-use/inspector@0.18.10-canary.0

## 1.17.4

### Patch Changes

- 32b19dc: fix(logs): reduces the amount of noisy logs in the dev server
- 32b19dc: fix: propagate widget resources and resource templates to existing MCP sessions during HMR

  Widget resources added via the file watcher (e.g. creating a new file in `resources/`) were registered in the server wrapper but never pushed to already-connected sessions. This caused "Resource ui://widget/... not found" errors when tools referencing those widgets were executed without reconnecting.
  - Added `propagateWidgetResourcesToSessions()` to push newly registered widget resources and templates to all active sessions independently of tool registration
  - Fixed resource template lookup key mismatch in `addWidgetTool` and `propagateWidgetResourcesToSessions` — templates are stored by name only, not `name:uri`
  - Track propagated resources in `sessionRegisteredRefs` so `syncPrimitive` preserves them across subsequent HMR cycles

- Updated dependencies [32b19dc]
- Updated dependencies [32b19dc]
  - @mcp-use/cli@2.13.6
  - @mcp-use/inspector@0.18.9

## 1.17.4-canary.0

### Patch Changes

- 4a118cc: fix(logs): reduces the amount of noisy logs in the dev server
- 4a118cc: fix: propagate widget resources and resource templates to existing MCP sessions during HMR

  Widget resources added via the file watcher (e.g. creating a new file in `resources/`) were registered in the server wrapper but never pushed to already-connected sessions. This caused "Resource ui://widget/... not found" errors when tools referencing those widgets were executed without reconnecting.
  - Added `propagateWidgetResourcesToSessions()` to push newly registered widget resources and templates to all active sessions independently of tool registration
  - Fixed resource template lookup key mismatch in `addWidgetTool` and `propagateWidgetResourcesToSessions` — templates are stored by name only, not `name:uri`
  - Track propagated resources in `sessionRegisteredRefs` so `syncPrimitive` preserves them across subsequent HMR cycles

- Updated dependencies [4a118cc]
- Updated dependencies [4a118cc]
  - @mcp-use/cli@2.13.6-canary.0
  - @mcp-use/inspector@0.18.9-canary.0

## 1.17.3

### Patch Changes

- Updated dependencies [af55041]
- Updated dependencies [af55041]
  - @mcp-use/inspector@0.18.8
  - @mcp-use/cli@2.13.5

## 1.17.3-canary.1

### Patch Changes

- Updated dependencies [f437838]
  - @mcp-use/inspector@0.18.8-canary.1
  - @mcp-use/cli@2.13.5-canary.1

## 1.17.3-canary.0

### Patch Changes

- Updated dependencies [a872832]
  - @mcp-use/inspector@0.18.8-canary.0
  - @mcp-use/cli@2.13.5-canary.0

## 1.17.2

### Patch Changes

- 5760a10: fix(ui-resource-registration): improve metadata handling for server origin injection
  - Simplified the logic for enriching UI resource definitions with server origin by ensuring metadata is created if it doesn't exist.
  - Enhanced the handling of Content Security Policy (CSP) to always include server origin in resourceDomains, connectDomains, and baseUriDomains, improving security and functionality for widget loading.

- Updated dependencies [5760a10]
- Updated dependencies [5760a10]
  - @mcp-use/inspector@0.18.7
  - @mcp-use/cli@2.13.4

## 1.17.2-canary.1

### Patch Changes

- 3644a26: fix(ui-resource-registration): improve metadata handling for server origin injection
  - Simplified the logic for enriching UI resource definitions with server origin by ensuring metadata is created if it doesn't exist.
  - Enhanced the handling of Content Security Policy (CSP) to always include server origin in resourceDomains, connectDomains, and baseUriDomains, improving security and functionality for widget loading.
  - @mcp-use/cli@2.13.4-canary.1
  - @mcp-use/inspector@0.18.7-canary.1

## 1.17.2-canary.0

### Patch Changes

- Updated dependencies [316870a]
- Updated dependencies [3d48e19]
  - @mcp-use/inspector@0.18.7-canary.0
  - @mcp-use/cli@2.13.4-canary.0

## 1.17.1

### Patch Changes

- df428ca: fix(useWidget): enhance type definitions for useWidget result
  - @mcp-use/cli@2.13.3
  - @mcp-use/inspector@0.18.6

## 1.17.1-canary.0

### Patch Changes

- 637edaf: fix(useWidget): enhance type definitions for useWidget result
  - @mcp-use/cli@2.13.3-canary.0
  - @mcp-use/inspector@0.18.6-canary.0

## 1.17.0

### Minor Changes

- 3d787ba: Added support for resource template variable completion: resource templates can define callbacks.complete per variable (either a string array or a callback), which is normalized and passed to the SDK so clients can use autocomplete for URI template variables. Includes toResourceTemplateCompleteCallbacks, unit tests, and documentation updates.

  Also publishes completion capabilities in TypeScript SDK MCP servers.

- 3d787ba: Improve reverse proxy support, HMR reliability, and widget handling across the stack.

  ### `mcp-use` (minor)
  - **Custom HTTP route HMR:** Routes registered via `server.get()`, `server.post()`, etc. now support hot module replacement — handlers are hot-swapped without a server restart.
  - **Widget tool protection during HMR:** Widget-registered tools are no longer accidentally removed when `index.ts` HMR sync runs. Tools tagged with `_meta["mcp-use/widget"]` are preserved.
  - **Dynamic widget creation:** The `resources/` directory is auto-created if missing, and the dev server watches for new widgets even if none exist at startup. This enables workflows where widgets are created after the server starts
  - **Vite HMR WebSocket proxy:** A TCP-level WebSocket proxy forwards HMR `upgrade` requests from the main HTTP server to Vite's internal HMR port, enabling hot-reload through reverse proxies (ngrok, E2B, Cloudflare tunnels).
  - **`MCP_URL` environment variable:** Can now be pre-set by users to an external proxy URL. The CLI will not overwrite it, allowing correct widget URLs and HMR WebSocket connections behind reverse proxies.
  - **List-changed notifications on removal:** `sendToolListChanged()`, `sendResourceListChanged()`, and `sendPromptListChanged()` now also fire when items are removed, not just added/updated.
  - **Pre-initialized request handlers:** Tool, prompt, and resource request handlers are pre-registered during session initialization, preventing `Method not found` errors when clients connect to servers that start with zero registrations and add them dynamically.
  - **Widget type default changed:** Widgets now default to `mcpApps` (dual-protocol) instead of `appsSdk`. Only widgets with explicit `appsSdkMetadata` and no `metadata` field use the `appsSdk` type.
  - **`window.__mcpServerUrl` global:** Injected into widget HTML so widgets can dynamically construct API URLs (e.g., `fetch(window.__mcpServerUrl + '/api/data')`).

  ### `@mcp-use/inspector` (patch)
  - **`MCP_INSPECTOR_FRAME_ANCESTORS` env var:** Controls which origins can embed the inspector in iframes via CSP `frame-ancestors`. Defaults to `*` in development and `'self'` in production.
  - **`mountInspector` configuration options:** Accepts new `devMode` (boolean) and `sandboxOrigin` (string | null) options for controlling sandbox behavior in different deployment environments.
  - **Runtime config injection:** `__MCP_DEV_MODE__` and `__MCP_SANDBOX_ORIGIN__` window globals are injected into the served HTML at runtime, enabling client-side configuration without rebuild.
  - **Localhost URL conversion:** Server-side fetches of widget HTML now convert external proxy URLs to `localhost` to avoid reverse proxy catch-all routes returning SPA HTML instead of Vite-served widget content.
  - **Simplified URL rewriting:** Widget asset URLs are now rewritten to bare server-relative paths that resolve directly through Vite middleware, improving reliability behind reverse proxies.
  - **Fixed infinite re-render loop:** Removed excessive `useEffect` dependencies in `MCPAppsRenderer` that caused continuous re-fetching of widget HTML.

  ### `@mcp-use/cli` (patch)
  - **Respect user-provided `MCP_URL`:** The CLI no longer overwrites `MCP_URL` if already set, allowing users to configure external proxy URLs for reverse proxy setups.

### Patch Changes

- Updated dependencies [3d787ba]
- Updated dependencies [3d787ba]
  - @mcp-use/inspector@0.18.5
  - @mcp-use/cli@2.13.2

## 1.17.0-canary.2

### Patch Changes

- Updated dependencies [4c881d3]
  - @mcp-use/inspector@0.18.5-canary.2
  - @mcp-use/cli@2.13.2-canary.2

## 1.17.0-canary.1

### Minor Changes

- 31fdb69: Added support for resource template variable completion: resource templates can define callbacks.complete per variable (either a string array or a callback), which is normalized and passed to the SDK so clients can use autocomplete for URI template variables. Includes toResourceTemplateCompleteCallbacks, unit tests, and documentation updates.

  Also publishes completion capabilities in TypeScript SDK MCP servers.

### Patch Changes

- @mcp-use/cli@2.13.2-canary.1
- @mcp-use/inspector@0.18.5-canary.1

## 1.17.0-canary.0

### Minor Changes

- 4a03ce0: Improve reverse proxy support, HMR reliability, and widget handling across the stack.

  ### `mcp-use` (minor)
  - **Custom HTTP route HMR:** Routes registered via `server.get()`, `server.post()`, etc. now support hot module replacement — handlers are hot-swapped without a server restart.
  - **Widget tool protection during HMR:** Widget-registered tools are no longer accidentally removed when `index.ts` HMR sync runs. Tools tagged with `_meta["mcp-use/widget"]` are preserved.
  - **Dynamic widget creation:** The `resources/` directory is auto-created if missing, and the dev server watches for new widgets even if none exist at startup. This enables workflows where widgets are created after the server starts
  - **Vite HMR WebSocket proxy:** A TCP-level WebSocket proxy forwards HMR `upgrade` requests from the main HTTP server to Vite's internal HMR port, enabling hot-reload through reverse proxies (ngrok, E2B, Cloudflare tunnels).
  - **`MCP_URL` environment variable:** Can now be pre-set by users to an external proxy URL. The CLI will not overwrite it, allowing correct widget URLs and HMR WebSocket connections behind reverse proxies.
  - **List-changed notifications on removal:** `sendToolListChanged()`, `sendResourceListChanged()`, and `sendPromptListChanged()` now also fire when items are removed, not just added/updated.
  - **Pre-initialized request handlers:** Tool, prompt, and resource request handlers are pre-registered during session initialization, preventing `Method not found` errors when clients connect to servers that start with zero registrations and add them dynamically.
  - **Widget type default changed:** Widgets now default to `mcpApps` (dual-protocol) instead of `appsSdk`. Only widgets with explicit `appsSdkMetadata` and no `metadata` field use the `appsSdk` type.
  - **`window.__mcpServerUrl` global:** Injected into widget HTML so widgets can dynamically construct API URLs (e.g., `fetch(window.__mcpServerUrl + '/api/data')`).

  ### `@mcp-use/inspector` (patch)
  - **`MCP_INSPECTOR_FRAME_ANCESTORS` env var:** Controls which origins can embed the inspector in iframes via CSP `frame-ancestors`. Defaults to `*` in development and `'self'` in production.
  - **`mountInspector` configuration options:** Accepts new `devMode` (boolean) and `sandboxOrigin` (string | null) options for controlling sandbox behavior in different deployment environments.
  - **Runtime config injection:** `__MCP_DEV_MODE__` and `__MCP_SANDBOX_ORIGIN__` window globals are injected into the served HTML at runtime, enabling client-side configuration without rebuild.
  - **Localhost URL conversion:** Server-side fetches of widget HTML now convert external proxy URLs to `localhost` to avoid reverse proxy catch-all routes returning SPA HTML instead of Vite-served widget content.
  - **Simplified URL rewriting:** Widget asset URLs are now rewritten to bare server-relative paths that resolve directly through Vite middleware, improving reliability behind reverse proxies.
  - **Fixed infinite re-render loop:** Removed excessive `useEffect` dependencies in `MCPAppsRenderer` that caused continuous re-fetching of widget HTML.

  ### `@mcp-use/cli` (patch)
  - **Respect user-provided `MCP_URL`:** The CLI no longer overwrites `MCP_URL` if already set, allowing users to configure external proxy URLs for reverse proxy setups.

### Patch Changes

- Updated dependencies [4a03ce0]
  - @mcp-use/inspector@0.18.5-canary.0
  - @mcp-use/cli@2.13.2-canary.0

## 1.16.4

### Patch Changes

- ac3e216: fix(mcp-use): release canary versions
- ac3e216: fix(server): HMR tool schema preservation, prompt/resource handler wrappers for CallToolResult conversion, preserve widget resources during HMR, and prompt content normalization

  **HMR Schema Preservation:**
  - Fixed tool schema handling during HMR to use Zod schemas directly instead of converting to params
  - Changed empty schema from `{}` to `z.object({})` to ensure `safeParseAsync` works correctly
  - Preserves full Zod validation capabilities during hot module reload

  **Handler Wrapper Improvements:**
  - Added automatic handler wrapping for prompts and resources to support `CallToolResult` format
  - Prompts now support tool response helpers (`text()`, `object()`, `image()`, etc.) via automatic conversion to `GetPromptResult`
  - Resources now support tool response helpers via automatic conversion to `ReadResourceResult`
  - Applied wrappers in `listen()`, `addPrompt()`, `addResource()`, and `syncPrimitive()` methods

  **Widget Resource Preservation:**
  - Widget resources (`ui://widget/*`) and resource templates are now preserved during HMR
  - Prevents deletion of widget registrations that are only registered on initial load
  - Ensures widgets remain functional across hot reloads

  **HMR Sync Behavior:**
  - Changed `hmr-sync.ts` to prefer `onUpdate` handler over in-place updates
  - Ensures proper handler wrapping for prompts/resources during updates
  - Maintains correct order-preserving update behavior

  **Content Normalization:**
  - Enhanced prompt conversion to handle edge cases:
    - Single content objects without array wrapper
    - Bare content items (result is the content, not wrapped in `content` property)
    - Mixed content type arrays
  - Improved robustness of `CallToolResult` to `GetPromptResult` conversion

  Commits: 116a3be4 (partial)

- ac3e216: fix: ensure pending state is emulated for widgets, reflecting ChatGPT behaviour

  **Inspector Changes:**
  - Updated MCPAppsRenderer and OpenAIComponentRenderer to handle tool output and metadata more effectively, allowing for immediate rendering of widgets even when results are pending
  - Enhanced MessageList and ToolResultRenderer to support immediate rendering of widget tools, improving responsiveness during tool execution
  - Added utility functions for widget detection and pre-rendering capabilities based on tool metadata

  **Server Changes:**
  - Introduced delayed weather tool example (`get-weather-delayed`) in conformance server to demonstrate widget lifecycle management with artificial delays

  **Documentation:**
  - Updated inspector and widget lifecycle testing documentation
  - Enhanced debugging guides for ChatGPT Apps with widget lifecycle testing instructions

  These changes address Issue #930, ensuring widgets can display loading states and update seamlessly upon tool completion.

  Commits: fea26ff4

- ac3e216: chore(deps): upgrade @modelcontextprotocol/sdk to 1.26.0

  **Dependencies:**
  - Updated `@modelcontextprotocol/sdk` from `^1.25.3` to `^1.26.0`
  - Applied the same Zod 4 compatibility patch to SDK 1.26.0
  - Removed old SDK 1.25.3 patch file

  **Patch Details:**

  The SDK still requires a patch to fix Zod 4 compatibility in the `zod-compat.js` module. The patch ensures that Zod 4 schemas use their instance methods (`schema.safeParse()`) instead of attempting to call non-existent top-level functions (`z4mini.safeParse()`).

  This is a drop-in replacement upgrade with no breaking changes.

- Updated dependencies [ac3e216]
- Updated dependencies [ac3e216]
- Updated dependencies [ac3e216]
- Updated dependencies [ac3e216]
- Updated dependencies [ac3e216]
- Updated dependencies [ac3e216]
- Updated dependencies [ac3e216]
- Updated dependencies [ac3e216]
  - @mcp-use/inspector@0.18.4
  - @mcp-use/cli@2.13.1

## 1.16.4-canary.3

### Patch Changes

- f7ca602: chore(deps): upgrade @modelcontextprotocol/sdk to 1.26.0

  **Dependencies:**
  - Updated `@modelcontextprotocol/sdk` from `^1.25.3` to `^1.26.0`
  - Applied the same Zod 4 compatibility patch to SDK 1.26.0
  - Removed old SDK 1.25.3 patch file

  **Patch Details:**

  The SDK still requires a patch to fix Zod 4 compatibility in the `zod-compat.js` module. The patch ensures that Zod 4 schemas use their instance methods (`schema.safeParse()`) instead of attempting to call non-existent top-level functions (`z4mini.safeParse()`).

  This is a drop-in replacement upgrade with no breaking changes.

- Updated dependencies [f7ca602]
  - @mcp-use/inspector@0.18.4-canary.3
  - @mcp-use/cli@2.13.1-canary.3

## 1.16.4-canary.2

### Patch Changes

- Updated dependencies [03094a1]
  - @mcp-use/inspector@0.18.4-canary.2
  - @mcp-use/cli@2.13.1-canary.2

## 1.16.4-canary.1

### Patch Changes

- d0239d2: fix(mcp-use): release canary versions
- Updated dependencies [d0239d2]
  - @mcp-use/inspector@0.18.4-canary.1
  - @mcp-use/cli@2.13.1-canary.1

## 1.16.4-canary.0

### Patch Changes

- 7c2d7e3: fix(server): HMR tool schema preservation, prompt/resource handler wrappers for CallToolResult conversion, preserve widget resources during HMR, and prompt content normalization

  **HMR Schema Preservation:**
  - Fixed tool schema handling during HMR to use Zod schemas directly instead of converting to params
  - Changed empty schema from `{}` to `z.object({})` to ensure `safeParseAsync` works correctly
  - Preserves full Zod validation capabilities during hot module reload

  **Handler Wrapper Improvements:**
  - Added automatic handler wrapping for prompts and resources to support `CallToolResult` format
  - Prompts now support tool response helpers (`text()`, `object()`, `image()`, etc.) via automatic conversion to `GetPromptResult`
  - Resources now support tool response helpers via automatic conversion to `ReadResourceResult`
  - Applied wrappers in `listen()`, `addPrompt()`, `addResource()`, and `syncPrimitive()` methods

  **Widget Resource Preservation:**
  - Widget resources (`ui://widget/*`) and resource templates are now preserved during HMR
  - Prevents deletion of widget registrations that are only registered on initial load
  - Ensures widgets remain functional across hot reloads

  **HMR Sync Behavior:**
  - Changed `hmr-sync.ts` to prefer `onUpdate` handler over in-place updates
  - Ensures proper handler wrapping for prompts/resources during updates
  - Maintains correct order-preserving update behavior

  **Content Normalization:**
  - Enhanced prompt conversion to handle edge cases:
    - Single content objects without array wrapper
    - Bare content items (result is the content, not wrapped in `content` property)
    - Mixed content type arrays
  - Improved robustness of `CallToolResult` to `GetPromptResult` conversion

  Commits: 116a3be4 (partial)

- Updated dependencies [7c2d7e3]
- Updated dependencies [7c2d7e3]
- Updated dependencies [7c2d7e3]
  - @mcp-use/inspector@0.18.4-canary.0
  - @mcp-use/cli@2.13.1-canary.0

## 1.16.3

### Patch Changes

- Updated dependencies [b1b2895]
  - @mcp-use/cli@2.13.0
  - @mcp-use/inspector@0.18.3

## 1.16.3-canary.0

### Patch Changes

- Updated dependencies [c0822e1]
  - @mcp-use/cli@2.13.0-canary.0
  - @mcp-use/inspector@0.18.3-canary.0

## 1.16.2

### Patch Changes

- 53ae49d: fix: ensure pending state is emulated for widgets, reflecting chatgpt behaviour
- Updated dependencies [53ae49d]
- Updated dependencies [53ae49d]
  - @mcp-use/inspector@0.18.2
  - @mcp-use/cli@2.12.6

## 1.16.2-canary.0

### Patch Changes

- fea26ff: fix: ensure pending state is emulated for widgets, reflecting chatgpt behaviour
- Updated dependencies [fea26ff]
- Updated dependencies [37af1bf]
  - @mcp-use/inspector@0.18.2-canary.0
  - @mcp-use/cli@2.12.6-canary.0

## 1.16.1

### Patch Changes

- 4bdb92e: fix(widgets): auto-inject server origin into connectDomains CSP
  - The `enrichDefinitionWithServerOrigin` function now automatically adds the server origin to `connectDomains` in addition to `resourceDomains` and `baseUriDomains`
  - This allows widgets to make fetch/XHR/WebSocket calls back to the MCP server without explicitly declaring the domain in CSP
  - Fixes an oversight where the CHANGELOG mentioned connectDomains injection but it was not implemented
  - @mcp-use/cli@2.12.5
  - @mcp-use/inspector@0.18.1

## 1.16.1-canary.0

### Patch Changes

- eb8d7a6: fix(widgets): auto-inject server origin into connectDomains CSP
  - The `enrichDefinitionWithServerOrigin` function now automatically adds the server origin to `connectDomains` in addition to `resourceDomains` and `baseUriDomains`
  - This allows widgets to make fetch/XHR/WebSocket calls back to the MCP server without explicitly declaring the domain in CSP
  - Fixes an oversight where the CHANGELOG mentioned connectDomains injection but it was not implemented
  - @mcp-use/cli@2.12.5-canary.0
  - @mcp-use/inspector@0.18.1-canary.0

## 1.16.0

### Minor Changes

- 32f2113: Add completable() helper for prompt argument autocomplete

### Patch Changes

- Updated dependencies [32f2113]
- Updated dependencies [32f2113]
  - @mcp-use/inspector@0.18.0
  - @mcp-use/cli@2.12.4

## 1.16.0-canary.3

### Minor Changes

- 3e2821f: Add dynamic CSP domain injection for widgets: the request origin (from X-Forwarded-Host or Host header) is now automatically added to connectDomains and resourceDomains in tool metadata at tools/list time. This enables widgets to work correctly when accessed through proxies like ngrok, Cloudflare tunnels, or other reverse proxies.

### Patch Changes

- @mcp-use/cli@2.12.4-canary.3
- @mcp-use/inspector@0.18.0-canary.3

## 1.16.0-canary.2

### Patch Changes

- Updated dependencies [09c0300]
  - @mcp-use/inspector@0.18.0-canary.2
  - @mcp-use/cli@2.12.4-canary.2

## 1.16.0-canary.1

### Minor Changes

- 9b9f371: Add completable() helper for prompt argument autocomplete

### Patch Changes

- @mcp-use/cli@2.12.4-canary.1
- @mcp-use/inspector@0.18.0-canary.1

## 1.15.4-canary.0

### Patch Changes

- Updated dependencies [144ad6a]
  - @mcp-use/inspector@0.18.0-canary.0
  - @mcp-use/cli@2.12.4-canary.0

## 1.15.3

### Patch Changes

- 4666a37: fix: hmr not working if 0 tools initially
- Updated dependencies [4666a37]
- Updated dependencies [4666a37]
  - @mcp-use/inspector@0.17.3
  - @mcp-use/cli@2.12.3

## 1.15.3-canary.1

### Patch Changes

- Updated dependencies [10cdce9]
  - @mcp-use/inspector@0.17.3-canary.1
  - @mcp-use/cli@2.12.3-canary.1

## 1.15.3-canary.0

### Patch Changes

- 013101d: fix: hmr not working if 0 tools initially
- Updated dependencies [013101d]
  - @mcp-use/cli@2.12.3-canary.0
  - @mcp-use/inspector@0.17.3-canary.0

## 1.15.2

### Patch Changes

- bb28a69: Fix HMR file watcher exhausting inotify limits by properly ignoring node_modules

  The HMR file watcher was attempting to watch files inside `node_modules/` despite having ignore patterns configured, which exhausted the inotify watch limit (ENOSPC errors) in containerized environments.

- Updated dependencies [bb28a69]
  - @mcp-use/inspector@0.17.2
  - @mcp-use/cli@2.12.2

## 1.15.2-canary.1

### Patch Changes

- 4d3e62e: fix(cli): fix hmr
- Updated dependencies [4d3e62e]
  - @mcp-use/inspector@0.17.2-canary.1
  - @mcp-use/cli@2.12.2-canary.1

## 1.15.2-canary.0

### Patch Changes

- Updated dependencies [eb777a4]
  - @mcp-use/cli@2.12.2-canary.0
  - @mcp-use/inspector@0.17.2-canary.0

## 1.15.1

### Patch Changes

- Updated dependencies [0742f22]
  - @mcp-use/cli@2.12.1
  - @mcp-use/inspector@0.17.1

## 1.15.1-canary.0

### Patch Changes

- Updated dependencies [7eb787f]
  - @mcp-use/cli@2.12.1-canary.0
  - @mcp-use/inspector@0.17.1-canary.0

## 1.15.0

### Minor Changes

- 1dcba40: feat: add MCP Apps support with dual-protocol widget rendering
  - Add dual-protocol support enabling widgets to work with both MCP Apps and ChatGPT Apps SDK
  - Add MCPAppsRenderer and MCPAppsDebugControls components for advanced debugging and visualization
  - Add sandboxed iframe support with console logging and safe area insets for isolated widget rendering
  - Add widget adapters (MCP Apps, Apps SDK) with protocol helpers for seamless cross-protocol compatibility
  - Add browser host normalization for server connections in CLI
  - Fix Zod JIT compilation to prevent CSP violations in sandboxed environments
  - Add MCP Apps documentation and example server

  feat: add HTML landing page for MCP server endpoints
  - Add `generateLandingPage()` function that generates styled HTML landing pages for browser GET requests
  - Include connection instructions for Claude Code, Cursor, VS Code, VS Code Insiders, and ChatGPT

### Patch Changes

- 1dcba40: fix: mcp server landing now shows the external url instead of the internal
- 1dcba40: chore: trigger canary release
- 1dcba40: fix docs
- 1dcba40: chore: fix vulnerabilities in deps
- Updated dependencies [1dcba40]
- Updated dependencies [1dcba40]
- Updated dependencies [1dcba40]
- Updated dependencies [1dcba40]
- Updated dependencies [1dcba40]
  - @mcp-use/inspector@0.17.0
  - @mcp-use/cli@2.12.0

## 1.15.0-canary.4

### Patch Changes

- a078aa9: fix: mcp server landing now shows the external url instead of the internal
- Updated dependencies [a078aa9]
  - @mcp-use/inspector@0.17.0-canary.4
  - @mcp-use/cli@2.12.0-canary.4

## 1.15.0-canary.3

### Patch Changes

- e910f64: chore: fix vulnerabilities in deps
- Updated dependencies [e910f64]
  - @mcp-use/inspector@0.17.0-canary.3
  - @mcp-use/cli@2.12.0-canary.3

## 1.15.0-canary.2

### Patch Changes

- e4ca98e: chore: trigger canary release
- Updated dependencies [e4ca98e]
  - @mcp-use/inspector@0.17.0-canary.2
  - @mcp-use/cli@2.12.0-canary.2

## 1.15.0-canary.1

### Patch Changes

- 08d3b3a: fix docs
- Updated dependencies [08d3b3a]
  - @mcp-use/inspector@0.17.0-canary.1
  - @mcp-use/cli@2.12.0-canary.1

## 1.15.0-canary.0

### Minor Changes

- 93fd6f4: feat: add MCP Apps support with dual-protocol widget rendering
  - Add dual-protocol support enabling widgets to work with both MCP Apps and ChatGPT Apps SDK
  - Add MCPAppsRenderer and MCPAppsDebugControls components for advanced debugging and visualization
  - Add sandboxed iframe support with console logging and safe area insets for isolated widget rendering
  - Add widget adapters (MCP Apps, Apps SDK) with protocol helpers for seamless cross-protocol compatibility
  - Add browser host normalization for server connections in CLI
  - Fix Zod JIT compilation to prevent CSP violations in sandboxed environments
  - Add MCP Apps documentation and example server

  feat: add HTML landing page for MCP server endpoints
  - Add `generateLandingPage()` function that generates styled HTML landing pages for browser GET requests
  - Include connection instructions for Claude Code, Cursor, VS Code, VS Code Insiders, and ChatGPT

### Patch Changes

- Updated dependencies [93fd6f4]
  - @mcp-use/inspector@0.17.0-canary.0
  - @mcp-use/cli@2.12.0-canary.0

## 1.14.2

### Patch Changes

- 8326a66: fix(inspector): enhance widget security headers with frame domain support
- 8326a66: fix(inspector): standardize proxy configuration and enhance connection handling
  - Renamed `customHeaders` to `headers` in `InspectorDashboard` and `ServerConnectionModal` for consistency.
  - Removed unused state management for connecting servers in `InspectorDashboard`.
  - Improved server connection handling by introducing a `handleReconnect` function to manage reconnection attempts.
  - Updated UI elements to reflect connection states more accurately, including hover effects and error displays.
  - Enhanced error handling for unauthorized connections, providing clearer user feedback.

  These changes aim to streamline the connection management process and improve the overall user experience in the inspector interface.

- 8326a66: feat(server): enhance favicon handling and public route setup
- 8326a66: fix: improve widget rendering and session management
  - Fix widget iframe reload by adding timestamp query parameter to force refresh when widget data changes
  - Add retry logic with exponential backoff for dev widget fetching to handle Vite dev server cold starts
  - Fix default session idle timeout from 5 minutes to 1 day to prevent premature session expiration
  - Fix session lastAccessedAt tracking to update both persistent store and in-memory map
  - Fix \_meta merging to preserve existing fields (e.g., openai/outputTemplate) when updating tools and widgets
  - Add support for frame_domains and redirect_domains in widget CSP metadata

- 8326a66: fix: add default widget domain for openai
- Updated dependencies [8326a66]
- Updated dependencies [8326a66]
- Updated dependencies [8326a66]
- Updated dependencies [8326a66]
- Updated dependencies [8326a66]
  - @mcp-use/inspector@0.16.2
  - @mcp-use/cli@2.11.2

## 1.14.2-canary.4

### Patch Changes

- f1171de: feat(server): enhance favicon handling and public route setup
  - @mcp-use/cli@2.11.2-canary.4
  - @mcp-use/inspector@0.16.2-canary.4

## 1.14.2-canary.3

### Patch Changes

- 6ff396a: fix: add default widget domain for openai
  - @mcp-use/cli@2.11.2-canary.3
  - @mcp-use/inspector@0.16.2-canary.3

## 1.14.2-canary.2

### Patch Changes

- fb6a8f0: fix: improve widget rendering and session management
  - Fix widget iframe reload by adding timestamp query parameter to force refresh when widget data changes
  - Add retry logic with exponential backoff for dev widget fetching to handle Vite dev server cold starts
  - Fix default session idle timeout from 5 minutes to 1 day to prevent premature session expiration
  - Fix session lastAccessedAt tracking to update both persistent store and in-memory map
  - Fix \_meta merging to preserve existing fields (e.g., openai/outputTemplate) when updating tools and widgets
  - Add support for frame_domains and redirect_domains in widget CSP metadata

- Updated dependencies [fb6a8f0]
  - @mcp-use/inspector@0.16.2-canary.2
  - @mcp-use/cli@2.11.2-canary.2

## 1.14.2-canary.1

### Patch Changes

- Updated dependencies [e58a72d]
  - @mcp-use/cli@2.11.2-canary.1
  - @mcp-use/inspector@0.16.2-canary.1

## 1.14.2-canary.0

### Patch Changes

- 3124ca9: fix(inspector): enhance widget security headers with frame domain support
- 3124ca9: fix(inspector): standardize proxy configuration and enhance connection handling
  - Renamed `customHeaders` to `headers` in `InspectorDashboard` and `ServerConnectionModal` for consistency.
  - Removed unused state management for connecting servers in `InspectorDashboard`.
  - Improved server connection handling by introducing a `handleReconnect` function to manage reconnection attempts.
  - Updated UI elements to reflect connection states more accurately, including hover effects and error displays.
  - Enhanced error handling for unauthorized connections, providing clearer user feedback.

  These changes aim to streamline the connection management process and improve the overall user experience in the inspector interface.

- Updated dependencies [3124ca9]
- Updated dependencies [3124ca9]
- Updated dependencies [3124ca9]
  - @mcp-use/inspector@0.16.2-canary.0
  - @mcp-use/cli@2.11.2-canary.0

## 1.14.1

### Patch Changes

- Updated dependencies [c64a2dd]
  - @mcp-use/inspector@0.16.1
  - @mcp-use/cli@2.11.1

## 1.14.1-canary.0

### Patch Changes

- Updated dependencies [7e87931]
  - @mcp-use/inspector@0.16.1-canary.0
  - @mcp-use/cli@2.11.1-canary.0

## 1.14.0

### Minor Changes

- fe72e7e: feat: improved HMR support for widgets
- fe72e7e: docs(widget-lifecycle): add guidance on handling loading states in widgets
- fe72e7e: feat: allow to set serverInfo (title, name, icons, websiteUrl, description), and updated templates to have defaults
- fe72e7e: ## Dependency Updates

  Updated 36 dependencies across all TypeScript packages to their latest compatible versions.

  ### Major Updates
  - **react-resizable-panels**: 3.0.6 → 4.4.1
    - Migrated to v4 API (`PanelGroup` → `Group`, `PanelResizeHandle` → `Separator`)
    - Updated `direction` prop to `orientation` across all inspector tabs
    - Maintained backward compatibility through wrapper component

  ### Minor & Patch Updates

  **Framework & Build Tools:**
  - @types/node: 25.0.2 → 25.0.9
  - @types/react: 19.2.7 → 19.2.8
  - @typescript-eslint/eslint-plugin: 8.49.0 → 8.53.1
  - @typescript-eslint/parser: 8.49.0 → 8.53.1
  - prettier: 3.7.4 → 3.8.0
  - typescript-eslint: 8.49.0 → 8.53.1
  - vite: 7.3.0 → 7.3.1
  - vitest: 4.0.15 → 4.0.17

  **Runtime Dependencies:**
  - @hono/node-server: 1.19.7 → 1.19.9
  - @langchain/anthropic: 1.3.0 → 1.3.10
  - @langchain/core: 1.1.12 → 1.1.15
  - @langchain/google-genai: 2.1.0 → 2.1.10
  - @langchain/openai: 1.2.0 → 1.2.2
  - @mcp-ui/client: 5.17.1 → 5.17.3
  - @mcp-ui/server: 5.16.2 → 5.16.3
  - posthog-js: 1.306.1 → 1.330.0
  - posthog-node: 5.17.2 → 5.22.0
  - ws: 8.18.3 → 8.19.0

  **UI Components:**
  - @eslint-react/eslint-plugin: 2.3.13 → 2.7.2
  - eslint-plugin-format: 1.1.0 → 1.3.1
  - eslint-plugin-react-refresh: 0.4.25 → 0.4.26
  - framer-motion: 12.23.26 → 12.27.1
  - motion: 12.23.26 → 12.27.1
  - markdown-to-jsx: 9.3.5 → 9.5.7
  - lucide-react: 0.561.0 → 0.562.0
  - vite-express: 0.21.1 → 0.22.0

  **Utilities:**
  - globby: 16.0.0 → 16.1.0
  - fs-extra: 11.3.2 → 11.3.3
  - ink: 6.5.1 → 6.6.0

  ### Removed
  - Removed `@ai-sdk/react` from inspector (unused, only in tests)
  - Removed `ai` from mcp-use dev dependencies (unused, only in tests/examples)

### Patch Changes

- fe72e7e: fix: return 200 for stateless head requests (e.g. from ChatGpt)
- fe72e7e: fix: codeql vulnerability in slugifyWidgetName
- fe72e7e: ### Inspector Enhancements
  - **New**: Custom properties support for resources - `PropsSelect` component for dynamic prop configuration
  - **New**: `PropsConfigDialog` for managing resource properties with AI-powered suggestions
  - **New**: `SchemaFormField` for rendering JSON schema-based forms
  - **New**: `usePropsLLM` hook for AI-powered property suggestions
  - **New**: `useResourceProps` hook for managing resource props state
  - **Enhancement**: Enhanced `JSONDisplay` with improved line wrapping and font size for better readability
  - **Enhancement**: Collapsible description section in `ToolExecutionPanel`
  - **Enhancement**: Integrated JSON metadata visualization in tool execution panel
  - **Enhancement**: Enhanced `McpUIRenderer` and `OpenAIComponentRenderer` with `customProps` support
  - **Enhancement**: Updated `ResourceResultDisplay` with dynamic property configuration

  ### CLI Improvements
  - **New**: `MCP_URL` environment variable for server URL configuration

  ### MCP Proxy
  - **Enhancement**: Improved error logging with better context
  - **Enhancement**: Connection refused errors now logged as warnings
  - **Enhancement**: Error responses now include target URL for easier debugging

- fe72e7e: feat(mcp-server): add additional configuration options for MCP server
- fe72e7e: fix(inspector): resolve Anthropic tool_use.id required error
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
- Updated dependencies [fe72e7e]
  - @mcp-use/inspector@0.16.0
  - @mcp-use/cli@2.11.0

## 1.14.0-canary.13

### Patch Changes

- Updated dependencies [453661d]
  - @mcp-use/inspector@0.16.0-canary.13
  - @mcp-use/cli@2.11.0-canary.13

## 1.14.0-canary.12

### Patch Changes

- Updated dependencies [f428514]
  - @mcp-use/cli@2.11.0-canary.12
  - @mcp-use/inspector@0.16.0-canary.12

## 1.14.0-canary.11

### Patch Changes

- Updated dependencies [805092b]
  - @mcp-use/inspector@0.16.0-canary.11
  - @mcp-use/cli@2.11.0-canary.11

## 1.14.0-canary.10

### Patch Changes

- 945d93d: ### Inspector Enhancements
  - **New**: Custom properties support for resources - `PropsSelect` component for dynamic prop configuration
  - **New**: `PropsConfigDialog` for managing resource properties with AI-powered suggestions
  - **New**: `SchemaFormField` for rendering JSON schema-based forms
  - **New**: `usePropsLLM` hook for AI-powered property suggestions
  - **New**: `useResourceProps` hook for managing resource props state
  - **Enhancement**: Enhanced `JSONDisplay` with improved line wrapping and font size for better readability
  - **Enhancement**: Collapsible description section in `ToolExecutionPanel`
  - **Enhancement**: Integrated JSON metadata visualization in tool execution panel
  - **Enhancement**: Enhanced `McpUIRenderer` and `OpenAIComponentRenderer` with `customProps` support
  - **Enhancement**: Updated `ResourceResultDisplay` with dynamic property configuration

  ### CLI Improvements
  - **New**: `MCP_URL` environment variable for server URL configuration

  ### MCP Proxy
  - **Enhancement**: Improved error logging with better context
  - **Enhancement**: Connection refused errors now logged as warnings
  - **Enhancement**: Error responses now include target URL for easier debugging

- Updated dependencies [945d93d]
  - @mcp-use/inspector@0.16.0-canary.10
  - @mcp-use/cli@2.11.0-canary.10

## 1.14.0-canary.9

### Patch Changes

- Updated dependencies [782bb3e]
  - @mcp-use/cli@2.11.0-canary.9
  - @mcp-use/inspector@0.16.0-canary.9

## 1.14.0-canary.8

### Patch Changes

- e96063a: feat(mcp-server): add additional configuration options for MCP server
  - @mcp-use/cli@2.11.0-canary.8
  - @mcp-use/inspector@0.16.0-canary.8

## 1.14.0-canary.7

### Patch Changes

- 0cfeb1d: fix: return 200 for stateless head requests (e.g. from ChatGpt)
- Updated dependencies [4652707]
  - @mcp-use/inspector@0.16.0-canary.7
  - @mcp-use/cli@2.11.0-canary.7

## 1.14.0-canary.6

### Minor Changes

- 1fb5e5e: docs(widget-lifecycle): add guidance on handling loading states in widgets

### Patch Changes

- 948e0ae: fix(inspector): resolve Anthropic tool_use.id required error
- Updated dependencies [948e0ae]
  - @mcp-use/inspector@0.16.0-canary.6
  - @mcp-use/cli@2.11.0-canary.6

## 1.14.0-canary.5

### Patch Changes

- Updated dependencies [da4c861]
  - @mcp-use/cli@2.11.0-canary.5
  - @mcp-use/inspector@0.16.0-canary.5

## 1.14.0-canary.4

### Patch Changes

- 3a94755: fix: codeql vulnerability in slugifyWidgetName
  - @mcp-use/cli@2.11.0-canary.4
  - @mcp-use/inspector@0.16.0-canary.4

## 1.14.0-canary.3

### Minor Changes

- 3178200: ## Dependency Updates

  Updated 36 dependencies across all TypeScript packages to their latest compatible versions.

  ### Major Updates
  - **react-resizable-panels**: 3.0.6 → 4.4.1
    - Migrated to v4 API (`PanelGroup` → `Group`, `PanelResizeHandle` → `Separator`)
    - Updated `direction` prop to `orientation` across all inspector tabs
    - Maintained backward compatibility through wrapper component

  ### Minor & Patch Updates

  **Framework & Build Tools:**
  - @types/node: 25.0.2 → 25.0.9
  - @types/react: 19.2.7 → 19.2.8
  - @typescript-eslint/eslint-plugin: 8.49.0 → 8.53.1
  - @typescript-eslint/parser: 8.49.0 → 8.53.1
  - prettier: 3.7.4 → 3.8.0
  - typescript-eslint: 8.49.0 → 8.53.1
  - vite: 7.3.0 → 7.3.1
  - vitest: 4.0.15 → 4.0.17

  **Runtime Dependencies:**
  - @hono/node-server: 1.19.7 → 1.19.9
  - @langchain/anthropic: 1.3.0 → 1.3.10
  - @langchain/core: 1.1.12 → 1.1.15
  - @langchain/google-genai: 2.1.0 → 2.1.10
  - @langchain/openai: 1.2.0 → 1.2.2
  - @mcp-ui/client: 5.17.1 → 5.17.3
  - @mcp-ui/server: 5.16.2 → 5.16.3
  - posthog-js: 1.306.1 → 1.330.0
  - posthog-node: 5.17.2 → 5.22.0
  - ws: 8.18.3 → 8.19.0

  **UI Components:**
  - @eslint-react/eslint-plugin: 2.3.13 → 2.7.2
  - eslint-plugin-format: 1.1.0 → 1.3.1
  - eslint-plugin-react-refresh: 0.4.25 → 0.4.26
  - framer-motion: 12.23.26 → 12.27.1
  - motion: 12.23.26 → 12.27.1
  - markdown-to-jsx: 9.3.5 → 9.5.7
  - lucide-react: 0.561.0 → 0.562.0
  - vite-express: 0.21.1 → 0.22.0

  **Utilities:**
  - globby: 16.0.0 → 16.1.0
  - fs-extra: 11.3.2 → 11.3.3
  - ink: 6.5.1 → 6.6.0

  ### Removed
  - Removed `@ai-sdk/react` from inspector (unused, only in tests)
  - Removed `ai` from mcp-use dev dependencies (unused, only in tests/examples)

### Patch Changes

- Updated dependencies [3178200]
  - @mcp-use/inspector@0.16.0-canary.3
  - @mcp-use/cli@2.11.0-canary.3

## 1.14.0-canary.2

### Minor Changes

- ad66391: fix: improved HMR support for widgets

### Patch Changes

- Updated dependencies [ad66391]
  - @mcp-use/inspector@0.16.0-canary.2
  - @mcp-use/cli@2.11.0-canary.2

## 1.14.0-canary.1

### Patch Changes

- Updated dependencies [199199d]
  - @mcp-use/inspector@0.16.0-canary.1
  - @mcp-use/cli@2.11.0-canary.1

## 1.14.0-canary.0

### Minor Changes

- 53fdb48: feat: allow to set serverInfo (title, name, icons, websiteUrl, description), and updated templates to have defaults

### Patch Changes

- Updated dependencies [53fdb48]
  - @mcp-use/inspector@0.16.0-canary.0
  - @mcp-use/cli@2.11.0-canary.0

## 1.13.5

### Patch Changes

- b65d05d: refactor(auth): improve OAuth proxy URL handling and clarify connection URL logic
- Updated dependencies [b65d05d]
  - @mcp-use/cli@2.10.3
  - @mcp-use/inspector@0.15.3

## 1.13.5-canary.0

### Patch Changes

- Updated dependencies [de5f030]
  - @mcp-use/cli@2.10.3-canary.0
  - @mcp-use/inspector@0.15.3-canary.0

## 1.13.4

### Patch Changes

- dd8d07d: refactor(auth): improve OAuth proxy URL handling and clarify connection URL logic
  - @mcp-use/cli@2.10.2
  - @mcp-use/inspector@0.15.2

## 1.13.4-canary.0

### Patch Changes

- 5c65df2: refactor(auth): improve OAuth proxy URL handling and clarify connection URL logic
  - @mcp-use/cli@2.10.2-canary.0
  - @mcp-use/inspector@0.15.2-canary.0

## 1.13.3

### Patch Changes

- 294d17d: feat(inspector): add localStorage clearing functionality to enhance user experience
- 294d17d: fix(telemetry): enhance localStorage checks for availability and functionality
- Updated dependencies [294d17d]
- Updated dependencies [294d17d]
- Updated dependencies [294d17d]
  - @mcp-use/inspector@0.15.1
  - @mcp-use/cli@2.10.1

## 1.13.3-canary.2

### Patch Changes

- b06fa78: feat(inspector): add localStorage clearing functionality to enhance user experience
- Updated dependencies [b06fa78]
  - @mcp-use/inspector@0.15.1-canary.2
  - @mcp-use/cli@2.10.1-canary.2

## 1.13.3-canary.1

### Patch Changes

- Updated dependencies [c3f2ebf]
  - @mcp-use/inspector@0.15.1-canary.1
  - @mcp-use/cli@2.10.1-canary.1

## 1.13.3-canary.0

### Patch Changes

- d446ee5: fix(telemetry): enhance localStorage checks for availability and functionality
- Updated dependencies [d446ee5]
  - @mcp-use/inspector@0.15.1-canary.0
  - @mcp-use/cli@2.10.1-canary.0

## 1.13.2

### Patch Changes

- 0144a31: Updated dependency `hono` to `^4.11.4`.
- 0144a31: chore(docs): update documentation with the latest release notes
- 0144a31: feat(cli): enhance login and deployment commands
  - Updated the login command to handle errors gracefully
  - Modified the deployment command to prompt users for login if not authenticated
  - Removed the `fromSource` option from the deployment command
  - Added checks for uncommitted changes in the git repository before deployment
  - Updated various commands to consistently use `npx mcp-use login` for login instructions

  refactor(inspector, multi-server-example): authentication UI and logic
  - Simplified the authentication button logic in InspectorDashboard
  - Updated the multi-server example to directly link to the authentication URL

- Updated dependencies [0144a31]
- Updated dependencies [0144a31]
- Updated dependencies [0144a31]
  - @mcp-use/inspector@0.15.0
  - @mcp-use/cli@2.10.0

## 1.13.2-canary.1

### Patch Changes

- 7b137c2: chore(docs): update documentation with the latest release notes
  - @mcp-use/cli@2.10.0-canary.1
  - @mcp-use/inspector@0.15.0-canary.1

## 1.13.2-canary.0

### Patch Changes

- c9bde52: Updated dependency `hono` to `^4.11.4`.
- 450ab65: feat(cli): enhance login and deployment commands
  - Updated the login command to handle errors gracefully
  - Modified the deployment command to prompt users for login if not authenticated
  - Removed the `fromSource` option from the deployment command
  - Added checks for uncommitted changes in the git repository before deployment
  - Updated various commands to consistently use `npx mcp-use login` for login instructions

  refactor(inspector, multi-server-example): authentication UI and logic
  - Simplified the authentication button logic in InspectorDashboard
  - Updated the multi-server example to directly link to the authentication URL

- Updated dependencies [52be97c]
- Updated dependencies [c9bde52]
- Updated dependencies [450ab65]
  - @mcp-use/inspector@0.15.0-canary.0
  - @mcp-use/cli@2.10.0-canary.0

## 1.13.1

### Patch Changes

- b8626dc: fix: enable json response in stateless mode
- Updated dependencies [b8626dc]
  - @mcp-use/cli@2.9.1
  - @mcp-use/inspector@0.14.6

## 1.13.1-canary.1

### Patch Changes

- Updated dependencies [727df09]
  - @mcp-use/cli@2.9.1-canary.1
  - @mcp-use/inspector@0.14.6-canary.1

## 1.13.1-canary.0

### Patch Changes

- 548206f: fix: enable json response in stateless mode
  - @mcp-use/cli@2.9.1-canary.0
  - @mcp-use/inspector@0.14.6-canary.0

## 1.13.0

### Minor Changes

- bcdecd4: feat: Hot Module Reloading (HMR) for MCP server development

  Added HMR support to the `mcp-use dev` command. When you modify your server file (add/remove/update tools, prompts, or resources), changes are applied instantly without restarting the server or dropping client connections.

  **Features:**
  - Tools, prompts, and resources can be added, removed, or updated on-the-fly
  - Connected clients (like the inspector) receive `list_changed` notifications and auto-refresh
  - No changes required to user code - existing server files work as-is
  - Syntax errors during reload are caught gracefully without crashing the server

  **How it works:**
  - CLI uses `chokidar` to watch `src/` directory and root `.ts`/`.tsx` files
  - On file change, the module is re-imported with cache-busting
  - `syncRegistrationsFrom()` diffs registrations and uses the SDK's native `RegisteredTool.update()` and `remove()` methods
  - `list_changed` notifications are sent to all connected sessions

  **Usage:**

  ```bash
  mcp-use dev  # HMR enabled by default
  mcp-use dev --no-hmr  # Disable HMR, use tsx watch instead
  ```

### Patch Changes

- bcdecd4: Add comprehensive test suite for Hot Module Replacement (HMR) functionality

  **Testing Approach:**

  Tests use minimal mocking, focusing on:
  - Real `MCPServer` instances
  - Actual console logs (the developer experience)
  - Direct registration state inspection
  - Light session mocking only for injection tests

  This approach is more robust and less brittle than heavy mocking, as tests verify real behavior and won't break when SDK internals change.

  **Test Coverage:**

  **Unit Tests** (`tests/unit/server/hmr.test.ts` - 15 tests):
  - Tool registration (add, update, inject)
  - Prompt registration (add, inject)
  - Resource registration (add, inject)
  - Notification sending (tools/list_changed, prompts/list_changed, resources/list_changed)
  - Entry methods (enable, disable, remove, update)
  - Error handling for injection failures
  - Graceful notification error handling

  **Integration Tests** (`tests/integration/hmr-cli.test.ts`):
  - End-to-end file change detection
  - Tool addition via HMR
  - Tool description updates
  - Syntax error handling and recovery
  - Connection persistence during HMR

  **CLI Tests** (`packages/cli/tests/tsx-resolution.test.ts`):
  - tsx binary resolution from package.json bin field
  - Handling string and object bin formats
  - Graceful error handling for missing bin field
  - Preference for 'tsx' entry in object form

  All tests include proper setup/teardown, mocking, and comprehensive assertions.

- bcdecd4: This release includes significant enhancements to OAuth flow handling, server metadata caching, and favicon detection:

  **OAuth Flow Enhancements**
  - Enhanced OAuth proxy to support gateway/proxy scenarios (e.g., Supabase MCP servers)
  - Added automatic metadata URL rewriting from gateway URLs to actual server URLs
  - Implemented resource parameter rewriting for authorize and token requests to use actual server URLs
  - Added WWW-Authenticate header discovery for OAuth metadata endpoints
  - Store and reuse OAuth proxy settings in callback flow for CORS bypass during token exchange
  - Added X-Forwarded-Host support for proper proxy URL construction in dev environments

  **Client Info Support**
  - Added `clientInfo` configuration prop to `McpClientProvider` for OAuth registration
  - Client info (name, version, icons, websiteUrl) is now sent during OAuth registration and displayed on consent pages
  - Supports per-server client info override
  - Inspector now includes client info with branding

  **Server Metadata Caching**
  - Added `CachedServerMetadata` interface for storing server name, version, icons, and other metadata
  - Extended `StorageProvider` interface with optional metadata methods (`getServerMetadata`, `setServerMetadata`, `removeServerMetadata`)
  - Implemented metadata caching in `LocalStorageProvider` and `MemoryStorageProvider`
  - Server metadata is now automatically cached when servers connect and used as initial display while fetching fresh data
  - Improves UX by showing server info immediately on reconnect

  **Inspector Improvements**
  - Added logging middleware to API routes for better debugging
  - Simplified server ID handling by removing redundant URL decoding (searchParams.get() already decodes)
  - Added X-Forwarded-Host header forwarding in Vite proxy configuration
  - Enabled OAuth proxy logging for better visibility

  **Favicon Detection Improvements**
  - Enhanced favicon detector to try all subdomain levels (e.g., mcp.supabase.com → supabase.com → com)
  - Added detection of default vs custom favicons using JSON API response
  - Prefer non-default favicons when available
  - Better handling of fallback cases

  **Other Changes**
  - Updated multi-server example with Supabase OAuth proxy example
  - Added connectionUrl parameter passing for resource field rewriting throughout OAuth flow
  - Improved logging and error messages throughout OAuth flow

- bcdecd4: fix: remove import from "mcp-use" which causes langchain import in server
- bcdecd4: feat(hmr): enhance synchronization for tools, prompts, and resources
  - Implemented a generic synchronization mechanism for hot module replacement (HMR) that updates tools, prompts, and resources in active sessions without removal.
  - Added support for detecting changes in definitions, including renames and updates, ensuring seamless integration during HMR.
  - Improved logging for changes in registrations, enhancing developer visibility into updates during the HMR process.
  - Introduced a new file for HMR synchronization logic, centralizing the handling of updates across different primitive types.

- Updated dependencies [bcdecd4]
- Updated dependencies [bcdecd4]
- Updated dependencies [bcdecd4]
- Updated dependencies [bcdecd4]
- Updated dependencies [bcdecd4]
- Updated dependencies [bcdecd4]
  - @mcp-use/cli@2.9.0
  - @mcp-use/inspector@0.14.5

## 1.13.0-canary.3

### Patch Changes

- e962a16: fix: remove import from "mcp-use" which causes langchain import in server
- Updated dependencies [e962a16]
  - @mcp-use/inspector@0.14.5-canary.3
  - @mcp-use/cli@2.9.0-canary.3

## 1.13.0-canary.2

### Patch Changes

- 118cb30: feat(hmr): enhance synchronization for tools, prompts, and resources
  - Implemented a generic synchronization mechanism for hot module replacement (HMR) that updates tools, prompts, and resources in active sessions without removal.
  - Added support for detecting changes in definitions, including renames and updates, ensuring seamless integration during HMR.
  - Improved logging for changes in registrations, enhancing developer visibility into updates during the HMR process.
  - Introduced a new file for HMR synchronization logic, centralizing the handling of updates across different primitive types.

- Updated dependencies [118cb30]
  - @mcp-use/inspector@0.14.5-canary.2
  - @mcp-use/cli@2.9.0-canary.2

## 1.13.0-canary.1

### Patch Changes

- 7359d66: Add comprehensive test suite for Hot Module Replacement (HMR) functionality

  **Testing Approach:**

  Tests use minimal mocking, focusing on:
  - Real `MCPServer` instances
  - Actual console logs (the developer experience)
  - Direct registration state inspection
  - Light session mocking only for injection tests

  This approach is more robust and less brittle than heavy mocking, as tests verify real behavior and won't break when SDK internals change.

  **Test Coverage:**

  **Unit Tests** (`tests/unit/server/hmr.test.ts` - 15 tests):
  - Tool registration (add, update, inject)
  - Prompt registration (add, inject)
  - Resource registration (add, inject)
  - Notification sending (tools/list_changed, prompts/list_changed, resources/list_changed)
  - Entry methods (enable, disable, remove, update)
  - Error handling for injection failures
  - Graceful notification error handling

  **Integration Tests** (`tests/integration/hmr-cli.test.ts`):
  - End-to-end file change detection
  - Tool addition via HMR
  - Tool description updates
  - Syntax error handling and recovery
  - Connection persistence during HMR

  **CLI Tests** (`packages/cli/tests/tsx-resolution.test.ts`):
  - tsx binary resolution from package.json bin field
  - Handling string and object bin formats
  - Graceful error handling for missing bin field
  - Preference for 'tsx' entry in object form

  All tests include proper setup/teardown, mocking, and comprehensive assertions.

- Updated dependencies [7359d66]
- Updated dependencies [7359d66]
  - @mcp-use/cli@2.9.0-canary.1
  - @mcp-use/inspector@0.14.5-canary.1

## 1.13.0-canary.0

### Minor Changes

- 0be9ed8: feat: Hot Module Reloading (HMR) for MCP server development

  Added HMR support to the `mcp-use dev` command. When you modify your server file (add/remove/update tools, prompts, or resources), changes are applied instantly without restarting the server or dropping client connections.

  **Features:**
  - Tools, prompts, and resources can be added, removed, or updated on-the-fly
  - Connected clients (like the inspector) receive `list_changed` notifications and auto-refresh
  - No changes required to user code - existing server files work as-is
  - Syntax errors during reload are caught gracefully without crashing the server

  **How it works:**
  - CLI uses `chokidar` to watch `src/` directory and root `.ts`/`.tsx` files
  - On file change, the module is re-imported with cache-busting
  - `syncRegistrationsFrom()` diffs registrations and uses the SDK's native `RegisteredTool.update()` and `remove()` methods
  - `list_changed` notifications are sent to all connected sessions

  **Usage:**

  ```bash
  mcp-use dev  # HMR enabled by default
  mcp-use dev --no-hmr  # Disable HMR, use tsx watch instead
  ```

### Patch Changes

- dfb30a6: This release includes significant enhancements to OAuth flow handling, server metadata caching, and favicon detection:

  **OAuth Flow Enhancements**
  - Enhanced OAuth proxy to support gateway/proxy scenarios (e.g., Supabase MCP servers)
  - Added automatic metadata URL rewriting from gateway URLs to actual server URLs
  - Implemented resource parameter rewriting for authorize and token requests to use actual server URLs
  - Added WWW-Authenticate header discovery for OAuth metadata endpoints
  - Store and reuse OAuth proxy settings in callback flow for CORS bypass during token exchange
  - Added X-Forwarded-Host support for proper proxy URL construction in dev environments

  **Client Info Support**
  - Added `clientInfo` configuration prop to `McpClientProvider` for OAuth registration
  - Client info (name, version, icons, websiteUrl) is now sent during OAuth registration and displayed on consent pages
  - Supports per-server client info override
  - Inspector now includes client info with branding

  **Server Metadata Caching**
  - Added `CachedServerMetadata` interface for storing server name, version, icons, and other metadata
  - Extended `StorageProvider` interface with optional metadata methods (`getServerMetadata`, `setServerMetadata`, `removeServerMetadata`)
  - Implemented metadata caching in `LocalStorageProvider` and `MemoryStorageProvider`
  - Server metadata is now automatically cached when servers connect and used as initial display while fetching fresh data
  - Improves UX by showing server info immediately on reconnect

  **Inspector Improvements**
  - Added logging middleware to API routes for better debugging
  - Simplified server ID handling by removing redundant URL decoding (searchParams.get() already decodes)
  - Added X-Forwarded-Host header forwarding in Vite proxy configuration
  - Enabled OAuth proxy logging for better visibility

  **Favicon Detection Improvements**
  - Enhanced favicon detector to try all subdomain levels (e.g., mcp.supabase.com → supabase.com → com)
  - Added detection of default vs custom favicons using JSON API response
  - Prefer non-default favicons when available
  - Better handling of fallback cases

  **Other Changes**
  - Updated multi-server example with Supabase OAuth proxy example
  - Added connectionUrl parameter passing for resource field rewriting throughout OAuth flow
  - Improved logging and error messages throughout OAuth flow

- Updated dependencies [dfb30a6]
- Updated dependencies [0be9ed8]
  - @mcp-use/inspector@0.14.5-canary.0
  - @mcp-use/cli@2.9.0-canary.0

## 1.12.4

### Patch Changes

- Updated dependencies [5161914]
  - @mcp-use/inspector@0.14.4
  - @mcp-use/cli@2.8.4

## 1.12.4-canary.0

### Patch Changes

- Updated dependencies [a308b3f]
  - @mcp-use/inspector@0.14.4-canary.0
  - @mcp-use/cli@2.8.4-canary.0

## 1.12.3

### Patch Changes

- 2f89a3b: Updated dependency `react-router` to `^7.12.0`.
- 2f89a3b: Security: Fixed 13 vulnerabilities (3 moderate, 10 high)
  - Updated `langchain` to `^1.2.3` (fixes serialization injection vulnerability)
  - Updated `@langchain/core` to `^1.1.8` (fixes serialization injection vulnerability)
  - Updated `react-router` to `^7.12.0` (fixes XSS and CSRF vulnerabilities)
  - Updated `react-router-dom` to `^7.12.0` (fixes XSS and CSRF vulnerabilities)
  - Added override for `qs` to `>=6.14.1` (fixes DoS vulnerability)
  - Added override for `preact` to `>=10.28.2` (fixes JSON VNode injection)

- 2f89a3b: fix: resolve OAuth flow looping issue by removing duplicate fallback logic
  - Fixed OAuth authentication loop in inspector by removing duplicated fallback logic in useAutoConnect hook
  - Simplified connection handling by consolidating state management and removing unnecessary complexity
  - Enhanced OAuth authentication flow with improved connection settings and user-initiated actions
  - Refactored connection handling to default to manual authentication, requiring explicit user action for OAuth
  - Improved auto-connect functionality with better proxy handling and error management
  - Enhanced theme toggling with dropdown menu for better UX and accessibility
  - Updated OAuth flow management in browser provider and callback handling for better state management
  - Streamlined proxy fallback configuration to use useMcp's built-in autoProxyFallback

- Updated dependencies [2f89a3b]
- Updated dependencies [2f89a3b]
- Updated dependencies [2f89a3b]
  - @mcp-use/inspector@0.14.3
  - @mcp-use/cli@2.8.3

## 1.12.3-canary.1

### Patch Changes

- 9cdc757: Security: Fixed 13 vulnerabilities (3 moderate, 10 high)
  - Updated `langchain` to `^1.2.3` (fixes serialization injection vulnerability)
  - Updated `@langchain/core` to `^1.1.8` (fixes serialization injection vulnerability)
  - Updated `react-router` to `^7.12.0` (fixes XSS and CSRF vulnerabilities)
  - Updated `react-router-dom` to `^7.12.0` (fixes XSS and CSRF vulnerabilities)
  - Added override for `qs` to `>=6.14.1` (fixes DoS vulnerability)
  - Added override for `preact` to `>=10.28.2` (fixes JSON VNode injection)

- cbf2bb8: fix: resolve OAuth flow looping issue by removing duplicate fallback logic
  - Fixed OAuth authentication loop in inspector by removing duplicated fallback logic in useAutoConnect hook
  - Simplified connection handling by consolidating state management and removing unnecessary complexity
  - Enhanced OAuth authentication flow with improved connection settings and user-initiated actions
  - Refactored connection handling to default to manual authentication, requiring explicit user action for OAuth
  - Improved auto-connect functionality with better proxy handling and error management
  - Enhanced theme toggling with dropdown menu for better UX and accessibility
  - Updated OAuth flow management in browser provider and callback handling for better state management
  - Streamlined proxy fallback configuration to use useMcp's built-in autoProxyFallback

- Updated dependencies [9cdc757]
- Updated dependencies [cbf2bb8]
  - @mcp-use/inspector@0.14.3-canary.1
  - @mcp-use/cli@2.8.3-canary.1

## 1.12.3-canary.0

### Patch Changes

- 708f6e5: Updated dependency `react-router` to `^7.12.0`.
- Updated dependencies [708f6e5]
  - @mcp-use/inspector@0.14.3-canary.0
  - @mcp-use/cli@2.8.3-canary.0

## 1.12.2

### Patch Changes

- 198fffd: Add configurable clientInfo support for MCP connection initialization. Clients can now customize how they identify themselves to MCP servers with full metadata including name, title, version, description, icons, and website URL. The clientConfig option is deprecated in favor of deriving it from clientInfo. Default clientInfo is set for mcp-use, inspector sets "mcp-use Inspector" with its own version, and CLI sets "mcp-use CLI".
- 198fffd: feat(inspector): add reconnect functionality for failed connections
  - Introduced a reconnect button in the InspectorDashboard for connections that fail, allowing users to attempt reconnection directly from the UI.
  - Enhanced the dropdown menu to include a reconnect option for failed connections, improving user experience and accessibility.
  - Updated HttpConnector to disable automatic reconnection, shifting the responsibility to higher-level logic for better control over connection management.

- 198fffd: chore: updated docs
- 198fffd: ## Breaking Changes (with Deprecation Warnings)
  - **Renamed `customHeaders` to `headers`**: The `customHeaders` option has been renamed to `headers` across all APIs for better consistency. The old name still works but shows deprecation warnings. Update your code to use `headers` instead.
  - **Renamed `samplingCallback` to `onSampling`**: Callback naming is now more consistent with event handler patterns. The old name still works but shows deprecation warnings.

  ## New Features
  - **Automatic Proxy Fallback**: Added `autoProxyFallback` option to `useMcp` hook and `McpClientProvider`. When enabled (default: `true` in provider), automatically retries failed connections through a proxy when CORS errors or HTTP 4xx errors are detected. This makes connecting to MCP servers much more reliable in browser environments.
  - **Provider-Level Proxy Defaults**: `McpClientProvider` now supports `defaultProxyConfig` and `defaultAutoProxyFallback` props to set proxy configuration for all servers. Individual servers can override these defaults.
  - **OAuth Proxy Support**: Added OAuth request proxying through fetch interceptor in `BrowserOAuthClientProvider`. Configure with `oauthProxyUrl` to route OAuth discovery and token requests through your backend proxy.

  ## Improvements
  - **Enhanced Error Detection**: Better detection of OAuth discovery failures, CORS errors, and connection issues
  - **Smarter Connection Logic**: OAuth provider now always uses the original target URL for OAuth discovery, not the proxy URL
  - **Better Session Management**: Improved session cleanup to avoid noisy warning logs
  - **Type Safety**: Added deprecation notices in TypeScript types for deprecated options
  - **Proxy Header Support**: `proxyConfig` now accepts a `headers` field for custom headers to the proxy

  ## Refactoring
  - **Removed `oauth-helper.ts`** (521 lines): OAuth helper utilities consolidated into `browser-provider.ts`
  - **Removed `react_example.html`**: Outdated example file removed
  - **Major `useMcp` Hook Refactor**: Complete rewrite of connection logic with automatic retry, better error handling, and proxy fallback support

  ## Documentation
  - Updated all client documentation to use new `headers` naming
  - Added comprehensive examples for automatic proxy fallback
  - Updated sampling documentation with new `onSampling` callback name
  - Refreshed React integration guide with provider-based approach

- Updated dependencies [198fffd]
- Updated dependencies [198fffd]
- Updated dependencies [198fffd]
- Updated dependencies [198fffd]
- Updated dependencies [198fffd]
  - @mcp-use/inspector@0.14.2
  - @mcp-use/cli@2.8.2

## 1.12.2-canary.2

### Patch Changes

- f9b1001: chore: updated docs
- Updated dependencies [f9b1001]
  - @mcp-use/inspector@0.14.2-canary.2
  - @mcp-use/cli@2.8.2-canary.2

## 1.12.2-canary.1

### Patch Changes

- 94e4e63: Add configurable clientInfo support for MCP connection initialization. Clients can now customize how they identify themselves to MCP servers with full metadata including name, title, version, description, icons, and website URL. The clientConfig option is deprecated in favor of deriving it from clientInfo. Default clientInfo is set for mcp-use, inspector sets "mcp-use Inspector" with its own version, and CLI sets "mcp-use CLI".
- 94e4e63: ## Breaking Changes (with Deprecation Warnings)
  - **Renamed `customHeaders` to `headers`**: The `customHeaders` option has been renamed to `headers` across all APIs for better consistency. The old name still works but shows deprecation warnings. Update your code to use `headers` instead.
  - **Renamed `samplingCallback` to `onSampling`**: Callback naming is now more consistent with event handler patterns. The old name still works but shows deprecation warnings.

  ## New Features
  - **Automatic Proxy Fallback**: Added `autoProxyFallback` option to `useMcp` hook and `McpClientProvider`. When enabled (default: `true` in provider), automatically retries failed connections through a proxy when CORS errors or HTTP 4xx errors are detected. This makes connecting to MCP servers much more reliable in browser environments.
  - **Provider-Level Proxy Defaults**: `McpClientProvider` now supports `defaultProxyConfig` and `defaultAutoProxyFallback` props to set proxy configuration for all servers. Individual servers can override these defaults.
  - **OAuth Proxy Support**: Added OAuth request proxying through fetch interceptor in `BrowserOAuthClientProvider`. Configure with `oauthProxyUrl` to route OAuth discovery and token requests through your backend proxy.

  ## Improvements
  - **Enhanced Error Detection**: Better detection of OAuth discovery failures, CORS errors, and connection issues
  - **Smarter Connection Logic**: OAuth provider now always uses the original target URL for OAuth discovery, not the proxy URL
  - **Better Session Management**: Improved session cleanup to avoid noisy warning logs
  - **Type Safety**: Added deprecation notices in TypeScript types for deprecated options
  - **Proxy Header Support**: `proxyConfig` now accepts a `headers` field for custom headers to the proxy

  ## Refactoring
  - **Removed `oauth-helper.ts`** (521 lines): OAuth helper utilities consolidated into `browser-provider.ts`
  - **Removed `react_example.html`**: Outdated example file removed
  - **Major `useMcp` Hook Refactor**: Complete rewrite of connection logic with automatic retry, better error handling, and proxy fallback support

  ## Documentation
  - Updated all client documentation to use new `headers` naming
  - Added comprehensive examples for automatic proxy fallback
  - Updated sampling documentation with new `onSampling` callback name
  - Refreshed React integration guide with provider-based approach

- Updated dependencies [94e4e63]
- Updated dependencies [94e4e63]
- Updated dependencies [94e4e63]
  - @mcp-use/inspector@0.14.2-canary.1
  - @mcp-use/cli@2.8.2-canary.1

## 1.12.2-canary.0

### Patch Changes

- a0aa464: feat(inspector): add reconnect functionality for failed connections
  - Introduced a reconnect button in the InspectorDashboard for connections that fail, allowing users to attempt reconnection directly from the UI.
  - Enhanced the dropdown menu to include a reconnect option for failed connections, improving user experience and accessibility.
  - Updated HttpConnector to disable automatic reconnection, shifting the responsibility to higher-level logic for better control over connection management.

- Updated dependencies [a0aa464]
  - @mcp-use/inspector@0.14.2-canary.0
  - @mcp-use/cli@2.8.2-canary.0

## 1.12.1

### Patch Changes

- e36d1ab: Updated dependency `@modelcontextprotocol/sdk` to `^1.25.2`.
- e36d1ab: Updated dependency `@modelcontextprotocol/sdk` from `1.25.1` to `1.25.2`. This update includes a fix for ReDoS vulnerability in UriTemplate regex patterns.
- Updated dependencies [e36d1ab]
- Updated dependencies [e36d1ab]
- Updated dependencies [e36d1ab]
- Updated dependencies [e36d1ab]
  - @mcp-use/inspector@0.14.1
  - @mcp-use/cli@2.8.1

## 1.12.1-canary.2

### Patch Changes

- Updated dependencies [74ff401]
  - @mcp-use/inspector@0.14.1-canary.2
  - @mcp-use/cli@2.8.1-canary.2

## 1.12.1-canary.1

### Patch Changes

- Updated dependencies [4ff190a]
  - @mcp-use/cli@2.8.1-canary.1
  - @mcp-use/inspector@0.14.1-canary.1

## 1.12.1-canary.0

### Patch Changes

- 1674a02: Updated dependency `@modelcontextprotocol/sdk` from `1.25.1` to `1.25.2`. This update includes a fix for ReDoS vulnerability in UriTemplate regex patterns.
- Updated dependencies [1674a02]
- Updated dependencies [1674a02]
  - @mcp-use/inspector@0.14.1-canary.0
  - @mcp-use/cli@2.8.1-canary.0

## 1.12.0

### Minor Changes

- 53fb670: ## Multi-Server Support and Architecture Improvements

  ### Features
  - **Multi-server management**: Introduced `McpClientProvider` to manage multiple MCP server connections, allowing dynamic addition and removal of servers in React applications
  - **Storage providers**: Added pluggable storage system with `LocalStorageProvider` and `MemoryStorageProvider` for flexible server configuration persistence
  - **Enhanced RPC logging**: New `rpc-logger` module with filtering capabilities to reduce noisy endpoint logging (telemetry, RPC streams)
  - **Browser support**: Exported `MCPAgent` for browser usage with `BrowserMCPClient` instance or through `RemoteAgent`

  ### Inspector Enhancements
  - **Improved UI responsiveness**: Enhanced mobile and tablet layouts with adaptive component visibility
  - **Better server management**: Refactored server connection handling with improved icon display and status tracking
  - **Enhanced debugging**: Added detailed logging in Layout and useAutoConnect components for better monitoring of server connection states
  - **Simplified connection settings**: Removed deprecated transport types for cleaner configuration

  ### Architecture Changes
  - Removed obsolete `McpContext` (replaced with `McpClientProvider`)
  - Refactored `useMcp` hook for better multi-server support
  - Updated components across inspector for cleaner architecture and imports
  - Added multi-server React example demonstrating new capabilities

  ### Bug Fixes
  - Fixed server connection retrieval in `OpenAIComponentRenderer` to directly access connections array

- 53fb670: chore: revert to using official sdk 1.25.1
- 53fb670: chore: make broser bundle node js free
- 53fb670: feat: remove Node.js dependencies and improve browser compatibility

  This release removes Node.js-specific dependencies and significantly improves browser compatibility across the mcp-use ecosystem.

  ## Breaking Changes
  - **Logging**: Removed `winston` dependency. The logging system now uses a simple console logger that works in both browser and Node.js environments.

  ## New Features

  ### Browser Runtime Support
  - **Browser Telemetry**: Added `telemetry-browser.ts` that uses `posthog-js` for browser environments, separate from Node.js telemetry
  - **Browser Entry Point**: Enhanced `browser.ts` entry point with improved browser-specific utilities
  - **Browser Utilities**: Added new utilities:
    - `utils/favicon-detector.ts` - Detect and extract favicons from URLs
    - `utils/proxy-config.ts` - Proxy configuration utilities for browser environments
    - `utils/mcpClientUtils.ts` - MCP client utilities moved from client package

  ### React Components
  - **AddToClientDropdown**: New React component (`src/react/AddToClientDropdown.tsx`) for adding MCP servers to clients with enhanced UI and functionality

  ### Server Middleware
  - **MCP Proxy Middleware**: Added `server/middleware/mcp-proxy.ts` - Hono middleware for proxying MCP server requests with optional authentication and request validation

  ### Inspector Improvements
  - Enhanced inspector components for better browser compatibility
  - Improved server icon support and component interactions
  - Added embedded mode support
  - Better configuration handling and MCP proxy integration

  ## Refactoring
  - **Telemetry Split**: Separated telemetry into `telemetry-browser.ts` (browser) and `telemetry-node.ts` (Node.js) for better environment-specific implementations
  - **Logging Refactor**: Replaced Winston with `SimpleConsoleLogger` that works across all environments
  - **Build Configuration**: Updated `tsup.config.ts` to exclude Node.js-specific dependencies (`winston`, `posthog-node`) from browser builds
  - **Package Dependencies**: Removed `winston` and related Node.js-only dependencies from `package.json`

  ## Testing
  - Added comprehensive test (`browser-react-no-node-deps.test.ts`) to ensure `mcp-use/react` and `mcp-use/browser` do not import Node.js dependencies

  This release makes mcp-use fully compatible with browser environments while maintaining backward compatibility with Node.js applications.

- 53fb670: feat(inspector): enhance client configuration and UI components
  - Added support for client exports in the build process by introducing a new build script for client exports in `package.json`.
  - Enhanced the `CommandPalette` and `SdkIntegrationModal` components to utilize local utility functions instead of external dependencies.
  - Introduced a new CSS animation for status indicators in `index.css`.
  - Updated the `LayoutHeader` component to conditionally display notification dots based on tab activity.
  - Removed the deprecated `AddToClientDropdown` component and adjusted related imports accordingly.
  - Improved client configuration examples in the `notification-client` and `sampling-client` files to include client identification for better server-side logging.
  - Cleaned up unused imports and ensured consistent formatting across several files.

### Patch Changes

- 53fb670: fix: add client sdks to add to client dropdown
- 53fb670: fix/linux patch for watch mode
- 53fb670: chore: lint & format
- 53fb670: fix: respect options timeout in http connector
- 53fb670: fix: prevent rendering loop when autoretry is true
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
- Updated dependencies [53fb670]
  - @mcp-use/inspector@0.14.0
  - @mcp-use/cli@2.8.0

## 1.12.0-canary.14

### Patch Changes

- Updated dependencies [b16431b]
  - @mcp-use/inspector@0.14.0-canary.14
  - @mcp-use/cli@2.8.0-canary.14

## 1.12.0-canary.13

### Patch Changes

- Updated dependencies [a95e8bb]
  - @mcp-use/cli@2.8.0-canary.13
  - @mcp-use/inspector@0.14.0-canary.13

## 1.12.0-canary.12

### Minor Changes

- d02b8df: chore: revert to using official sdk 1.25.1

### Patch Changes

- @mcp-use/cli@2.8.0-canary.12
- @mcp-use/inspector@0.14.0-canary.12

## 1.12.0-canary.11

### Minor Changes

- 55db23e: feat(inspector): enhance client configuration and UI components
  - Added support for client exports in the build process by introducing a new build script for client exports in `package.json`.
  - Enhanced the `CommandPalette` and `SdkIntegrationModal` components to utilize local utility functions instead of external dependencies.
  - Introduced a new CSS animation for status indicators in `index.css`.
  - Updated the `LayoutHeader` component to conditionally display notification dots based on tab activity.
  - Removed the deprecated `AddToClientDropdown` component and adjusted related imports accordingly.
  - Improved client configuration examples in the `notification-client` and `sampling-client` files to include client identification for better server-side logging.
  - Cleaned up unused imports and ensured consistent formatting across several files.

### Patch Changes

- Updated dependencies [55db23e]
  - @mcp-use/inspector@0.14.0-canary.11
  - @mcp-use/cli@2.8.0-canary.11

## 1.12.0-canary.10

### Patch Changes

- ce4647d: chore: lint & format
- Updated dependencies [ce4647d]
  - @mcp-use/inspector@0.14.0-canary.10
  - @mcp-use/cli@2.8.0-canary.10

## 1.12.0-canary.9

### Patch Changes

- 4fb8223: fix/linux patch for watch mode
  - @mcp-use/cli@2.8.0-canary.9
  - @mcp-use/inspector@0.14.0-canary.9

## 1.12.0-canary.8

### Patch Changes

- daf3c81: fix: prevent rendering loop when autoretry is true
  - @mcp-use/cli@2.8.0-canary.8
  - @mcp-use/inspector@0.14.0-canary.8

## 1.12.0-canary.7

### Patch Changes

- 4f93dc3: fix: respect options timeout in http connector
  - @mcp-use/cli@2.8.0-canary.7
  - @mcp-use/inspector@0.14.0-canary.7

## 1.12.0-canary.6

### Patch Changes

- 2113c43: fix: add client sdks to add to client dropdown
- Updated dependencies [2113c43]
  - @mcp-use/inspector@0.14.0-canary.6
  - @mcp-use/cli@2.8.0-canary.6

## 1.12.0-canary.5

### Patch Changes

- Updated dependencies [7381ec3]
  - @mcp-use/inspector@0.14.0-canary.5
  - @mcp-use/cli@2.8.0-canary.5

## 1.12.0-canary.4

### Patch Changes

- Updated dependencies [ef5a71d]
  - @mcp-use/inspector@0.14.0-canary.4
  - @mcp-use/cli@2.8.0-canary.4

## 1.12.0-canary.3

### Minor Changes

- 8bc7f4d: ## Multi-Server Support and Architecture Improvements

  ### Features
  - **Multi-server management**: Introduced `McpClientProvider` to manage multiple MCP server connections, allowing dynamic addition and removal of servers in React applications
  - **Storage providers**: Added pluggable storage system with `LocalStorageProvider` and `MemoryStorageProvider` for flexible server configuration persistence
  - **Enhanced RPC logging**: New `rpc-logger` module with filtering capabilities to reduce noisy endpoint logging (telemetry, RPC streams)
  - **Browser support**: Exported `MCPAgent` for browser usage with `BrowserMCPClient` instance or through `RemoteAgent`

  ### Inspector Enhancements
  - **Improved UI responsiveness**: Enhanced mobile and tablet layouts with adaptive component visibility
  - **Better server management**: Refactored server connection handling with improved icon display and status tracking
  - **Enhanced debugging**: Added detailed logging in Layout and useAutoConnect components for better monitoring of server connection states
  - **Simplified connection settings**: Removed deprecated transport types for cleaner configuration

  ### Architecture Changes
  - Removed obsolete `McpContext` (replaced with `McpClientProvider`)
  - Refactored `useMcp` hook for better multi-server support
  - Updated components across inspector for cleaner architecture and imports
  - Added multi-server React example demonstrating new capabilities

  ### Bug Fixes
  - Fixed server connection retrieval in `OpenAIComponentRenderer` to directly access connections array

### Patch Changes

- Updated dependencies [8bc7f4d]
  - @mcp-use/inspector@0.14.0-canary.3
  - @mcp-use/cli@2.8.0-canary.3

## 1.12.0-canary.2

### Patch Changes

- Updated dependencies [93fd156]
  - @mcp-use/inspector@0.14.0-canary.2
  - @mcp-use/cli@2.8.0-canary.2

## 1.12.0-canary.1

### Minor Changes

- 2156916: chore: make broser bundle node js free
- 2156916: feat: remove Node.js dependencies and improve browser compatibility

  This release removes Node.js-specific dependencies and significantly improves browser compatibility across the mcp-use ecosystem.

  ## Breaking Changes
  - **Logging**: Removed `winston` dependency. The logging system now uses a simple console logger that works in both browser and Node.js environments.

  ## New Features

  ### Browser Runtime Support
  - **Browser Telemetry**: Added `telemetry-browser.ts` that uses `posthog-js` for browser environments, separate from Node.js telemetry
  - **Browser Entry Point**: Enhanced `browser.ts` entry point with improved browser-specific utilities
  - **Browser Utilities**: Added new utilities:
    - `utils/favicon-detector.ts` - Detect and extract favicons from URLs
    - `utils/proxy-config.ts` - Proxy configuration utilities for browser environments
    - `utils/mcpClientUtils.ts` - MCP client utilities moved from client package

  ### React Components
  - **AddToClientDropdown**: New React component (`src/react/AddToClientDropdown.tsx`) for adding MCP servers to clients with enhanced UI and functionality

  ### Server Middleware
  - **MCP Proxy Middleware**: Added `server/middleware/mcp-proxy.ts` - Hono middleware for proxying MCP server requests with optional authentication and request validation

  ### Inspector Improvements
  - Enhanced inspector components for better browser compatibility
  - Improved server icon support and component interactions
  - Added embedded mode support
  - Better configuration handling and MCP proxy integration

  ## Refactoring
  - **Telemetry Split**: Separated telemetry into `telemetry-browser.ts` (browser) and `telemetry-node.ts` (Node.js) for better environment-specific implementations
  - **Logging Refactor**: Replaced Winston with `SimpleConsoleLogger` that works across all environments
  - **Build Configuration**: Updated `tsup.config.ts` to exclude Node.js-specific dependencies (`winston`, `posthog-node`) from browser builds
  - **Package Dependencies**: Removed `winston` and related Node.js-only dependencies from `package.json`

  ## Testing
  - Added comprehensive test (`browser-react-no-node-deps.test.ts`) to ensure `mcp-use/react` and `mcp-use/browser` do not import Node.js dependencies

  This release makes mcp-use fully compatible with browser environments while maintaining backward compatibility with Node.js applications.

### Patch Changes

- Updated dependencies [2156916]
- Updated dependencies [2156916]
  - @mcp-use/inspector@0.14.0-canary.1
  - @mcp-use/cli@2.8.0-canary.1

## 1.11.3-canary.0

### Patch Changes

- Updated dependencies [841cccf]
  - @mcp-use/inspector@0.14.0-canary.0
  - @mcp-use/cli@2.7.1-canary.0

## 1.11.2

### Patch Changes

- 9a8cb3a: chore(docs): updated examples and docs to use preferred methods
- Updated dependencies [9a8cb3a]
- Updated dependencies [9a8cb3a]
- Updated dependencies [9a8cb3a]
- Updated dependencies [9a8cb3a]
- Updated dependencies [9a8cb3a]
  - @mcp-use/cli@2.7.0
  - @mcp-use/inspector@0.13.2

## 1.11.2-canary.1

### Patch Changes

- 681c929: chore(docs): updated examples and docs to use preferred methods
- Updated dependencies [681c929]
- Updated dependencies [681c929]
  - @mcp-use/cli@2.7.0-canary.1
  - @mcp-use/inspector@0.13.2-canary.1

## 1.11.2-canary.0

### Patch Changes

- Updated dependencies [0f3550c]
- Updated dependencies [0f3550c]
- Updated dependencies [0f3550c]
  - @mcp-use/cli@2.7.0-canary.0
  - @mcp-use/inspector@0.13.2-canary.0

## 1.11.1

### Patch Changes

- abf0e0f: fix: widget props not picked up if zod
- Updated dependencies [abf0e0f]
  - @mcp-use/inspector@0.13.1
  - @mcp-use/cli@2.6.1

## 1.11.1-canary.0

### Patch Changes

- 6fc856c: fix: widget props not picked up if zod
- Updated dependencies [6fc856c]
  - @mcp-use/inspector@0.13.1-canary.0
  - @mcp-use/cli@2.6.1-canary.0

## 1.11.0

### Minor Changes

- 8a2e84e: ## Breaking Changes

  ### LangChain Adapter Export Path Changed

  The LangChain adapter is no longer exported from the main entry point. Import from `mcp-use/adapters` instead:

  ```typescript
  // Before
  import { LangChainAdapter } from "mcp-use";

  // After
  import { LangChainAdapter } from "mcp-use/adapters";
  ```

  **Note:** `@langchain/core` and `langchain` moved from dependencies to optional peer dependencies.

  **Learn more:** [LangChain Integration](https://mcp-use.com/docs/typescript/agent/llm-integration)

  ### WebSocket Transport Removed

  WebSocket transport support has been removed. Use streamable HTTP or SSE transports instead.

  **Learn more:** [Client Configuration](https://mcp-use.com/docs/typescript/client/client-configuration)

  ## Features

  ### Session Management Architecture with Redis Support

  Implements a pluggable session management architecture enabling distributed deployments with cross-server notifications, sampling, and resource subscriptions.

  **New Interfaces:**
  - `SessionStore` - Pluggable interface for storing session metadata
    - `InMemorySessionStore` (production default)
    - `FileSystemSessionStore` (dev mode default)
    - `RedisSessionStore` (distributed deployments)
  - `StreamManager` - Manages active SSE connections
    - `InMemoryStreamManager` (default)
    - `RedisStreamManager` (distributed via Redis Pub/Sub)

  **Server Configuration:**

  ```typescript
  // Development (default - FileSystemSessionStore for hot reload)
  const server = new MCPServer({
    name: "dev-server",
    version: "1.0.0",
  });

  // Production distributed (cross-server notifications)
  import { RedisSessionStore, RedisStreamManager } from "mcp-use/server";
  const server = new MCPServer({
    name: "prod-server",
    version: "1.0.0",
    sessionStore: new RedisSessionStore({ client: redis }),
    streamManager: new RedisStreamManager({
      client: redis,
      pubSubClient: pubSubRedis,
    }),
  });
  ```

  **Client Improvements:**
  - Auto-refresh tools/resources/prompts when receiving list change notifications
  - Manual refresh methods: `refreshTools()`, `refreshResources()`, `refreshPrompts()`, `refreshAll()`
  - Automatic 404 handling and re-initialization per MCP spec

  **Convenience Methods:**
  - `sendToolsListChanged()` - Notify clients when tools list changes
  - `sendResourcesListChanged()` - Notify clients when resources list changes
  - `sendPromptsListChanged()` - Notify clients when prompts list changes

  **Development Experience:**
  - FileSystemSessionStore persists sessions to `.mcp-use/sessions.json` in dev mode
  - Sessions survive server hot reloads
  - Auto-cleanup of expired sessions (>24 hours)

  **Deprecated:**
  - `autoCreateSessionOnInvalidId` - Now follows MCP spec strictly (returns 404 for invalid sessions)

  **Learn more:** [Session Management](https://mcp-use.com/docs/typescript/server/session-management)

  ### Favicon Support for Widgets

  Added favicon configuration for widget pages:

  ```typescript
  const server = createMCPServer({
    name: "my-server",
    version: "1.0.0",
    favicon: "favicon.ico", // Path relative to public/ directory
  });
  ```

  - Favicon automatically served at `/favicon.ico` for entire server domain
  - CLI build process includes favicon in widget HTML pages
  - Long-term caching (1 year) for favicon assets

  **Learn more:** [UI Widgets](https://mcp-use.com/docs/typescript/server/ui-widgets) and [Server Configuration](https://mcp-use.com/docs/typescript/server/configuration)

  ### CLI Client Support

  Added dedicated CLI client support for better command-line integration and testing.

  **Learn more:** [CLI Client](https://mcp-use.com/docs/typescript/client/cli)

  ### Enhanced Session Methods
  - `callTool()` method now defaults args to an empty object
  - New `requireSession()` method for reliable session retrieval

  ## Improvements

  ### Widget Build System
  - Automatic cleanup of stale widget directories in `.mcp-use` folder
  - Dev mode watches for widget file/directory deletions and cleans up build artifacts

  ### Dependency Management
  - Added support for Node >= 18
  - Added CommonJS module support

  ### Documentation & Metadata
  - Updated agent documentation and method signatures
  - Added repository metadata to package.json

  ## Fixes

  ### Widget Fixes
  - Fixed widget styling isolation - widgets no longer pick up mcp-use styles
  - Fixed favicon URL generator for proper asset resolution

  ### React Router Migration

  Migrated from `react-router-dom` to `react-router` for better compatibility and reduced bundle size.

  **Learn more:** [useMcp Hook](https://mcp-use.com/docs/typescript/client/usemcp)

  ### Session & Transport Fixes
  - Fixed transport cleanup when session becomes idle
  - Fixed agent access to resources and prompts

  ### Code Quality
  - Formatting and linting improvements across packages

### Patch Changes

- 8a2e84e: chore: organized examples folder for typescript
  fix: inspector chat was using node modules
- 8a2e84e: fix: fix widget registration
- 8a2e84e: fix: import from mcp-use/client instead of main entry to avoid mixing dependencies
- 8a2e84e: chore: moved dev deps from the workspace packages to the typescript root for consistency
- 8a2e84e: fix: fix widget props registration
- 8a2e84e: chore: fixed codeql vulnerabilities
- 8a2e84e: ## Inspector: Faster Direct-to-Proxy Fallback
  - **Reduced connection timeout from 30s to 5s** for faster fallback when direct connections fail
  - **Removed automatic HTTP → SSE transport fallback** since SSE is deprecated
    - Added `disableSseFallback` option to `HttpConnector` to prevent automatic fallback to SSE transport
    - Inspector now explicitly uses HTTP transport only, relying on Direct → Proxy fallback instead
    - Users can still manually select SSE transport if needed
  - **Total fallback time: ~6 seconds** (5s timeout + 1s delay) instead of ~31 seconds

  ## Deployment: Fixed Supabase Health Check
  - **Fixed deploy.sh MCP server health check** to use POST instead of GET
    - SSE endpoints hang on GET requests, causing script to timeout
    - POST requests return immediately (415 error), proving server is up
    - Script now correctly detects when deployment is complete and shows success summary with URLs

- 8a2e84e: fix: improve supabase deploy docs + tel user id + scarf issue
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
- Updated dependencies [8a2e84e]
  - @mcp-use/inspector@0.13.0
  - @mcp-use/cli@2.6.0

## 1.11.0-canary.20

### Patch Changes

- a90ac6f: chore: fixed codeql vulnerabilities
- Updated dependencies [a90ac6f]
  - @mcp-use/inspector@0.13.0-canary.20
  - @mcp-use/cli@2.6.0-canary.20

## 1.11.0-canary.19

### Patch Changes

- Updated dependencies [1adbb26]
  - @mcp-use/inspector@0.13.0-canary.19
  - @mcp-use/cli@2.6.0-canary.19

## 1.11.0-canary.18

### Patch Changes

- d7797b6: fix: fix widget props registration
- 168a2e1: fix: improve supabase deploy docs + tel user id + scarf issue
- Updated dependencies [2902a2e]
- Updated dependencies [d7797b6]
  - @mcp-use/inspector@0.13.0-canary.18
  - @mcp-use/cli@2.6.0-canary.18

## 1.11.0-canary.17

### Patch Changes

- c24cafb: ## Inspector: Faster Direct-to-Proxy Fallback
  - **Reduced connection timeout from 30s to 5s** for faster fallback when direct connections fail
  - **Removed automatic HTTP → SSE transport fallback** since SSE is deprecated
    - Added `disableSseFallback` option to `HttpConnector` to prevent automatic fallback to SSE transport
    - Inspector now explicitly uses HTTP transport only, relying on Direct → Proxy fallback instead
    - Users can still manually select SSE transport if needed
  - **Total fallback time: ~6 seconds** (5s timeout + 1s delay) instead of ~31 seconds

  ## Deployment: Fixed Supabase Health Check
  - **Fixed deploy.sh MCP server health check** to use POST instead of GET
    - SSE endpoints hang on GET requests, causing script to timeout
    - POST requests return immediately (415 error), proving server is up
    - Script now correctly detects when deployment is complete and shows success summary with URLs

- Updated dependencies [c24cafb]
  - @mcp-use/cli@2.6.0-canary.17
  - @mcp-use/inspector@0.13.0-canary.17

## 1.11.0-canary.16

### Patch Changes

- 7eb280f: fix: fix widget registration
  - @mcp-use/cli@2.6.0-canary.16
  - @mcp-use/inspector@0.13.0-canary.16

## 1.11.0-canary.15

### Patch Changes

- Updated dependencies [0a7a19a]
  - @mcp-use/inspector@0.13.0-canary.15
  - @mcp-use/cli@2.6.0-canary.15

## 1.11.0-canary.14

### Patch Changes

- f5dfa51: chore: organized examples folder for typescript
  fix: inspector chat was using node modules
- Updated dependencies [f5dfa51]
  - @mcp-use/inspector@0.13.0-canary.14
  - @mcp-use/cli@2.6.0-canary.14

## 1.11.0-canary.13

### Patch Changes

- Updated dependencies [f7623fc]
  - @mcp-use/inspector@0.13.0-canary.13
  - @mcp-use/cli@2.6.0-canary.13

## 1.11.0-canary.12

### Patch Changes

- 68d1520: chore: moved dev deps from the workspace packages to the typescript root for consistency
- Updated dependencies [68d1520]
  - @mcp-use/inspector@0.13.0-canary.12
  - @mcp-use/cli@2.6.0-canary.12

## 1.11.0-canary.11

### Patch Changes

- cf72b53: fix: import from mcp-use/client instead of main entry to avoid mixing dependencies
- Updated dependencies [cf72b53]
  - @mcp-use/cli@2.6.0-canary.11
  - @mcp-use/inspector@0.13.0-canary.11

## 1.11.0-canary.10

### Patch Changes

- 14c015e: fix: trigger changeset
- Updated dependencies [14c015e]
  - @mcp-use/inspector@0.13.0-canary.10
  - @mcp-use/cli@2.6.0-canary.10

## 1.11.0-canary.9

### Minor Changes

- 0262b5c: feat: pluggable session management architecture with Redis support

  Implements a split architecture for session management, separating serializable metadata storage from active SSE stream management. This enables distributed deployments where notifications, sampling, and resource subscriptions work across multiple server instances.

  ## Session Management Architecture

  ### New Interfaces
  - **SessionStore**: Pluggable interface for storing serializable session metadata (client capabilities, log level, timestamps). Implementations:
    - `InMemorySessionStore` (production default) - Fast, in-memory storage
    - `FileSystemSessionStore` (dev mode default) - File-based persistence for hot reload support
    - `RedisSessionStore` - Persistent, distributed storage for production clusters
  - **StreamManager**: Pluggable interface for managing active SSE connections. Implementations:
    - `InMemoryStreamManager` (default) - Single server only
    - `RedisStreamManager` - Distributed via Redis Pub/Sub for cross-server notifications
  - **SessionMetadata**: New serializable interface for session metadata that can be stored externally
  - **SessionData**: Extends SessionMetadata with non-serializable runtime objects (transport, server, context)

  ### Server Configuration

  Added new `ServerConfig` options:
  - `sessionStore?: SessionStore` - Custom session metadata storage backend
  - `streamManager?: StreamManager` - Custom stream manager for active SSE connections

  Deprecated:
  - `autoCreateSessionOnInvalidId` - Now follows MCP spec strictly (returns 404 for invalid sessions). Use `sessionStore` with persistent backend for session persistence.

  Enhanced:
  - `stateless` mode now auto-detects based on client `Accept` header (supports k6, curl, and other HTTP-only clients)

  ### Client Improvements
  - Added automatic 404 handling and re-initialization in `SseConnectionManager` and `StreamableHttpConnectionManager` per MCP spec
  - Deprecated `sse` transport type in React types (use `http` or `auto`)
  - **Auto-refresh on list changes**: `useMcp` hook now automatically refreshes tools, resources, and prompts when receiving `notifications/tools/list_changed`, `notifications/resources/list_changed`, or `notifications/prompts/list_changed`
  - Added manual refresh methods: `refreshTools()`, `refreshResources()`, `refreshPrompts()`, and `refreshAll()` to `useMcp` return value
  - Inspector UI now automatically updates when tools/resources/prompts change during development

  ### Notification Enhancements

  Added convenience methods:
  - `sendToolsListChanged()` - Notify clients when tools list changes
  - `sendResourcesListChanged()` - Notify clients when resources list changes
  - `sendPromptsListChanged()` - Notify clients when prompts list changes

  ### Usage Examples

  ```typescript
  // Development (default - FileSystemSessionStore for hot reload support)
  const server = new MCPServer({
    name: "dev-server",
    version: "1.0.0",
    // Sessions automatically persist to .mcp-use/sessions.json
    // Survives server restarts during hot reload!
  });

  // Production single instance (persistent sessions)
  import { RedisSessionStore } from "mcp-use/server";
  const server = new MCPServer({
    name: "prod-server",
    version: "1.0.0",
    sessionStore: new RedisSessionStore({ client: redis }),
  });

  // Production distributed (cross-server notifications)
  import { RedisSessionStore, RedisStreamManager } from "mcp-use/server";
  const server = new MCPServer({
    name: "prod-server",
    version: "1.0.0",
    sessionStore: new RedisSessionStore({ client: redis }),
    streamManager: new RedisStreamManager({
      client: redis,
      pubSubClient: pubSubRedis,
    }),
  });
  ```

  ### Development Experience Improvements
  - **FileSystemSessionStore** (new): Sessions automatically persist to `.mcp-use/sessions.json` in development mode
  - Eliminates the need for clients to re-initialize after server hot reloads
  - Auto-selected in dev mode (`NODE_ENV !== 'production'`), can be overridden via `sessionStore` config
  - Supports session cleanup on load (removes expired sessions older than 24 hours)

  ### Testing & Documentation
  - Added comprehensive session management architecture documentation
  - Added Redis integration guide and verification
  - Added scale testing infrastructure (load testing, chaos testing, longevity tests)
  - Added unit tests for session stores and stream managers

  ### Breaking Changes

  None - all changes are backward compatible. Default behavior uses in-memory implementations, maintaining existing functionality.

### Patch Changes

- @mcp-use/cli@2.6.0-canary.9
- @mcp-use/inspector@0.13.0-canary.9

## 1.11.0-canary.8

### Minor Changes

- 3945a10: **Breaking Changes:**
  - LangChain adapter no longer exported from main entry point. Import from `mcp-use/adapters` instead:

    ```ts
    // Before
    import { LangChainAdapter } from "mcp-use";

    // After
    import { LangChainAdapter } from "mcp-use/adapters";
    ```

  - Moved `@langchain/core` and `langchain` from dependencies to optional peer dependencies

  **Features:**
  - Added favicon support for widget pages. Configure via `favicon` option in `ServerConfig`:
    ```ts
    const server = createMCPServer({
      name: "my-server",
      version: "1.0.0",
      favicon: "favicon.ico", // Path relative to public/ directory
    });
    ```
  - Favicon automatically served at `/favicon.ico` for entire server domain
  - CLI build process now includes favicon in widget HTML pages

  **Improvements:**
  - Automatic cleanup of stale widget directories in `.mcp-use` folder
  - Dev mode now watches for widget file/directory deletions and cleans up build artifacts
  - Added long-term caching (1 year) for favicon assets

### Patch Changes

- 3945a10: fix: widgets
- Updated dependencies [3945a10]
- Updated dependencies [3945a10]
  - @mcp-use/cli@2.6.0-canary.8
  - @mcp-use/inspector@0.13.0-canary.8

## 1.11.0-canary.7

### Patch Changes

- 9acf03b: fix: drop react-router-dom in favor of react-router
- Updated dependencies [9acf03b]
  - @mcp-use/inspector@0.13.0-canary.7
  - @mcp-use/cli@2.6.0-canary.7

## 1.11.0-canary.6

### Patch Changes

- fdbd09e: fix: widgets do not pick up mcp-use styles
- Updated dependencies [fdbd09e]
  - @mcp-use/cli@2.6.0-canary.6
  - @mcp-use/inspector@0.13.0-canary.6

## 1.11.0-canary.5

### Minor Changes

- 0b2292d: feat(session): update callTool method to default args to an empty object and add requireSession method for session retrieval

### Patch Changes

- Updated dependencies [861546b]
  - @mcp-use/inspector@0.13.0-canary.5
  - @mcp-use/cli@2.6.0-canary.5

## 1.11.0-canary.4

### Patch Changes

- f469d26: feat: updated agent docs and signature
  - @mcp-use/cli@2.6.0-canary.4
  - @mcp-use/inspector@0.13.0-canary.4

## 1.11.0-canary.3

### Minor Changes

- e302f8d: feat: removed websocket transport support

### Patch Changes

- e302f8d: chore: added support for node >= 18 and commonjs
- Updated dependencies [e302f8d]
- Updated dependencies [e302f8d]
  - @mcp-use/cli@2.6.0-canary.3
  - @mcp-use/inspector@0.13.0-canary.3

## 1.10.6

### Patch Changes

- 918287c: fix: stateless mode for deno
  - @mcp-use/cli@2.5.6
  - @mcp-use/inspector@0.12.6

## 1.10.5

### Patch Changes

- dcf938f: fix: add cors to getHandler
  - @mcp-use/cli@2.5.5
  - @mcp-use/inspector@0.12.5

## 1.10.4

### Patch Changes

- fix: deno 5
- Updated dependencies
  - @mcp-use/cli@2.5.4
  - @mcp-use/inspector@0.12.4

## 1.10.3

### Patch Changes

- fix: deno 3
- Updated dependencies
  - @mcp-use/inspector@0.12.3
  - @mcp-use/cli@2.5.3

## 1.10.2

### Patch Changes

- fix: update zod error
- Updated dependencies
  - @mcp-use/inspector@0.12.2
  - @mcp-use/cli@2.5.2

## 1.10.1

### Patch Changes

- b3d69ed: fix: zod import in official sdk
- Updated dependencies [b3d69ed]
  - @mcp-use/inspector@0.12.1
  - @mcp-use/cli@2.5.1

## 1.10.1-canary.2

### Patch Changes

- 1b6562a: fix: clear transport when session idle
  - @mcp-use/cli@2.5.1-canary.2
  - @mcp-use/inspector@0.12.1-canary.2

## 1.10.1-canary.1

### Patch Changes

- 2bb2278: fix: allow agent to access resources and prompts
  - @mcp-use/cli@2.5.1-canary.1
  - @mcp-use/inspector@0.12.1-canary.1

## 1.10.1-canary.0

### Patch Changes

- 122a36c: Added repository metadata in package.json
- Updated dependencies [122a36c]
  - @mcp-use/inspector@0.12.1-canary.0
  - @mcp-use/cli@2.5.1-canary.0

## 1.10.0

### Minor Changes

- 6ec11cd: ## Breaking Changes
  - **Server API**: Renamed `createMCPServer()` factory function to `MCPServer` class constructor. The factory function is still available for backward compatibility but new code should use `new MCPServer({ name, ... })`.
  - **Session API**: Replaced `session.connector.tools`, `session.connector.callTool()`, etc. with direct methods: `session.tools`, `session.callTool()`, `session.listResources()`, `session.readResource()`, etc.
  - **OAuth Environment Variables**: Standardized OAuth env vars to `MCP_USE_OAUTH_*` prefix (e.g., `AUTH0_DOMAIN` → `MCP_USE_OAUTH_AUTH0_DOMAIN`).

  ## New Features
  - **Client Capabilities API**: Added `ctx.client.can()` and `ctx.client.capabilities()` to check client capabilities in tool callbacks.
  - **Session Notifications**: Added `ctx.sendNotification()` and `ctx.sendNotificationToSession()` for sending notifications from tool callbacks.
  - **Session Info**: Added `ctx.session.sessionId` to access current session ID in tool callbacks.
  - **Resource Template Flat Structure**: Resource templates now support flat structure with `uriTemplate` directly on definition (in addition to nested structure).
  - **Resource Template Callback Signatures**: Resource template callbacks now support multiple signatures: `()`, `(uri)`, `(uri, params)`, `(uri, params, ctx)`.
  - **Type Exports**: Added exports for `CallToolResult`, `Tool`, `ToolAnnotations`, `PromptResult`, `GetPromptResult` types.

  ## Improvements
  - **Type Inference**: Enhanced type inference for resource template callbacks with better overload support.
  - **Client Capabilities Tracking**: Server now captures and stores client capabilities during initialization.
  - **Session Methods**: Added convenience methods to `MCPSession` for all MCP operations (listResources, readResource, subscribeToResource, listPrompts, getPrompt, etc.).
  - **Documentation**: Major documentation refactoring and restructuring for better organization.

- 6ec11cd: feat: added support for elicitation in inspector
- 6ec11cd: ## Elicitation Support

  Added comprehensive elicitation support following MCP specification, enabling servers to request user input through clients.

  ### New Features
  - **Simplified API**: `ctx.elicit(message, zodSchema)` and `ctx.elicit(message, url)` with automatic mode detection
  - **Form Mode**: Collect structured data with Zod schema validation and full TypeScript type inference
  - **URL Mode**: Direct users to external URLs for sensitive operations (OAuth, credentials)
  - **Server-Side Validation**: Automatic Zod validation of returned data with clear error messages
  - **Client Support**: Added `elicitationCallback` to MCPClient and `onElicitation` to React `useMcp` hook
  - **Type Safety**: Return types automatically inferred from Zod schemas
  - **Configurable Timeout**: Optional timeout parameter (default: no timeout, waits indefinitely like sampling)

  ### Improvements
  - Reuses official SDK's `toJsonSchemaCompat` for Zod → JSON Schema conversion
  - Automatic `elicitationId` generation for URL mode requests
  - 5-minute default timeout for user interactions
  - Defense-in-depth validation (client optional, server required)
  - Backwards compatible with verbose API

  ### Documentation
  - Added `/typescript/server/elicitation` - Server-side usage guide
  - Updated `/typescript/client/elicitation` - Client-side implementation guide
  - Added to docs navigation
  - Comprehensive examples with validation scenarios

  ### Testing
  - **Unit Tests**: 14 tests covering Zod conversion and validation (`tests/unit/server/elicitation.test.ts`)
  - **Integration Tests**: 14 tests covering full client-server flow (`tests/integration/elicitation.test.ts`)
  - **Manual Tests**: Basic functionality and comprehensive validation test suites
  - **Total**: 28 automated tests + manual test suites
  - **Status**: All tests passing ✅

  ### Examples
  - Created `examples/server/elicitation-test/` with 4 working tools
  - Included basic functionality test client
  - Included comprehensive validation test client (7 scenarios)
  - Added timeout configuration examples
  - All examples working

### Patch Changes

- 6ec11cd: fix: refactor to use https://github.com/modelcontextprotocol/typescript-sdk/pull/1209
- 6ec11cd: fix: codeql warns
- 6ec11cd: chore: switch official sdk from npm to fork with edge runtime support
- 6ec11cd: fix: getServerBase url was not called anymore, fixed
- 6ec11cd: chore: trigger canary
- 6ec11cd: fix: fix transport bug
- 6ec11cd: chore: replace official sdk with fork in imports
- 6ec11cd: add browser tel
- 6ec11cd: chore: fix types
- 6ec11cd: feat: improve tel
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
- Updated dependencies [6ec11cd]
  - @mcp-use/inspector@0.12.0
  - @mcp-use/cli@2.5.0

## 1.10.0-canary.11

### Patch Changes

- f0fc5a2: add browser tel
  - @mcp-use/cli@2.5.0-canary.11
  - @mcp-use/inspector@0.12.0-canary.11

## 1.10.0-canary.10

### Patch Changes

- Updated dependencies [0633fbd]
  - @mcp-use/inspector@0.12.0-canary.10
  - @mcp-use/cli@2.5.0-canary.10

## 1.10.0-canary.9

### Patch Changes

- Updated dependencies [79ce293]
  - @mcp-use/inspector@0.12.0-canary.9
  - @mcp-use/cli@2.5.0-canary.9

## 1.10.0-canary.8

### Patch Changes

- 54ccbd8: fix: codeql warns
  - @mcp-use/cli@2.5.0-canary.8
  - @mcp-use/inspector@0.12.0-canary.8

## 1.10.0-canary.7

### Patch Changes

- 48b0133: feat: improve tel
  - @mcp-use/cli@2.5.0-canary.7
  - @mcp-use/inspector@0.12.0-canary.7

## 1.10.0-canary.6

### Patch Changes

- c4fe367: chore: replace official sdk with fork in imports
- Updated dependencies [c4fe367]
  - @mcp-use/inspector@0.12.0-canary.6
  - @mcp-use/cli@2.5.0-canary.6

## 1.10.0-canary.5

### Patch Changes

- 4d61e84: chore: switch official sdk from npm to fork with edge runtime support
- Updated dependencies [4d61e84]
  - @mcp-use/inspector@0.12.0-canary.5
  - @mcp-use/cli@2.5.0-canary.5

## 1.10.0-canary.4

### Patch Changes

- 4f8c871: chore: trigger canary
  - @mcp-use/cli@2.5.0-canary.4
  - @mcp-use/inspector@0.12.0-canary.4

## 1.10.0-canary.3

### Patch Changes

- 1379b00: chore: fix types
- Updated dependencies [1379b00]
  - @mcp-use/inspector@0.12.0-canary.3
  - @mcp-use/cli@2.5.0-canary.3

## 1.10.0-canary.2

### Minor Changes

- 96e4097: ## Breaking Changes
  - **Server API**: Renamed `createMCPServer()` factory function to `MCPServer` class constructor. The factory function is still available for backward compatibility but new code should use `new MCPServer({ name, ... })`.
  - **Session API**: Replaced `session.connector.tools`, `session.connector.callTool()`, etc. with direct methods: `session.tools`, `session.callTool()`, `session.listResources()`, `session.readResource()`, etc.
  - **OAuth Environment Variables**: Standardized OAuth env vars to `MCP_USE_OAUTH_*` prefix (e.g., `AUTH0_DOMAIN` → `MCP_USE_OAUTH_AUTH0_DOMAIN`).

  ## New Features
  - **Client Capabilities API**: Added `ctx.client.can()` and `ctx.client.capabilities()` to check client capabilities in tool callbacks.
  - **Session Notifications**: Added `ctx.sendNotification()` and `ctx.sendNotificationToSession()` for sending notifications from tool callbacks.
  - **Session Info**: Added `ctx.session.sessionId` to access current session ID in tool callbacks.
  - **Resource Template Flat Structure**: Resource templates now support flat structure with `uriTemplate` directly on definition (in addition to nested structure).
  - **Resource Template Callback Signatures**: Resource template callbacks now support multiple signatures: `()`, `(uri)`, `(uri, params)`, `(uri, params, ctx)`.
  - **Type Exports**: Added exports for `CallToolResult`, `Tool`, `ToolAnnotations`, `PromptResult`, `GetPromptResult` types.

  ## Improvements
  - **Type Inference**: Enhanced type inference for resource template callbacks with better overload support.
  - **Client Capabilities Tracking**: Server now captures and stores client capabilities during initialization.
  - **Session Methods**: Added convenience methods to `MCPSession` for all MCP operations (listResources, readResource, subscribeToResource, listPrompts, getPrompt, etc.).
  - **Documentation**: Major documentation refactoring and restructuring for better organization.

### Patch Changes

- Updated dependencies [96e4097]
  - @mcp-use/inspector@0.12.0-canary.2
  - @mcp-use/cli@2.5.0-canary.2

## 1.9.1-canary.1

### Patch Changes

- 94f4852: fix: getServerBase url was not called anymore, fixed
  - @mcp-use/cli@2.4.9-canary.1
  - @mcp-use/inspector@0.11.1-canary.1

## 1.9.1-canary.0

### Patch Changes

- 4d1aa19: fix: refactor to use https://github.com/modelcontextprotocol/typescript-sdk/pull/1209
- Updated dependencies [4d1aa19]
  - @mcp-use/inspector@0.11.1-canary.0
  - @mcp-use/cli@2.4.9-canary.0

## 1.9.0

### Minor Changes

- 4fc04a9: feat: added support for elicitation in inspector
- 4fc04a9: ## Elicitation Support

  Added comprehensive elicitation support following MCP specification, enabling servers to request user input through clients.

  ### New Features
  - **Simplified API**: `ctx.elicit(message, zodSchema)` and `ctx.elicit(message, url)` with automatic mode detection
  - **Form Mode**: Collect structured data with Zod schema validation and full TypeScript type inference
  - **URL Mode**: Direct users to external URLs for sensitive operations (OAuth, credentials)
  - **Server-Side Validation**: Automatic Zod validation of returned data with clear error messages
  - **Client Support**: Added `elicitationCallback` to MCPClient and `onElicitation` to React `useMcp` hook
  - **Type Safety**: Return types automatically inferred from Zod schemas
  - **Configurable Timeout**: Optional timeout parameter (default: no timeout, waits indefinitely like sampling)

  ### Improvements
  - Reuses official SDK's `toJsonSchemaCompat` for Zod → JSON Schema conversion
  - Automatic `elicitationId` generation for URL mode requests
  - 5-minute default timeout for user interactions
  - Defense-in-depth validation (client optional, server required)
  - Backwards compatible with verbose API

  ### Documentation
  - Added `/typescript/server/elicitation` - Server-side usage guide
  - Updated `/typescript/client/elicitation` - Client-side implementation guide
  - Added to docs navigation
  - Comprehensive examples with validation scenarios

  ### Testing
  - **Unit Tests**: 14 tests covering Zod conversion and validation (`tests/unit/server/elicitation.test.ts`)
  - **Integration Tests**: 14 tests covering full client-server flow (`tests/integration/elicitation.test.ts`)
  - **Manual Tests**: Basic functionality and comprehensive validation test suites
  - **Total**: 28 automated tests + manual test suites
  - **Status**: All tests passing ✅

  ### Examples
  - Created `examples/server/elicitation-test/` with 4 working tools
  - Included basic functionality test client
  - Included comprehensive validation test client (7 scenarios)
  - Added timeout configuration examples
  - All examples working

### Patch Changes

- 4fc04a9: fix: fix transport bug
- Updated dependencies [4fc04a9]
- Updated dependencies [4fc04a9]
- Updated dependencies [4fc04a9]
  - @mcp-use/inspector@0.11.0
  - @mcp-use/cli@2.4.8

## 1.9.0-canary.3

### Patch Changes

- b0d1ffe: fix: fix transport bug
- Updated dependencies [b0d1ffe]
  - @mcp-use/inspector@0.11.0-canary.3
  - @mcp-use/cli@2.4.8-canary.3

## 1.9.0-canary.2

### Minor Changes

- b56c907: feat: added support for elicitation in inspector

### Patch Changes

- Updated dependencies [b56c907]
  - @mcp-use/inspector@0.11.0-canary.2
  - @mcp-use/cli@2.4.8-canary.2

## 1.9.0-canary.1

### Minor Changes

- b4e960a: ## Elicitation Support

  Added comprehensive elicitation support following MCP specification, enabling servers to request user input through clients.

  ### New Features
  - **Simplified API**: `ctx.elicit(message, zodSchema)` and `ctx.elicit(message, url)` with automatic mode detection
  - **Form Mode**: Collect structured data with Zod schema validation and full TypeScript type inference
  - **URL Mode**: Direct users to external URLs for sensitive operations (OAuth, credentials)
  - **Server-Side Validation**: Automatic Zod validation of returned data with clear error messages
  - **Client Support**: Added `elicitationCallback` to MCPClient and `onElicitation` to React `useMcp` hook
  - **Type Safety**: Return types automatically inferred from Zod schemas
  - **Configurable Timeout**: Optional timeout parameter (default: no timeout, waits indefinitely like sampling)

  ### Improvements
  - Reuses official SDK's `toJsonSchemaCompat` for Zod → JSON Schema conversion
  - Automatic `elicitationId` generation for URL mode requests
  - 5-minute default timeout for user interactions
  - Defense-in-depth validation (client optional, server required)
  - Backwards compatible with verbose API

  ### Documentation
  - Added `/typescript/server/elicitation` - Server-side usage guide
  - Updated `/typescript/client/elicitation` - Client-side implementation guide
  - Added to docs navigation
  - Comprehensive examples with validation scenarios

  ### Testing
  - **Unit Tests**: 14 tests covering Zod conversion and validation (`tests/unit/server/elicitation.test.ts`)
  - **Integration Tests**: 14 tests covering full client-server flow (`tests/integration/elicitation.test.ts`)
  - **Manual Tests**: Basic functionality and comprehensive validation test suites
  - **Total**: 28 automated tests + manual test suites
  - **Status**: All tests passing ✅

  ### Examples
  - Created `examples/server/elicitation/` with 4 working tools
  - Included basic functionality test client
  - Included comprehensive validation test client (7 scenarios)
  - Added timeout configuration examples
  - All examples working

### Patch Changes

- @mcp-use/cli@2.4.8-canary.1
- @mcp-use/inspector@0.10.2-canary.1

## 1.8.2-canary.0

### Patch Changes

- Updated dependencies [d726bfa]
  - @mcp-use/inspector@0.10.2-canary.0
  - @mcp-use/cli@2.4.8-canary.0

## 1.8.1

### Patch Changes

- Updated dependencies [4bf21f3]
  - @mcp-use/inspector@0.10.1
  - @mcp-use/cli@2.4.7

## 1.8.1-canary.0

### Patch Changes

- Updated dependencies [33a1a69]
  - @mcp-use/inspector@0.10.1-canary.0
  - @mcp-use/cli@2.4.7-canary.0

## 1.8.0

### Minor Changes

- 00b19c5: Add sampling support in inspector and fixed long running sampling requests (were timing out after 60s)

### Patch Changes

- Updated dependencies [00b19c5]
  - @mcp-use/inspector@0.10.0
  - @mcp-use/cli@2.4.6

## 1.8.0-canary.0

### Minor Changes

- de6ca09: Add sampling support in inspector and fixed long running sampling requests (were timing out after 60s)

### Patch Changes

- Updated dependencies [de6ca09]
  - @mcp-use/inspector@0.10.0-canary.0
  - @mcp-use/cli@2.4.6-canary.0

## 1.7.2

### Patch Changes

- a4341d5: chore: update deps
- Updated dependencies [a4341d5]
  - @mcp-use/inspector@0.9.2
  - @mcp-use/cli@2.4.5

## 1.7.2-canary.0

### Patch Changes

- c1d7378: chore: update deps
- Updated dependencies [c1d7378]
  - @mcp-use/inspector@0.9.2-canary.0
  - @mcp-use/cli@2.4.5-canary.0

## 1.7.1

### Patch Changes

- f6f2b61: ### Bug Fixes
  - **Fixed bin entry issue (#536)**: Resolved pnpm installation warning where bin entry referenced non-existent `./node_modules/@mcp-use/cli/dist/index.js` path. Created proper bin forwarding script at `./dist/src/bin.js` that allows users to run `mcp-use` CLI commands (dev, build, etc.) after installing the package.

  ### Improvements
  - Standardized import statement formatting across multiple files for improved code consistency and readability

- f6f2b61: fix lint & format
- Updated dependencies [f6f2b61]
- Updated dependencies [f6f2b61]
  - @mcp-use/inspector@0.9.1
  - @mcp-use/cli@2.4.4

## 1.7.1-canary.1

### Patch Changes

- c9cb2db: fix lint & format
- Updated dependencies [c9cb2db]
  - @mcp-use/inspector@0.9.1-canary.1
  - @mcp-use/cli@2.4.4-canary.1

## 1.7.1-canary.0

### Patch Changes

- bab4ad0: ### Bug Fixes
  - **Fixed bin entry issue (#536)**: Resolved pnpm installation warning where bin entry referenced non-existent `./node_modules/@mcp-use/cli/dist/index.js` path. Created proper bin forwarding script at `./dist/src/bin.js` that allows users to run `mcp-use` CLI commands (dev, build, etc.) after installing the package.

  ### Improvements
  - Standardized import statement formatting across multiple files for improved code consistency and readability

- Updated dependencies [bab4ad0]
  - @mcp-use/inspector@0.9.1-canary.0
  - @mcp-use/cli@2.4.4-canary.0

## 1.7.0

### Minor Changes

- 2730902: ## New Features
  - **OAuth Authentication System**: Complete OAuth 2.0 support with built-in providers (Auth0, WorkOS, Supabase, Keycloak) and custom provider configuration
  - **OAuth Middleware & Routes**: Server-side OAuth flow handling with automatic token management and session persistence
  - **OAuth Callback Component**: Inspector now includes OAuth callback handling for authentication flows
  - **Context Storage**: New async local storage system for request-scoped context in servers
  - **Response Helpers**: Utility functions for standardized HTTP responses and error handling
  - **Runtime Detection**: Auto-detection utilities for Node.js, Bun, and Deno environments
  - **Server Authentication Examples**: Added OAuth examples for Auth0, WorkOS, and Supabase

  ## Improvements
  - **Enhanced useMcp Hook**: Improved connection management with better state handling and OAuth support
  - **Enhanced Inspector Dashboard**: Added OAuth configuration UI and connection status indicators
  - **Enhanced Browser Provider**: Better authentication flow handling with OAuth integration
  - **Improved Auto-Connect**: Enhanced connection recovery and auto-reconnect logic
  - **Enhanced Authentication Docs**: Comprehensive server-side authentication guide with OAuth setup instructions
  - **Renamed Notification Example**: Cleaner naming convention (notification-example → notifications)
  - **Enhanced Tool Types**: Improved type definitions for server-side tool handlers with context support
  - **Enhanced HTTP Connectors**: Added OAuth token handling in HTTP transport layer

  ## Documentation
  - Added server authentication guide
  - Enhanced client authentication documentation with OAuth flows
  - Added notification examples and usage patterns
  - Updated useMcp hook documentation with OAuth configuration

### Patch Changes

- 2730902: Fix react-router-dom
- 2730902: Fix: switched to https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/sdk@1194 instead of @modelcontextprotocol/sdk to fix zod errors on deno runtime
- 2730902: Optimized dependencies
- 2730902: Moved ai sdk dep to optional since it's only used in test and example
- 2730902: chore: update ai sdk from v4 to v5 and fixed integration tests
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
- Updated dependencies [2730902]
  - @mcp-use/inspector@0.9.0
  - @mcp-use/cli@2.4.3

## 1.7.0-canary.8

### Patch Changes

- Updated dependencies [0daae72]
  - @mcp-use/cli@2.4.3-canary.8
  - @mcp-use/inspector@0.9.0-canary.8

## 1.7.0-canary.7

### Patch Changes

- caf8c7c: Fix: switched to https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/sdk@1194 instead of @modelcontextprotocol/sdk to fix zod errors on deno runtime
- caf8c7c: Moved ai sdk dep to optional since it's only used in test and example
- caf8c7c: chore: update ai sdk from v4 to v5 and fixed integration tests
- Updated dependencies [caf8c7c]
  - @mcp-use/inspector@0.9.0-canary.7
  - @mcp-use/cli@2.4.3-canary.7

## 1.7.0-canary.6

### Patch Changes

- Updated dependencies [38da68d]
- Updated dependencies [38da68d]
  - @mcp-use/inspector@0.9.0-canary.6
  - @mcp-use/cli@2.4.3-canary.6

## 1.7.0-canary.5

### Patch Changes

- Updated dependencies [4b917e0]
  - @mcp-use/inspector@0.9.0-canary.5
  - @mcp-use/cli@2.4.3-canary.5

## 1.7.0-canary.4

### Patch Changes

- Updated dependencies [f44e60f]
  - @mcp-use/inspector@0.9.0-canary.4
  - @mcp-use/cli@2.4.3-canary.4

## 1.7.0-canary.3

### Patch Changes

- 0c8cb1a: Fix react-router-dom
  - @mcp-use/cli@2.4.3-canary.3
  - @mcp-use/inspector@0.9.0-canary.3

## 1.7.0-canary.2

### Patch Changes

- 1ca9801: Optimized dependencies
- Updated dependencies [1ca9801]
  - @mcp-use/inspector@0.9.0-canary.2
  - @mcp-use/cli@2.4.3-canary.2

## 1.7.0-canary.1

### Minor Changes

- 6bb0f3d: ## New Features
  - **OAuth Authentication System**: Complete OAuth 2.0 support with built-in providers (Auth0, WorkOS, Supabase, Keycloak) and custom provider configuration
  - **OAuth Middleware & Routes**: Server-side OAuth flow handling with automatic token management and session persistence
  - **OAuth Callback Component**: Inspector now includes OAuth callback handling for authentication flows
  - **Context Storage**: New async local storage system for request-scoped context in servers
  - **Response Helpers**: Utility functions for standardized HTTP responses and error handling
  - **Runtime Detection**: Auto-detection utilities for Node.js, Bun, and Deno environments
  - **Server Authentication Examples**: Added OAuth examples for Auth0, WorkOS, and Supabase

  ## Improvements
  - **Enhanced useMcp Hook**: Improved connection management with better state handling and OAuth support
  - **Enhanced Inspector Dashboard**: Added OAuth configuration UI and connection status indicators
  - **Enhanced Browser Provider**: Better authentication flow handling with OAuth integration
  - **Improved Auto-Connect**: Enhanced connection recovery and auto-reconnect logic
  - **Enhanced Authentication Docs**: Comprehensive server-side authentication guide with OAuth setup instructions
  - **Renamed Notification Example**: Cleaner naming convention (notification-example → notifications)
  - **Enhanced Tool Types**: Improved type definitions for server-side tool handlers with context support
  - **Enhanced HTTP Connectors**: Added OAuth token handling in HTTP transport layer

  ## Documentation
  - Added server authentication guide
  - Enhanced client authentication documentation with OAuth flows
  - Added notification examples and usage patterns
  - Updated useMcp hook documentation with OAuth configuration

### Patch Changes

- Updated dependencies [6bb0f3d]
  - @mcp-use/inspector@0.9.0-canary.1
  - @mcp-use/cli@2.4.3-canary.1

## 1.6.3-canary.0

### Patch Changes

- Updated dependencies [041da75]
- Updated dependencies [041da75]
  - @mcp-use/inspector@0.8.3-canary.0
  - @mcp-use/cli@2.4.3-canary.0

## 1.6.2

### Patch Changes

- 7e7c9a5: Downgrade mcp sdk to 22 due to https://github.com/modelcontextprotocol/typescript-sdk/issues/1182
- Updated dependencies [7e7c9a5]
  - @mcp-use/inspector@0.8.2
  - @mcp-use/cli@2.4.2

## 1.6.2-canary.0

### Patch Changes

- 0530e6a: Downgrade mcp sdk to 22 due to https://github.com/modelcontextprotocol/typescript-sdk/issues/1182
- Updated dependencies [0530e6a]
  - @mcp-use/inspector@0.8.2-canary.0
  - @mcp-use/cli@2.4.2-canary.0

## 1.6.1

### Patch Changes

- 1a509bf: chore(deps): update @modelcontextprotocol/sdk to 1.23.0

  Updated @modelcontextprotocol/sdk dependency from 1.20.0 to 1.23.0.

- c60c055: Fix reosurces lint for new mcp sdk types
- 4950e56: Fix types
- 1a509bf: remove console
- c8e30ec: Fix new sdk types
- Updated dependencies [1a509bf]
- Updated dependencies [c8e30ec]
- Updated dependencies [1a509bf]
- Updated dependencies [c8e30ec]
  - @mcp-use/inspector@0.8.1
  - @mcp-use/cli@2.4.1

## 1.6.1-canary.1

### Patch Changes

- Updated dependencies [2389cfb]
  - @mcp-use/cli@2.4.1-canary.1
  - @mcp-use/inspector@0.8.1-canary.1

## 1.6.1-canary.0

### Patch Changes

- 9974d55: chore(deps): update @modelcontextprotocol/sdk to 1.23.0

  Updated @modelcontextprotocol/sdk dependency from 1.20.0 to 1.23.0.

- e9e4075: Fix reosurces lint for new mcp sdk types
- 32c6790: Fix types
- 299ce65: remove console
- 0e77821: Fix new sdk types
- Updated dependencies [9974d55]
- Updated dependencies [299ce65]
- Updated dependencies [0e77821]
  - @mcp-use/inspector@0.8.1-canary.0
  - @mcp-use/cli@2.4.1-canary.0

## 1.6.0

### Minor Changes

- 7e4dd9b: ## Features
  - **Notifications**: Added bidirectional notification support between clients and servers. Clients can register notification handlers and servers can send targeted or broadcast notifications. Includes automatic handling of `list_changed` notifications per MCP spec.
  - **Sampling**: Implemented LLM sampling capabilities allowing MCP tools to request completions from connected clients. Clients can provide a `samplingCallback` to handle sampling requests, enabling tools to leverage client-side LLMs.
  - **Widget Build ID**: Added build ID support for widget UI resources to enable cache busting. Build IDs are automatically incorporated into widget URIs.
  - **Inspector Enhancements**: Added notifications tab with real-time notification display and server capabilities modal showing supported MCP capabilities.

  ## Improvements
  - **Session Management**: Refactored HTTP transport to reuse sessions across requests instead of creating new transports per request. Added session tracking with configurable idle timeout (default 5 minutes) and automatic cleanup. Sessions now maintain state across multiple requests, enabling targeted notifications to specific clients.
  - Enhanced HTTP connector with improved notification handling and sampling support
  - Added roots support in connectors and session API (`setRoots()`, `getRoots()`) for better file system integration
  - Added session event handling API (`session.on("notification")`) for registering notification handlers
  - Added server methods for session management (`getActiveSessions()`, `sendNotificationToSession()`) enabling targeted client communication
  - Added comprehensive examples for notifications and sampling features
  - Enhanced documentation for notifications and sampling functionality

- 7e4dd9b: ## New Features

  ### OpenAI Apps SDK Integration (`mcp-use` package)
  - **McpUseProvider** (`packages/mcp-use/src/react/McpUseProvider.tsx`) - New unified provider component that combines all common React setup for mcp-use widgets:
    - Automatically includes StrictMode, ThemeProvider, BrowserRouter with automatic basename calculation
    - Optional WidgetControls integration for debugging and view controls
    - ErrorBoundary wrapper for error handling
    - Auto-sizing support with ResizeObserver that calls `window.openai.notifyIntrinsicHeight()` for dynamic height updates
    - Automatic basename calculation for proper routing in both dev proxy and production environments
  - **WidgetControls** (`packages/mcp-use/src/react/WidgetControls.tsx`) - New component (752 lines) providing:
    - Debug button overlay for displaying widget debug information (props, state, theme, display mode, etc.)
    - View controls for fullscreen and picture-in-picture (PIP) modes
    - Shared hover logic for all control buttons
    - Customizable positioning (top-left, top-right, bottom-left, etc.)
    - Interactive debug overlay with tool testing capabilities
  - **useWidget hook** (`packages/mcp-use/src/react/useWidget.ts`) - New type-safe React adapter for OpenAI Apps SDK `window.openai` API:
    - Automatic props extraction from `toolInput`
    - Reactive state management subscribing to all OpenAI global changes
    - Access to theme, display mode, safe areas, locale, user agent
    - Action methods: `callTool`, `sendFollowUpMessage`, `openExternal`, `requestDisplayMode`, `setState`
    - Type-safe with full TypeScript support
  - **ErrorBoundary** (`packages/mcp-use/src/react/ErrorBoundary.tsx`) - New error boundary component for graceful error handling in widgets
  - **Image** (`packages/mcp-use/src/react/Image.tsx`) - New image component that handles both data URLs and public file paths for widgets
  - **ThemeProvider** (`packages/mcp-use/src/react/ThemeProvider.tsx`) - New theme provider component for consistent theme management across widgets

  ### Inspector Widget Support
  - **WidgetInspectorControls** (`packages/inspector/src/client/components/WidgetInspectorControls.tsx`) - New component (364 lines) providing:
    - Inspector-specific widget controls and debugging interface
    - Widget state inspection with real-time updates
    - Debug information display including props, output, metadata, and state
    - Integration with inspector's tool execution flow
  - **Console Proxy Toggle** (`packages/inspector/src/client/components/IframeConsole.tsx` and `packages/inspector/src/client/hooks/useIframeConsole.ts`):
    - New toggle option to proxy iframe console logs to the page console
    - Persistent preference stored in localStorage
    - Improved console UI with tooltips and better error/warning indicators
    - Formatted console output with appropriate log levels

  ### Enhanced Apps SDK Template
  - **Product Search Result Widget** (`packages/create-mcp-use-app/src/templates/apps-sdk/resources/product-search-result/`):
    - Complete ecommerce widget example with carousel, accordion, and product display components
    - Carousel component (`components/Carousel.tsx`) with smooth animations and transitions
    - Accordion components (`components/Accordion.tsx`, `components/AccordionItem.tsx`) for collapsible content
    - Fruits API integration using `@tanstack/react-query` for data fetching
    - 16 fruit product images added to `public/fruits/` directory (apple, apricot, avocado, banana, blueberry, cherries, coconut, grapes, lemon, mango, orange, pear, pineapple, plum, strawberry, watermelon)
    - Enhanced product display with filtering and search capabilities
  - **Updated Template Example** (`packages/create-mcp-use-app/src/templates/apps-sdk/index.ts`):
    - New `get-brand-info` tool replacing the old `get-my-city` example
    - Fruits API endpoint (`/api/fruits`) for template data
    - Better example demonstrating brand information retrieval

  ### CLI Widget Building Enhancements
  - **Folder-based Widget Support** (`packages/cli/src/index.ts` and `packages/mcp-use/src/server/mcp-server.ts`):
    - Support for widgets organized in folders with `widget.tsx` entry point
    - Automatic detection of both single-file widgets and folder-based widgets
    - Proper widget name resolution from folder names
  - **Public Folder Support** (`packages/cli/src/index.ts`):
    - Automatic copying of `public/` folder to `dist/public/` during build
    - Support for static assets in widget templates
  - **Enhanced SSR Configuration** (`packages/cli/src/index.ts`):
    - Improved Vite SSR configuration with proper `noExternal` settings for `@openai/apps-sdk-ui` and `react-router`
    - Better environment variable definitions for SSR context
    - CSS handling plugin for SSR mode
  - **Dev Server Public Assets** (`packages/mcp-use/src/server/mcp-server.ts`):
    - New `/mcp-use/public/*` route for serving static files in development mode
    - Proper content-type detection for various file types (images, fonts, etc.)

  ## Improvements

  ### Inspector Component Enhancements
  - **OpenAIComponentRenderer** (`packages/inspector/src/client/components/OpenAIComponentRenderer.tsx`):
    - Added `memo` wrapper for performance optimization
    - Enhanced `notifyIntrinsicHeight` message handling with proper height calculation and capping for different display modes
    - Improved theme support to prevent theme flashing on widget load by passing theme in widget data
    - Widget state inspection support via `mcp-inspector:getWidgetState` message handling
    - Better dev mode detection and widget URL generation
    - Enhanced CSP handling with dev server URL support
  - **ToolResultDisplay** (`packages/inspector/src/client/components/tools/ToolResultDisplay.tsx`) - Major refactor (894 lines changed):
    - New formatted content display supporting multiple content types:
      - Text content with JSON detection and formatting
      - Image content with base64 data URL rendering
      - Audio content with player controls
      - Resource links with full metadata display
      - Embedded resources with content preview
    - Result history navigation with dropdown selector
    - Relative time display (e.g., "2m ago", "1h ago")
    - JSON validation and automatic formatting
    - Maximize/restore functionality for result panel
    - Better visual organization with content type labels
  - **ToolsTab** (`packages/inspector/src/client/components/ToolsTab.tsx`):
    - Resizable panels with collapse support using refs
    - Maximize functionality for result panel that collapses left and top panels
    - Better mobile view handling and responsive design
    - Improved panel state management

  ### Server-Side Improvements
  - **shared-routes.ts** (`packages/inspector/src/server/shared-routes.ts`):
    - Enhanced dev widget proxy with better asset loading
    - Direct asset loading from dev server for simplicity (avoids HTML rewriting issues)
    - CSP violation warnings injected into HTML for development debugging
    - Improved Vite HMR WebSocket handling with direct connection to dev server
    - Base tag injection for proper routing and dynamic module loading
    - Better CSP header generation supporting both production and development modes
  - **shared-utils.ts** and **shared-utils-browser.ts** (`packages/inspector/src/server/`):
    - Enhanced widget security headers with dev server URL support
    - Improved CSP configuration separating production and development resource domains
    - Theme support in widget data for preventing theme flash
    - Widget state inspection message handling
    - `notifyIntrinsicHeight` API support in browser version
    - MCP widget utilities injection (`__mcpPublicUrl`, `__getFile`) for Image component support
    - Better history management to prevent redirects in inspector dev-widget proxy

  ### Template Improvements
  - **apps-sdk template** (`packages/create-mcp-use-app/src/templates/apps-sdk/`):
    - Updated README with comprehensive documentation:
      - Official UI components integration guide
      - Ecommerce widgets documentation
      - Better examples and usage instructions
    - Enhanced example tool (`get-brand-info`) with complete brand information structure
    - Fruits API endpoint for template data
    - Better styling and theming support
    - Removed outdated `display-weather.tsx` widget
  - **Template Styles** (`packages/create-mcp-use-app/src/templates/apps-sdk/styles.css`):
    - Enhanced CSS with better theming support
    - Improved component styling

  ### CLI Improvements
  - **CLI index.ts** (`packages/cli/src/index.ts`):
    - Better server waiting mechanism using `AbortController` for proper cleanup
    - Enhanced fetch request with proper headers and signal handling
    - Support for folder-based widgets with proper entry path resolution
    - Public folder copying during build process
    - Enhanced SSR configuration with proper Vite settings
    - Better error handling throughout

  ### Code Quality
  - Improved logging throughout the codebase with better context and formatting
  - Better code formatting and readability improvements
  - Enhanced type safety with proper TypeScript types
  - Better error handling with try-catch blocks and proper error messages
  - Consistent code organization and structure

  ## Bug Fixes

  ### Widget Rendering
  - Fixed iframe height calculation issues by properly handling `notifyIntrinsicHeight` messages and respecting display mode constraints
  - Fixed theme flashing on widget load by passing theme in widget data and using it in initial API setup
  - Fixed CSP header generation for dev mode by properly handling dev server URLs in CSP configuration
  - Fixed asset loading in dev widget proxy by using direct URLs to dev server instead of proxy rewriting

  ### Inspector Issues
  - Fixed console logging in iframe by improving message handling and adding proxy toggle functionality
  - Fixed widget state inspection by adding proper message handling for `mcp-inspector:getWidgetState` requests
  - Fixed resizable panel collapse behavior by using refs and proper state management
  - Fixed mobile view handling with better responsive design and view state management

  ### Build Process
  - Fixed widget metadata extraction by properly handling folder-based widgets and entry paths
  - Fixed Vite SSR configuration by adding proper `noExternal` settings and environment definitions
  - Fixed public asset copying by adding explicit copy step in build process
  - Fixed widget name resolution for folder-based widgets by using folder name instead of file name

  ### Documentation
  - Fixed Supabase deployment script (`packages/mcp-use/examples/server/supabase/deploy.sh`) with updated project creation syntax
  - Updated deployment command in Supabase documentation to reflect new project creation syntax
  - Added server inspection URL to Supabase deployment documentation (`docs/typescript/server/deployment/supabase.mdx`)

  ### Other Fixes
  - Fixed history management to prevent unwanted redirects when running widgets in inspector dev-widget proxy
  - Fixed macOS resource fork file exclusion in widget discovery (`.DS_Store`, `._*` files)
  - Fixed Vite HMR WebSocket connection by using direct dev server URLs instead of proxy
  - Fixed CSS imports in SSR mode by adding custom plugin to handle CSS files properly

- 7e4dd9b: Enhance search_tools to return metadata (total_tools, namespaces, result_count) along with results to provide better context for model decision-making
- 7e4dd9b: Release canary
- 7e4dd9b: Added support for rpc messages logging in inspector

### Patch Changes

- 7e4dd9b: fix versions
- 7e4dd9b: **Bug Fixes:**
  - Fixed auto-connect proxy fallback behavior - now properly retries with proxy when direct connection fails
  - Fixed connection config updates not applying when connection already exists
  - Fixed connection wrapper not re-rendering when proxy config changes

  **Improvements:**
  - Auto-switch (proxy fallback) now automatically enabled during auto-connect flow
  - Added automatic navigation to home page after connection failures
  - Improved error messages for connection failures
  - Enhanced state cleanup on connection retry and failure scenarios

- 7e4dd9b: Fix connect domains
- 7e4dd9b: Fix conenct domains prod
- 7e4dd9b: - Fix session reinitialization by refactoring transport creation logic
  - Add `autoCreateSessionOnInvalidId` config option (default: true) for seamless reconnection with non-compliant clients
  - Add DEBUG mode logging with detailed request/response information via DEBUG environment variable
  - Improve runtime detection for Deno and Node.js environments
- 7e4dd9b: - **Security**: Added `https://*.openai.com` to Content Security Policy trusted domains for widgets
  - **Type safety**: Exported `WidgetMetadata` type from `mcp-use/react` for better widget development experience
  - **Templates**: Updated widget templates to use `WidgetMetadata` type and fixed CSS import paths (moved styles to resources directory)
  - **Documentation**: Added comprehensive Apps SDK metadata documentation including CSP configuration examples
- 7e4dd9b: ## Bug Fixes
  - Fix session connectivity issues by properly handling initialization requests and cleaning up old sessions
  - Fix DNS rebinding protection behavior - now correctly allows all origins in development mode for easier local testing
  - Fix session management to properly close old sessions when initializing new ones
  - Improve error handling for missing/invalid sessions with proper HTTP status codes per MCP spec

  ## New Features
  - Add `/sse` endpoint in addition to `/mcp` for better compatibility with different client configurations
  - Enhance `allowedOrigins` configuration with environment-aware defaults (allows all origins in development, requires explicit config in production)
  - Add `sessionIdleTimeoutMs` configuration option for customizable session timeout (default: 5 minutes)

  ## Improvements
  - Improve session lifecycle management with better cleanup and last-accessed tracking
  - Enhance security documentation with detailed examples for development vs production configurations
  - Add comprehensive examples in API reference for different server configuration scenarios

- 7e4dd9b: Add log of csp
- 7e4dd9b: Fix export of sampling types
- 7e4dd9b: Add csp_urls
- Updated dependencies [7e4dd9b]
- Updated dependencies [7e4dd9b]
- Updated dependencies [7e4dd9b]
- Updated dependencies [7e4dd9b]
- Updated dependencies [7e4dd9b]
- Updated dependencies [7e4dd9b]
- Updated dependencies [7e4dd9b]
- Updated dependencies [7e4dd9b]
  - @mcp-use/inspector@0.8.0
  - @mcp-use/cli@2.4.0

## 1.5.1-canary.7

### Patch Changes

- 94b9824: **Bug Fixes:**
  - Fixed auto-connect proxy fallback behavior - now properly retries with proxy when direct connection fails
  - Fixed connection config updates not applying when connection already exists
  - Fixed connection wrapper not re-rendering when proxy config changes

  **Improvements:**
  - Auto-switch (proxy fallback) now automatically enabled during auto-connect flow
  - Added automatic navigation to home page after connection failures
  - Improved error messages for connection failures
  - Enhanced state cleanup on connection retry and failure scenarios

- Updated dependencies [94b9824]
  - @mcp-use/inspector@0.7.1-canary.7
  - @mcp-use/cli@2.3.1-canary.7

## 1.5.1-canary.6

### Patch Changes

- a3295a0: Add log of csp
  - @mcp-use/cli@2.3.1-canary.6
  - @mcp-use/inspector@0.7.1-canary.6

## 1.5.1-canary.5

### Patch Changes

- 95fa604: Fix conenct domains prod
  - @mcp-use/cli@2.3.1-canary.5
  - @mcp-use/inspector@0.7.1-canary.5

## 1.5.1-canary.4

### Patch Changes

- a93befb: Fix connect domains
  - @mcp-use/cli@2.3.1-canary.4
  - @mcp-use/inspector@0.7.1-canary.4

## 1.5.1-canary.3

### Patch Changes

- ccc2df3: Add csp_urls
  - @mcp-use/cli@2.3.1-canary.3
  - @mcp-use/inspector@0.7.1-canary.3

## 1.5.1-canary.2

### Patch Changes

- e5e8e1b: Fix export of sampling types
  - @mcp-use/cli@2.3.1-canary.2
  - @mcp-use/inspector@0.7.1-canary.2

## 1.5.1-canary.1

### Patch Changes

- 4ca7772: - Fix session reinitialization by refactoring transport creation logic
  - Add `autoCreateSessionOnInvalidId` config option (default: true) for seamless reconnection with non-compliant clients
  - Add DEBUG mode logging with detailed request/response information via DEBUG environment variable
  - Improve runtime detection for Deno and Node.js environments
  - @mcp-use/cli@2.3.1-canary.1
  - @mcp-use/inspector@0.7.1-canary.1

## 1.5.1-canary.0

### Patch Changes

- 12a88c7: fix versions
- Updated dependencies [12a88c7]
  - @mcp-use/inspector@0.7.1-canary.0
  - @mcp-use/cli@2.3.1-canary.0

## 1.5.0

### Minor Changes

- 266a445: ## New Features

  ### OpenAI Apps SDK Integration (`mcp-use` package)
  - **McpUseProvider** (`packages/mcp-use/src/react/McpUseProvider.tsx`) - New unified provider component that combines all common React setup for mcp-use widgets:
    - Automatically includes StrictMode, ThemeProvider, BrowserRouter with automatic basename calculation
    - Optional WidgetControls integration for debugging and view controls
    - ErrorBoundary wrapper for error handling
    - Auto-sizing support with ResizeObserver that calls `window.openai.notifyIntrinsicHeight()` for dynamic height updates
    - Automatic basename calculation for proper routing in both dev proxy and production environments
  - **WidgetControls** (`packages/mcp-use/src/react/WidgetControls.tsx`) - New component (752 lines) providing:
    - Debug button overlay for displaying widget debug information (props, state, theme, display mode, etc.)
    - View controls for fullscreen and picture-in-picture (PIP) modes
    - Shared hover logic for all control buttons
    - Customizable positioning (top-left, top-right, bottom-left, etc.)
    - Interactive debug overlay with tool testing capabilities
  - **useWidget hook** (`packages/mcp-use/src/react/useWidget.ts`) - New type-safe React adapter for OpenAI Apps SDK `window.openai` API:
    - Automatic props extraction from `toolInput`
    - Reactive state management subscribing to all OpenAI global changes
    - Access to theme, display mode, safe areas, locale, user agent
    - Action methods: `callTool`, `sendFollowUpMessage`, `openExternal`, `requestDisplayMode`, `setState`
    - Type-safe with full TypeScript support
  - **ErrorBoundary** (`packages/mcp-use/src/react/ErrorBoundary.tsx`) - New error boundary component for graceful error handling in widgets
  - **Image** (`packages/mcp-use/src/react/Image.tsx`) - New image component that handles both data URLs and public file paths for widgets
  - **ThemeProvider** (`packages/mcp-use/src/react/ThemeProvider.tsx`) - New theme provider component for consistent theme management across widgets

  ### Inspector Widget Support
  - **WidgetInspectorControls** (`packages/inspector/src/client/components/WidgetInspectorControls.tsx`) - New component (364 lines) providing:
    - Inspector-specific widget controls and debugging interface
    - Widget state inspection with real-time updates
    - Debug information display including props, output, metadata, and state
    - Integration with inspector's tool execution flow
  - **Console Proxy Toggle** (`packages/inspector/src/client/components/IframeConsole.tsx` and `packages/inspector/src/client/hooks/useIframeConsole.ts`):
    - New toggle option to proxy iframe console logs to the page console
    - Persistent preference stored in localStorage
    - Improved console UI with tooltips and better error/warning indicators
    - Formatted console output with appropriate log levels

  ### Enhanced Apps SDK Template
  - **Product Search Result Widget** (`packages/create-mcp-use-app/src/templates/apps-sdk/resources/product-search-result/`):
    - Complete ecommerce widget example with carousel, accordion, and product display components
    - Carousel component (`components/Carousel.tsx`) with smooth animations and transitions
    - Accordion components (`components/Accordion.tsx`, `components/AccordionItem.tsx`) for collapsible content
    - Fruits API integration using `@tanstack/react-query` for data fetching
    - 16 fruit product images added to `public/fruits/` directory (apple, apricot, avocado, banana, blueberry, cherries, coconut, grapes, lemon, mango, orange, pear, pineapple, plum, strawberry, watermelon)
    - Enhanced product display with filtering and search capabilities
  - **Updated Template Example** (`packages/create-mcp-use-app/src/templates/apps-sdk/index.ts`):
    - New `get-brand-info` tool replacing the old `get-my-city` example
    - Fruits API endpoint (`/api/fruits`) for template data
    - Better example demonstrating brand information retrieval

  ### CLI Widget Building Enhancements
  - **Folder-based Widget Support** (`packages/cli/src/index.ts` and `packages/mcp-use/src/server/mcp-server.ts`):
    - Support for widgets organized in folders with `widget.tsx` entry point
    - Automatic detection of both single-file widgets and folder-based widgets
    - Proper widget name resolution from folder names
  - **Public Folder Support** (`packages/cli/src/index.ts`):
    - Automatic copying of `public/` folder to `dist/public/` during build
    - Support for static assets in widget templates
  - **Enhanced SSR Configuration** (`packages/cli/src/index.ts`):
    - Improved Vite SSR configuration with proper `noExternal` settings for `@openai/apps-sdk-ui` and `react-router`
    - Better environment variable definitions for SSR context
    - CSS handling plugin for SSR mode
  - **Dev Server Public Assets** (`packages/mcp-use/src/server/mcp-server.ts`):
    - New `/mcp-use/public/*` route for serving static files in development mode
    - Proper content-type detection for various file types (images, fonts, etc.)

  ## Improvements

  ### Inspector Component Enhancements
  - **OpenAIComponentRenderer** (`packages/inspector/src/client/components/OpenAIComponentRenderer.tsx`):
    - Added `memo` wrapper for performance optimization
    - Enhanced `notifyIntrinsicHeight` message handling with proper height calculation and capping for different display modes
    - Improved theme support to prevent theme flashing on widget load by passing theme in widget data
    - Widget state inspection support via `mcp-inspector:getWidgetState` message handling
    - Better dev mode detection and widget URL generation
    - Enhanced CSP handling with dev server URL support
  - **ToolResultDisplay** (`packages/inspector/src/client/components/tools/ToolResultDisplay.tsx`) - Major refactor (894 lines changed):
    - New formatted content display supporting multiple content types:
      - Text content with JSON detection and formatting
      - Image content with base64 data URL rendering
      - Audio content with player controls
      - Resource links with full metadata display
      - Embedded resources with content preview
    - Result history navigation with dropdown selector
    - Relative time display (e.g., "2m ago", "1h ago")
    - JSON validation and automatic formatting
    - Maximize/restore functionality for result panel
    - Better visual organization with content type labels
  - **ToolsTab** (`packages/inspector/src/client/components/ToolsTab.tsx`):
    - Resizable panels with collapse support using refs
    - Maximize functionality for result panel that collapses left and top panels
    - Better mobile view handling and responsive design
    - Improved panel state management

  ### Server-Side Improvements
  - **shared-routes.ts** (`packages/inspector/src/server/shared-routes.ts`):
    - Enhanced dev widget proxy with better asset loading
    - Direct asset loading from dev server for simplicity (avoids HTML rewriting issues)
    - CSP violation warnings injected into HTML for development debugging
    - Improved Vite HMR WebSocket handling with direct connection to dev server
    - Base tag injection for proper routing and dynamic module loading
    - Better CSP header generation supporting both production and development modes
  - **shared-utils.ts** and **shared-utils-browser.ts** (`packages/inspector/src/server/`):
    - Enhanced widget security headers with dev server URL support
    - Improved CSP configuration separating production and development resource domains
    - Theme support in widget data for preventing theme flash
    - Widget state inspection message handling
    - `notifyIntrinsicHeight` API support in browser version
    - MCP widget utilities injection (`__mcpPublicUrl`, `__getFile`) for Image component support
    - Better history management to prevent redirects in inspector dev-widget proxy

  ### Template Improvements
  - **apps-sdk template** (`packages/create-mcp-use-app/src/templates/apps-sdk/`):
    - Updated README with comprehensive documentation:
      - Official UI components integration guide
      - Ecommerce widgets documentation
      - Better examples and usage instructions
    - Enhanced example tool (`get-brand-info`) with complete brand information structure
    - Fruits API endpoint for template data
    - Better styling and theming support
    - Removed outdated `display-weather.tsx` widget
  - **Template Styles** (`packages/create-mcp-use-app/src/templates/apps-sdk/styles.css`):
    - Enhanced CSS with better theming support
    - Improved component styling

  ### CLI Improvements
  - **CLI index.ts** (`packages/cli/src/index.ts`):
    - Better server waiting mechanism using `AbortController` for proper cleanup
    - Enhanced fetch request with proper headers and signal handling
    - Support for folder-based widgets with proper entry path resolution
    - Public folder copying during build process
    - Enhanced SSR configuration with proper Vite settings
    - Better error handling throughout

  ### Code Quality
  - Improved logging throughout the codebase with better context and formatting
  - Better code formatting and readability improvements
  - Enhanced type safety with proper TypeScript types
  - Better error handling with try-catch blocks and proper error messages
  - Consistent code organization and structure

  ## Bug Fixes

  ### Widget Rendering
  - Fixed iframe height calculation issues by properly handling `notifyIntrinsicHeight` messages and respecting display mode constraints
  - Fixed theme flashing on widget load by passing theme in widget data and using it in initial API setup
  - Fixed CSP header generation for dev mode by properly handling dev server URLs in CSP configuration
  - Fixed asset loading in dev widget proxy by using direct URLs to dev server instead of proxy rewriting

  ### Inspector Issues
  - Fixed console logging in iframe by improving message handling and adding proxy toggle functionality
  - Fixed widget state inspection by adding proper message handling for `mcp-inspector:getWidgetState` requests
  - Fixed resizable panel collapse behavior by using refs and proper state management
  - Fixed mobile view handling with better responsive design and view state management

  ### Build Process
  - Fixed widget metadata extraction by properly handling folder-based widgets and entry paths
  - Fixed Vite SSR configuration by adding proper `noExternal` settings and environment definitions
  - Fixed public asset copying by adding explicit copy step in build process
  - Fixed widget name resolution for folder-based widgets by using folder name instead of file name

  ### Documentation
  - Fixed Supabase deployment script (`packages/mcp-use/examples/server/supabase/deploy.sh`) with updated project creation syntax
  - Updated deployment command in Supabase documentation to reflect new project creation syntax
  - Added server inspection URL to Supabase deployment documentation (`docs/typescript/server/deployment/supabase.mdx`)

  ### Other Fixes
  - Fixed history management to prevent unwanted redirects when running widgets in inspector dev-widget proxy
  - Fixed macOS resource fork file exclusion in widget discovery (`.DS_Store`, `._*` files)
  - Fixed Vite HMR WebSocket connection by using direct dev server URLs instead of proxy
  - Fixed CSS imports in SSR mode by adding custom plugin to handle CSS files properly

- 266a445: Enhance search_tools to return metadata (total_tools, namespaces, result_count) along with results to provide better context for model decision-making
- 266a445: Release canary
- 266a445: Added support for rpc messages logging in inspector

### Patch Changes

- Updated dependencies [266a445]
- Updated dependencies [266a445]
- Updated dependencies [266a445]
  - @mcp-use/inspector@0.7.0
  - @mcp-use/cli@2.3.0

## 1.5.0-canary.3

### Minor Changes

- 018395c: Release canary

### Patch Changes

- Updated dependencies [018395c]
  - @mcp-use/inspector@0.7.0-canary.3
  - @mcp-use/cli@2.3.0-canary.3

## 1.5.0-canary.2

### Minor Changes

- 229a3a3: Added support for rpc messages logging in inspector

### Patch Changes

- Updated dependencies [229a3a3]
  - @mcp-use/inspector@0.7.0-canary.2
  - @mcp-use/cli@2.3.0-canary.2

## 1.5.0-canary.1

### Minor Changes

- fc64bd7: ## New Features

  ### OpenAI Apps SDK Integration (`mcp-use` package)
  - **McpUseProvider** (`packages/mcp-use/src/react/McpUseProvider.tsx`) - New unified provider component that combines all common React setup for mcp-use widgets:
    - Automatically includes StrictMode, ThemeProvider, BrowserRouter with automatic basename calculation
    - Optional WidgetControls integration for debugging and view controls
    - ErrorBoundary wrapper for error handling
    - Auto-sizing support with ResizeObserver that calls `window.openai.notifyIntrinsicHeight()` for dynamic height updates
    - Automatic basename calculation for proper routing in both dev proxy and production environments
  - **WidgetControls** (`packages/mcp-use/src/react/WidgetControls.tsx`) - New component (752 lines) providing:
    - Debug button overlay for displaying widget debug information (props, state, theme, display mode, etc.)
    - View controls for fullscreen and picture-in-picture (PIP) modes
    - Shared hover logic for all control buttons
    - Customizable positioning (top-left, top-right, bottom-left, etc.)
    - Interactive debug overlay with tool testing capabilities
  - **useWidget hook** (`packages/mcp-use/src/react/useWidget.ts`) - New type-safe React adapter for OpenAI Apps SDK `window.openai` API:
    - Automatic props extraction from `toolInput`
    - Reactive state management subscribing to all OpenAI global changes
    - Access to theme, display mode, safe areas, locale, user agent
    - Action methods: `callTool`, `sendFollowUpMessage`, `openExternal`, `requestDisplayMode`, `setState`
    - Type-safe with full TypeScript support
  - **ErrorBoundary** (`packages/mcp-use/src/react/ErrorBoundary.tsx`) - New error boundary component for graceful error handling in widgets
  - **Image** (`packages/mcp-use/src/react/Image.tsx`) - New image component that handles both data URLs and public file paths for widgets
  - **ThemeProvider** (`packages/mcp-use/src/react/ThemeProvider.tsx`) - New theme provider component for consistent theme management across widgets

  ### Inspector Widget Support
  - **WidgetInspectorControls** (`packages/inspector/src/client/components/WidgetInspectorControls.tsx`) - New component (364 lines) providing:
    - Inspector-specific widget controls and debugging interface
    - Widget state inspection with real-time updates
    - Debug information display including props, output, metadata, and state
    - Integration with inspector's tool execution flow
  - **Console Proxy Toggle** (`packages/inspector/src/client/components/IframeConsole.tsx` and `packages/inspector/src/client/hooks/useIframeConsole.ts`):
    - New toggle option to proxy iframe console logs to the page console
    - Persistent preference stored in localStorage
    - Improved console UI with tooltips and better error/warning indicators
    - Formatted console output with appropriate log levels

  ### Enhanced Apps SDK Template
  - **Product Search Result Widget** (`packages/create-mcp-use-app/src/templates/apps-sdk/resources/product-search-result/`):
    - Complete ecommerce widget example with carousel, accordion, and product display components
    - Carousel component (`components/Carousel.tsx`) with smooth animations and transitions
    - Accordion components (`components/Accordion.tsx`, `components/AccordionItem.tsx`) for collapsible content
    - Fruits API integration using `@tanstack/react-query` for data fetching
    - 16 fruit product images added to `public/fruits/` directory (apple, apricot, avocado, banana, blueberry, cherries, coconut, grapes, lemon, mango, orange, pear, pineapple, plum, strawberry, watermelon)
    - Enhanced product display with filtering and search capabilities
  - **Updated Template Example** (`packages/create-mcp-use-app/src/templates/apps-sdk/index.ts`):
    - New `get-brand-info` tool replacing the old `get-my-city` example
    - Fruits API endpoint (`/api/fruits`) for template data
    - Better example demonstrating brand information retrieval

  ### CLI Widget Building Enhancements
  - **Folder-based Widget Support** (`packages/cli/src/index.ts` and `packages/mcp-use/src/server/mcp-server.ts`):
    - Support for widgets organized in folders with `widget.tsx` entry point
    - Automatic detection of both single-file widgets and folder-based widgets
    - Proper widget name resolution from folder names
  - **Public Folder Support** (`packages/cli/src/index.ts`):
    - Automatic copying of `public/` folder to `dist/public/` during build
    - Support for static assets in widget templates
  - **Enhanced SSR Configuration** (`packages/cli/src/index.ts`):
    - Improved Vite SSR configuration with proper `noExternal` settings for `@openai/apps-sdk-ui` and `react-router`
    - Better environment variable definitions for SSR context
    - CSS handling plugin for SSR mode
  - **Dev Server Public Assets** (`packages/mcp-use/src/server/mcp-server.ts`):
    - New `/mcp-use/public/*` route for serving static files in development mode
    - Proper content-type detection for various file types (images, fonts, etc.)

  ## Improvements

  ### Inspector Component Enhancements
  - **OpenAIComponentRenderer** (`packages/inspector/src/client/components/OpenAIComponentRenderer.tsx`):
    - Added `memo` wrapper for performance optimization
    - Enhanced `notifyIntrinsicHeight` message handling with proper height calculation and capping for different display modes
    - Improved theme support to prevent theme flashing on widget load by passing theme in widget data
    - Widget state inspection support via `mcp-inspector:getWidgetState` message handling
    - Better dev mode detection and widget URL generation
    - Enhanced CSP handling with dev server URL support
  - **ToolResultDisplay** (`packages/inspector/src/client/components/tools/ToolResultDisplay.tsx`) - Major refactor (894 lines changed):
    - New formatted content display supporting multiple content types:
      - Text content with JSON detection and formatting
      - Image content with base64 data URL rendering
      - Audio content with player controls
      - Resource links with full metadata display
      - Embedded resources with content preview
    - Result history navigation with dropdown selector
    - Relative time display (e.g., "2m ago", "1h ago")
    - JSON validation and automatic formatting
    - Maximize/restore functionality for result panel
    - Better visual organization with content type labels
  - **ToolsTab** (`packages/inspector/src/client/components/ToolsTab.tsx`):
    - Resizable panels with collapse support using refs
    - Maximize functionality for result panel that collapses left and top panels
    - Better mobile view handling and responsive design
    - Improved panel state management

  ### Server-Side Improvements
  - **shared-routes.ts** (`packages/inspector/src/server/shared-routes.ts`):
    - Enhanced dev widget proxy with better asset loading
    - Direct asset loading from dev server for simplicity (avoids HTML rewriting issues)
    - CSP violation warnings injected into HTML for development debugging
    - Improved Vite HMR WebSocket handling with direct connection to dev server
    - Base tag injection for proper routing and dynamic module loading
    - Better CSP header generation supporting both production and development modes
  - **shared-utils.ts** and **shared-utils-browser.ts** (`packages/inspector/src/server/`):
    - Enhanced widget security headers with dev server URL support
    - Improved CSP configuration separating production and development resource domains
    - Theme support in widget data for preventing theme flash
    - Widget state inspection message handling
    - `notifyIntrinsicHeight` API support in browser version
    - MCP widget utilities injection (`__mcpPublicUrl`, `__getFile`) for Image component support
    - Better history management to prevent redirects in inspector dev-widget proxy

  ### Template Improvements
  - **apps-sdk template** (`packages/create-mcp-use-app/src/templates/apps-sdk/`):
    - Updated README with comprehensive documentation:
      - Official UI components integration guide
      - Ecommerce widgets documentation
      - Better examples and usage instructions
    - Enhanced example tool (`get-brand-info`) with complete brand information structure
    - Fruits API endpoint for template data
    - Better styling and theming support
    - Removed outdated `display-weather.tsx` widget
  - **Template Styles** (`packages/create-mcp-use-app/src/templates/apps-sdk/styles.css`):
    - Enhanced CSS with better theming support
    - Improved component styling

  ### CLI Improvements
  - **CLI index.ts** (`packages/cli/src/index.ts`):
    - Better server waiting mechanism using `AbortController` for proper cleanup
    - Enhanced fetch request with proper headers and signal handling
    - Support for folder-based widgets with proper entry path resolution
    - Public folder copying during build process
    - Enhanced SSR configuration with proper Vite settings
    - Better error handling throughout

  ### Code Quality
  - Improved logging throughout the codebase with better context and formatting
  - Better code formatting and readability improvements
  - Enhanced type safety with proper TypeScript types
  - Better error handling with try-catch blocks and proper error messages
  - Consistent code organization and structure

  ## Bug Fixes

  ### Widget Rendering
  - Fixed iframe height calculation issues by properly handling `notifyIntrinsicHeight` messages and respecting display mode constraints
  - Fixed theme flashing on widget load by passing theme in widget data and using it in initial API setup
  - Fixed CSP header generation for dev mode by properly handling dev server URLs in CSP configuration
  - Fixed asset loading in dev widget proxy by using direct URLs to dev server instead of proxy rewriting

  ### Inspector Issues
  - Fixed console logging in iframe by improving message handling and adding proxy toggle functionality
  - Fixed widget state inspection by adding proper message handling for `mcp-inspector:getWidgetState` requests
  - Fixed resizable panel collapse behavior by using refs and proper state management
  - Fixed mobile view handling with better responsive design and view state management

  ### Build Process
  - Fixed widget metadata extraction by properly handling folder-based widgets and entry paths
  - Fixed Vite SSR configuration by adding proper `noExternal` settings and environment definitions
  - Fixed public asset copying by adding explicit copy step in build process
  - Fixed widget name resolution for folder-based widgets by using folder name instead of file name

  ### Documentation
  - Fixed Supabase deployment script (`packages/mcp-use/examples/server/supabase/deploy.sh`) with updated project creation syntax
  - Updated deployment command in Supabase documentation to reflect new project creation syntax
  - Added server inspection URL to Supabase deployment documentation (`docs/typescript/server/deployment/supabase.mdx`)

  ### Other Fixes
  - Fixed history management to prevent unwanted redirects when running widgets in inspector dev-widget proxy
  - Fixed macOS resource fork file exclusion in widget discovery (`.DS_Store`, `._*` files)
  - Fixed Vite HMR WebSocket connection by using direct dev server URLs instead of proxy
  - Fixed CSS imports in SSR mode by adding custom plugin to handle CSS files properly

### Patch Changes

- Updated dependencies [fc64bd7]
  - @mcp-use/inspector@0.7.0-canary.1
  - @mcp-use/cli@2.3.0-canary.1

## 1.4.1

### Patch Changes

- 95c9d9f: Avoid top level node:vm import to enable edge envs
- 95c9d9f: fix node vm
  - @mcp-use/cli@2.2.5
  - @mcp-use/inspector@0.6.1

## 1.4.1-canary.1

### Patch Changes

- 0975320: fix node vm
  - @mcp-use/cli@2.2.5-canary.1
  - @mcp-use/inspector@0.6.1-canary.1

## 1.4.1-canary.0

### Patch Changes

- d434691: Avoid top level node:vm import to enable edge envs
  - @mcp-use/cli@2.2.5-canary.0
  - @mcp-use/inspector@0.6.1-canary.0

## 1.4.0

### Minor Changes

- 33e4a68: feat: introduced Code Mode
  - Added a new `code-mode` feature allowing agents to execute code using MCP tools.
  - Implemented `VMCodeExecutor` and `E2BCodeExecutor` for local and remote execution environments.
  - Created `CodeModeConnector` to facilitate tool discovery and execution.
  - Updated documentation and examples for using Code Mode.
  - Enhanced `MCPClient` to support code execution configuration.
  - Added tests for code execution functionality and integration with agents.

### Patch Changes

- Updated dependencies [33e4a68]
- Updated dependencies [33e4a68]
- Updated dependencies [33e4a68]
  - @mcp-use/inspector@0.6.0
  - @mcp-use/cli@2.2.4

## 1.4.0-canary.3

### Minor Changes

- 35fd9ae: feat: introduced Code Mode
  - Added a new `code-mode` feature allowing agents to execute code using MCP tools.
  - Implemented `VMCodeExecutor` and `E2BCodeExecutor` for local and remote execution environments.
  - Created `CodeModeConnector` to facilitate tool discovery and execution.
  - Updated documentation and examples for using Code Mode.
  - Enhanced `MCPClient` to support code execution configuration.
  - Added tests for code execution functionality and integration with agents.

### Patch Changes

- @mcp-use/cli@2.2.4-canary.3
- @mcp-use/inspector@0.6.0-canary.3

## 1.3.4-canary.2

### Patch Changes

- Updated dependencies [c754733]
  - @mcp-use/cli@2.2.4-canary.2
  - @mcp-use/inspector@0.6.0-canary.2

## 1.3.4-canary.1

### Patch Changes

- Updated dependencies [451c507]
  - @mcp-use/inspector@0.6.0-canary.1
  - @mcp-use/cli@2.2.4-canary.1

## 1.3.4-canary.0

### Patch Changes

- Updated dependencies [1f4a798]
  - @mcp-use/inspector@0.6.0-canary.0
  - @mcp-use/cli@2.2.4-canary.0

## 1.3.3

### Patch Changes

- e8ec993: - Add emulation of openai api to the inspector
  - Add utility component WidgetFullscreenWrapper: render full screen and pip buttons
  - Add utility component WidgetDebugger: shows an overlay with openai metadata for debugging ChatGPT integration
- e8ec993: hotfix: Wrap all handle request calls in wait function
- e8ec993: Fix async server tool calls
- Updated dependencies [e8ec993]
- Updated dependencies [e8ec993]
- Updated dependencies [e8ec993]
- Updated dependencies [e8ec993]
- Updated dependencies [e8ec993]
- Updated dependencies [e8ec993]
- Updated dependencies [e8ec993]
- Updated dependencies [e8ec993]
  - @mcp-use/cli@2.2.3
  - @mcp-use/inspector@0.5.3

## 1.3.3-canary.8

### Patch Changes

- Updated dependencies [329ce35]
  - @mcp-use/inspector@0.5.3-canary.8
  - @mcp-use/cli@2.2.3-canary.8

## 1.3.3-canary.7

### Patch Changes

- Updated dependencies [1ed0ab8]
  - @mcp-use/inspector@0.5.3-canary.7
  - @mcp-use/cli@2.2.3-canary.7

## 1.3.3-canary.6

### Patch Changes

- Updated dependencies [ba654db]
  - @mcp-use/inspector@0.5.3-canary.6
  - @mcp-use/cli@2.2.3-canary.6

## 1.3.3-canary.5

### Patch Changes

- Updated dependencies [f971dd8]
  - @mcp-use/inspector@0.5.3-canary.5
  - @mcp-use/cli@2.2.3-canary.5

## 1.3.3-canary.4

### Patch Changes

- 68d0d4c: - Add emulation of openai api to the inspector
  - Add utility component WidgetFullscreenWrapper: render full screen and pip buttons
  - Add utility component WidgetDebugger: shows an overlay with openai metadata for debugging ChatGPT integration
- Updated dependencies [68d0d4c]
- Updated dependencies [68d0d4c]
  - @mcp-use/cli@2.2.3-canary.4
  - @mcp-use/inspector@0.5.3-canary.4

## 1.3.3-canary.3

### Patch Changes

- d4dc001: hotfix: Wrap all handle request calls in wait function
  - @mcp-use/cli@2.2.3-canary.3
  - @mcp-use/inspector@0.5.3-canary.3

## 1.3.3-canary.2

### Patch Changes

- 9fc286c: Fix async server tool calls
  - @mcp-use/cli@2.2.3-canary.2
  - @mcp-use/inspector@0.5.3-canary.2

## 1.3.3-canary.1

### Patch Changes

- Updated dependencies [f7995c0]
  - @mcp-use/cli@2.2.3-canary.1
  - @mcp-use/inspector@0.5.3-canary.1

## 1.3.3-canary.0

### Patch Changes

- Updated dependencies [d4c246a]
  - @mcp-use/inspector@0.5.3-canary.0
  - @mcp-use/cli@2.2.3-canary.0

## 1.3.2

### Patch Changes

- 835d367: - Updated the version of @modelcontextprotocol/sdk to 1.22.0 in both inspector and mcp-use package.json files.
- 835d367: chore: update dependencies
- 835d367: Add entities list preview in cli logs
  https://linear.app/mcp-use/issue/MCP-411/server-create-a-mini-inspector-in-the-server-cli
- Updated dependencies [835d367]
- Updated dependencies [835d367]
- Updated dependencies [835d367]
- Updated dependencies [835d367]
- Updated dependencies [835d367]
- Updated dependencies [835d367]
- Updated dependencies [835d367]
  - @mcp-use/cli@2.2.2
  - @mcp-use/inspector@0.5.2

## 1.3.2-canary.5

### Patch Changes

- d9e3ae2: Add entities list preview in cli logs
  https://linear.app/mcp-use/issue/MCP-411/server-create-a-mini-inspector-in-the-server-cli
  - @mcp-use/cli@2.2.2-canary.5
  - @mcp-use/inspector@0.5.2-canary.5

## 1.3.2-canary.4

### Patch Changes

- Updated dependencies [9db6706]
  - @mcp-use/inspector@0.5.2-canary.4
  - @mcp-use/cli@2.2.2-canary.4

## 1.3.2-canary.3

### Patch Changes

- Updated dependencies [6133446]
  - @mcp-use/cli@2.2.2-canary.3
  - @mcp-use/inspector@0.5.2-canary.3

## 1.3.2-canary.2

### Patch Changes

- Updated dependencies [6e3278b]
  - @mcp-use/cli@2.2.2-canary.2
  - @mcp-use/inspector@0.5.2-canary.2

## 1.3.2-canary.1

### Patch Changes

- Updated dependencies [ecfa449]
  - @mcp-use/cli@2.2.2-canary.1
  - @mcp-use/inspector@0.5.2-canary.1

## 1.3.2-canary.0

### Patch Changes

- 2ebe233: - Updated the version of @modelcontextprotocol/sdk to 1.22.0 in both inspector and mcp-use package.json files.
- 2ebe233: chore: update dependencies
- Updated dependencies [2ebe233]
- Updated dependencies [2ebe233]
- Updated dependencies [2ebe233]
  - @mcp-use/cli@2.2.2-canary.0
  - @mcp-use/inspector@0.5.2-canary.0

## 1.3.1

### Patch Changes

- 91fdcee: - Updated the version of @modelcontextprotocol/sdk to 1.22.0 in both inspector and mcp-use package.json files.
- 91fdcee: chore: update dependencies
- Updated dependencies [91fdcee]
- Updated dependencies [91fdcee]
- Updated dependencies [91fdcee]
  - @mcp-use/cli@2.2.1
  - @mcp-use/inspector@0.5.1

## 1.3.1-canary.0

### Patch Changes

- 9ece7fe: - Updated the version of @modelcontextprotocol/sdk to 1.22.0 in both inspector and mcp-use package.json files.
- 9ece7fe: chore: update dependencies
- Updated dependencies [9ece7fe]
- Updated dependencies [9ece7fe]
- Updated dependencies [9ece7fe]
  - @mcp-use/cli@2.2.1-canary.0
  - @mcp-use/inspector@0.5.1-canary.0

## 1.3.0

### Minor Changes

- 26e1162: Migrated mcp-use server from Express to Hono framework to enable edge runtime support (Cloudflare Workers, Deno Deploy, Supabase Edge Functions). Added runtime detection for Deno/Node.js environments, Connect middleware adapter for compatibility, and `getHandler()` method for edge deployment. Updated dependencies: added `hono` and `@hono/node-server`, moved `connect` and `node-mocks-http` to optional dependencies, removed `express` and `cors` from peer dependencies.

  Added Supabase deployment documentation and example templates to create-mcp-use-app for easier edge runtime deployment.

- 26e1162: ### MCPAgent Message Detection Improvements (fix #446)

  Fixed issue where `agent.run()` returned "No output generated" even when valid output was produced, caused by messages not being AIMessage instances after serialization/deserialization across module boundaries. Added robust message detection helpers (`_isAIMessageLike`, `_isHumanMessageLike`, `_isToolMessageLike`) that handle multiple message formats (class instances, plain objects with `type`/`role` properties, objects with `getType()` methods) to support version mismatches and different LangChain message formats. Includes comprehensive test coverage for message detection edge cases.

  ### Server Base URL Fix

  Fixed server base URL handling to ensure proper connection and routing in edge runtime environments, resolving issues with URL construction and path resolution.

  ### Inspector Enhancements

  Improved auto-connection logic with better error handling and retry mechanisms. Enhanced resource display components and OpenAI component renderer for better reliability and user experience. Updated connection context management for more robust multi-server support.

  ### Supabase Deployment Example

  Added complete Supabase deployment example with Deno-compatible server implementation, deployment scripts, and configuration templates to `create-mcp-use-app` for easier edge runtime deployment.

  ### React Hook and CLI Improvements

  Enhanced `useMcp` hook with better error handling and connection state management for browser-based MCP clients. Updated CLI with improved server URL handling and connection management.

### Patch Changes

- Updated dependencies [26e1162]
- Updated dependencies [f25018a]
- Updated dependencies [26e1162]
  - @mcp-use/cli@2.2.0
  - @mcp-use/inspector@0.5.0

## 1.3.0-canary.1

### Minor Changes

- 9d0be46: ### MCPAgent Message Detection Improvements (fix #446)

  Fixed issue where `agent.run()` returned "No output generated" even when valid output was produced, caused by messages not being AIMessage instances after serialization/deserialization across module boundaries. Added robust message detection helpers (`_isAIMessageLike`, `_isHumanMessageLike`, `_isToolMessageLike`) that handle multiple message formats (class instances, plain objects with `type`/`role` properties, objects with `getType()` methods) to support version mismatches and different LangChain message formats. Includes comprehensive test coverage for message detection edge cases.

  ### Server Base URL Fix

  Fixed server base URL handling to ensure proper connection and routing in edge runtime environments, resolving issues with URL construction and path resolution.

  ### Inspector Enhancements

  Improved auto-connection logic with better error handling and retry mechanisms. Enhanced resource display components and OpenAI component renderer for better reliability and user experience. Updated connection context management for more robust multi-server support.

  ### Supabase Deployment Example

  Added complete Supabase deployment example with Deno-compatible server implementation, deployment scripts, and configuration templates to `create-mcp-use-app` for easier edge runtime deployment.

  ### React Hook and CLI Improvements

  Enhanced `useMcp` hook with better error handling and connection state management for browser-based MCP clients. Updated CLI with improved server URL handling and connection management.

### Patch Changes

- Updated dependencies [9d0be46]
  - @mcp-use/inspector@0.5.0-canary.1
  - @mcp-use/cli@2.2.0-canary.1

## 1.3.0-canary.0

### Minor Changes

- 3db425d: Migrated mcp-use server from Express to Hono framework to enable edge runtime support (Cloudflare Workers, Deno Deploy, Supabase Edge Functions). Added runtime detection for Deno/Node.js environments, Connect middleware adapter for compatibility, and `getHandler()` method for edge deployment. Updated dependencies: added `hono` and `@hono/node-server`, moved `connect` and `node-mocks-http` to optional dependencies, removed `express` and `cors` from peer dependencies.

  Added Supabase deployment documentation and example templates to create-mcp-use-app for easier edge runtime deployment.

### Patch Changes

- Updated dependencies [3db425d]
- Updated dependencies [f25018a]
  - @mcp-use/cli@2.2.0-canary.0
  - @mcp-use/inspector@0.5.0-canary.0

## 1.2.4

### Patch Changes

- 9209e99: fix: prevent OOM errors by avoiding re-exports of @langchain/core types
- 9209e99: fix: inspector dependencies
- Updated dependencies [9209e99]
  - @mcp-use/inspector@0.4.13
  - @mcp-use/cli@2.1.25

## 1.2.4-canary.1

### Patch Changes

- 8194ad2: fix: prevent OOM errors by avoiding re-exports of @langchain/core types
  - @mcp-use/cli@2.1.25-canary.1
  - @mcp-use/inspector@0.4.13-canary.1

## 1.2.4-canary.0

### Patch Changes

- 8e2210a: fix: inspector dependencies
- Updated dependencies [8e2210a]
  - @mcp-use/inspector@0.4.13-canary.0
  - @mcp-use/cli@2.1.25-canary.0

## 1.2.3

### Patch Changes

- 410c67c: Winston is dynamically imported and not bundled
- 410c67c: fix: MCPAgent runtime fails with ERR_PACKAGE_PATH_NOT_EXPORTED in Node.js - package.json file didn't include an export path for ./agent, even though the agent code existed in src/agents/. Additionally, the build configuration (tsup.config.ts) wasn't building the agents as a separate entry point.
  - @mcp-use/cli@2.1.24
  - @mcp-use/inspector@0.4.12

## 1.2.3-canary.1

### Patch Changes

- 7d0f904: Winston is dynamically imported and not bundled
  - @mcp-use/cli@2.1.24-canary.1
  - @mcp-use/inspector@0.4.12-canary.1

## 1.2.3-canary.0

### Patch Changes

- d5ed5ba: fix: MCPAgent runtime fails with ERR_PACKAGE_PATH_NOT_EXPORTED in Node.js - package.json file didn't include an export path for ./agent, even though the agent code existed in src/agents/. Additionally, the build configuration (tsup.config.ts) wasn't building the agents as a separate entry point.
  - @mcp-use/cli@2.1.24-canary.0
  - @mcp-use/inspector@0.4.12-canary.0

## 1.2.2

### Patch Changes

- ceed51b: Standardize code formatting with ESLint + Prettier integration
  - Add Prettier for consistent code formatting across the monorepo
  - Integrate Prettier with ESLint via `eslint-config-prettier` to prevent conflicts
  - Configure pre-commit hooks with `lint-staged` to auto-format staged files
  - Add Prettier format checks to CI pipeline
  - Remove `@antfu/eslint-config` in favor of unified root ESLint configuration
  - Enforce semicolons and consistent code style with `.prettierrc.json`
  - Exclude markdown and JSON files from formatting via `.prettierignore`

- ceed51b: Several major updates:
  - `useMCP` now uses `BrowserMCPClient` (previously it relied on the unofficial SDK).
  - Chat functionality works in the Inspector using client-side message handling (LangChain agents run client-side, not in `useMcp` due to browser compatibility limitations).
  - Chat and Inspector tabs share the same connection.
  - The agent in Chat now has memory (previously, it didn't retain context from the ongoing conversation).
  - The client now uses the advertised capability array from the server to determine which functions to call.
    Previously, it would call functions like `list_resource` regardless of whether the server supported them.
  - Added PostHog integration in the docs.
  - Improved error handling throughout the Chat tab and connection process.
  - Fixed Apps SDK widget rendering with proper parameter passing.

- Updated dependencies [ceed51b]
- Updated dependencies [ceed51b]
  - @mcp-use/inspector@0.4.11
  - @mcp-use/cli@2.1.23

## 1.2.2-canary.1

### Patch Changes

- 3f992c3: Standardize code formatting with ESLint + Prettier integration
  - Add Prettier for consistent code formatting across the monorepo
  - Integrate Prettier with ESLint via `eslint-config-prettier` to prevent conflicts
  - Configure pre-commit hooks with `lint-staged` to auto-format staged files
  - Add Prettier format checks to CI pipeline
  - Remove `@antfu/eslint-config` in favor of unified root ESLint configuration
  - Enforce semicolons and consistent code style with `.prettierrc.json`
  - Exclude markdown and JSON files from formatting via `.prettierignore`

- Updated dependencies [3f992c3]
  - @mcp-use/inspector@0.4.11-canary.1
  - @mcp-use/cli@2.1.23-canary.1

## 1.2.2-canary.0

### Patch Changes

- 38d3c3c: Several major updates:
  - `useMCP` now uses `BrowserMCPClient` (previously it relied on the unofficial SDK).
  - Chat functionality works in the Inspector using client-side message handling (LangChain agents run client-side, not in `useMcp` due to browser compatibility limitations).
  - Chat and Inspector tabs share the same connection.
  - The agent in Chat now has memory (previously, it didn't retain context from the ongoing conversation).
  - The client now uses the advertised capability array from the server to determine which functions to call.
    Previously, it would call functions like `list_resource` regardless of whether the server supported them.
  - Added PostHog integration in the docs.
  - Improved error handling throughout the Chat tab and connection process.
  - Fixed Apps SDK widget rendering with proper parameter passing.

- Updated dependencies [38d3c3c]
  - @mcp-use/inspector@0.4.11-canary.0
  - @mcp-use/cli@2.1.23-canary.0

## 1.2.1

### Patch Changes

- Updated dependencies [9e555ef]
  - @mcp-use/inspector@0.4.10
  - @mcp-use/cli@2.1.22

## 1.2.1-canary.0

### Patch Changes

- Updated dependencies [a5a6919]
  - @mcp-use/inspector@0.4.10-canary.0
  - @mcp-use/cli@2.1.22-canary.0

## 1.2.0

### Minor Changes

- 708cc5b: Support Langchain 1.0.0

### Patch Changes

- 708cc5b: fix: mdoel type for langchain 1.0.0
- 708cc5b: chore: set again cli and inspector as dependencies
- 708cc5b: chore: lint
- 708cc5b: Removed useless logs
- 708cc5b: fix: apps sdk metadata setup from widget build
- Updated dependencies [708cc5b]
- Updated dependencies [708cc5b]
- Updated dependencies [708cc5b]
  - @mcp-use/inspector@0.4.9
  - @mcp-use/cli@2.1.21

## 1.2.0-canary.6

### Patch Changes

- a8e5b65: fix: apps sdk metadata setup from widget build
- Updated dependencies [a8e5b65]
  - @mcp-use/inspector@0.4.9-canary.7
  - @mcp-use/cli@2.1.21-canary.7

## 1.2.0-canary.5

### Patch Changes

- 940d727: chore: lint
  - @mcp-use/cli@2.1.21-canary.6
  - @mcp-use/inspector@0.4.9-canary.6

## 1.2.0-canary.4

### Patch Changes

- Updated dependencies [b9b739b]
  - @mcp-use/inspector@0.4.9-canary.5
  - @mcp-use/cli@2.1.21-canary.5

## 1.2.0-canary.3

### Patch Changes

- da6e7ed: chore: set again cli and inspector as dependencies
  - @mcp-use/cli@2.1.21-canary.4
  - @mcp-use/inspector@0.4.9-canary.4

## 1.2.0-canary.2

### Patch Changes

- 3f2d2e9: Removed useless logs
  - @mcp-use/cli@2.1.21-canary.3
  - @mcp-use/inspector@0.4.9-canary.3

## 1.2.0-canary.1

### Patch Changes

- 5dd503f: fix: mdoel type for langchain 1.0.0
  - @mcp-use/cli@2.1.21-canary.2
  - @mcp-use/inspector@0.4.9-canary.2

## 1.2.0-canary.0

### Minor Changes

- b24a213: Support Langchain 1.0.0

### Patch Changes

- @mcp-use/cli@2.1.21-canary.0
- @mcp-use/inspector@0.4.9-canary.0

## 1.1.8

### Patch Changes

- 80213e6: ## Widget Integration & Server Enhancements
  - Enhanced widget integration capabilities in MCP server with improved handling
  - Streamlined widget HTML generation with comprehensive logging
  - Better server reliability and error handling for widget operations

  ## CLI Tunnel Support & Development Workflow
  - Added comprehensive tunnel support to CLI for seamless server exposure
  - Enhanced development workflow with tunnel integration capabilities
  - Disabled tunnel in dev mode for optimal Vite compatibility

  ## Inspector UI & User Experience Improvements
  - Enhanced inspector UI components with better tunnel URL handling
  - Improved user experience with updated dependencies and compatibility
  - Better visual feedback and error handling in inspector interface

  ## Technical Improvements
  - Enhanced logging capabilities throughout the system
  - Improved error handling and user feedback mechanisms
  - Updated dependencies for better stability and performance

- 80213e6: fix widget metadata to load from the exported component
- Updated dependencies [80213e6]
  - @mcp-use/inspector@0.4.8
  - @mcp-use/cli@2.1.20

## 1.1.8-canary.1

### Patch Changes

- 370120e: ## Widget Integration & Server Enhancements
  - Enhanced widget integration capabilities in MCP server with improved handling
  - Streamlined widget HTML generation with comprehensive logging
  - Better server reliability and error handling for widget operations

  ## CLI Tunnel Support & Development Workflow
  - Added comprehensive tunnel support to CLI for seamless server exposure
  - Enhanced development workflow with tunnel integration capabilities
  - Disabled tunnel in dev mode for optimal Vite compatibility

  ## Inspector UI & User Experience Improvements
  - Enhanced inspector UI components with better tunnel URL handling
  - Improved user experience with updated dependencies and compatibility
  - Better visual feedback and error handling in inspector interface

  ## Technical Improvements
  - Enhanced logging capabilities throughout the system
  - Improved error handling and user feedback mechanisms
  - Updated dependencies for better stability and performance

- Updated dependencies [370120e]
  - @mcp-use/inspector@0.4.8-canary.1
  - @mcp-use/cli@2.1.20-canary.1

## 1.1.8-canary.0

### Patch Changes

- 3074165: fix widget metadata to load from the exported component
  - @mcp-use/cli@2.1.20-canary.0
  - @mcp-use/inspector@0.4.8-canary.0

## 1.1.7

### Patch Changes

- 3c87c42: ## Apps SDK widgets & Automatic Widget Registration

  ### Key Features Added

  #### Automatic UI Widget Registration
  - **Major Enhancement**: React components in `resources/` folder now auto-register as MCP tools and resources
  - No boilerplate needed, just export `widgetMetadata` with Zod schema
  - Automatically creates both MCP tool and `ui://widget/{name}` resource endpoints
  - Integration with existing manual registration patterns

  #### Template System Restructuring
  - Renamed `ui-resource` → `mcp-ui` for clarity
  - Consolidated `apps-sdk-demo` into streamlined `apps-sdk` template
  - Enhanced `starter` template as default with both MCP-UI and Apps SDK examples
  - Added comprehensive weather examples to all templates

  #### 📚 Documentation Enhancements
  - Complete rewrite of template documentation with feature comparison matrices
  - New "Automatic Widget Registration" section in ui-widgets.mdx
  - Updated quick start guides for all package managers (npm, pnpm, yarn)
  - Added practical weather widget implementation examples

- Updated dependencies [3c87c42]
  - @mcp-use/inspector@0.4.7
  - @mcp-use/cli@2.1.19

## 1.1.7-canary.0

### Patch Changes

- 6b8fdf2: ## Apps SDK widgets & Automatic Widget Registration

  ### Key Features Added

  #### Automatic UI Widget Registration
  - **Major Enhancement**: React components in `resources/` folder now auto-register as MCP tools and resources
  - No boilerplate needed, just export `widgetMetadata` with Zod schema
  - Automatically creates both MCP tool and `ui://widget/{name}` resource endpoints
  - Integration with existing manual registration patterns

  #### Template System Restructuring
  - Renamed `ui-resource` → `mcp-ui` for clarity
  - Consolidated `apps-sdk-demo` into streamlined `apps-sdk` template
  - Enhanced `starter` template as default with both MCP-UI and Apps SDK examples
  - Added comprehensive weather examples to all templates

  #### 📚 Documentation Enhancements
  - Complete rewrite of template documentation with feature comparison matrices
  - New "Automatic Widget Registration" section in ui-widgets.mdx
  - Updated quick start guides for all package managers (npm, pnpm, yarn)
  - Added practical weather widget implementation examples

- Updated dependencies [6b8fdf2]
  - @mcp-use/inspector@0.4.7-canary.0
  - @mcp-use/cli@2.1.19-canary.0

## 1.1.6

### Patch Changes

- 696b2e1: Fix Server cors issue
- 696b2e1: Test canary
- Updated dependencies [696b2e1]
- Updated dependencies [696b2e1]
- Updated dependencies [696b2e1]
- Updated dependencies [696b2e1]
- Updated dependencies [696b2e1]
- Updated dependencies [696b2e1]
  - @mcp-use/inspector@0.4.6

## 1.1.6-canary.1

### Patch Changes

- 60f20cb: Test canary
  - @mcp-use/inspector@0.4.6-canary.2

## 1.1.6-canary.0

### Patch Changes

- 6960f7f: Fix Server cors issue
  - @mcp-use/inspector@0.4.6-canary.0

## 1.1.5

### Patch Changes

- 6dcee78: Add starter template + remove ui template
- Updated dependencies [6dcee78]
  - @mcp-use/inspector@0.4.5

## 1.1.5-canary.0

### Patch Changes

- Updated dependencies [d397711]
  - @mcp-use/inspector@0.4.5-canary.0

## 1.1.4

### Patch Changes

- Updated dependencies [09d1e45]
- Updated dependencies [09d1e45]
  - @mcp-use/inspector@0.4.4

## 1.1.4-canary.0

### Patch Changes

- Updated dependencies [f11f846]
  - @mcp-use/inspector@0.4.4-canary.0

## 1.1.3

### Patch Changes

### Authentication and Connection

- **Enhanced OAuth Handling**: Extracted base URL (origin) for OAuth discovery in `onMcpAuthorization` and `useMcp` functions to ensure proper metadata retrieval
- **Improved Connection Robustness**: Enhanced connection handling by resetting the connecting flag for all terminal states, including `auth_redirect`, to allow for reconnections after authentication
- Improved logging for connection attempts with better debugging information

- Updated dependencies [4852465]
  - @mcp-use/inspector@0.4.3

## 1.1.3-canary.1

### Patch Changes

- cb60eef: fix inspector route
- Updated dependencies [0203a77]
- Updated dependencies [ebf1814]
  - @mcp-use/inspector@0.4.3-canary.1

## 1.1.3-canary.0

### Patch Changes

- d171bf7: feat/app-sdk
- Updated dependencies [d171bf7]
  - @mcp-use/inspector@0.4.3-canary.0

## 1.1.2

### Patch Changes

- abb7f52: ## Enhanced MCP Inspector with Auto-Connection and Multi-Server Support

  ### 🚀 New Features
  - **Auto-connection functionality**: Inspector now automatically connects to MCP servers on startup
  - **Multi-server support**: Enhanced support for connecting to multiple MCP servers simultaneously
  - **Client-side chat functionality**: New client-side chat implementation with improved message handling
  - **Resource handling**: Enhanced chat components with proper resource management
  - **Browser integration**: Improved browser-based MCP client with better connection handling

  ### 🔧 Improvements
  - **Streamlined routing**: Refactored server and client routing for better performance
  - **Enhanced connection handling**: Improved auto-connection logic and error handling
  - **Better UI components**: Updated Layout, ChatTab, and ToolsTab components
  - **Dependency updates**: Updated various dependencies for better compatibility

  ### 🐛 Fixes
  - Fixed connection handling in InspectorDashboard
  - Improved error messages in useMcp hook
  - Enhanced Layout component connection handling

  ### 📦 Technical Changes
  - Added new client-side chat hooks and components
  - Implemented shared routing and static file handling
  - Enhanced tool result rendering and display
  - Added browser-specific utilities and stubs
  - Updated Vite configuration for better development experience

- Updated dependencies [abb7f52]
  - @mcp-use/inspector@0.4.2

## 1.1.2-canary.0

### Patch Changes

- d52c050: ## Enhanced MCP Inspector with Auto-Connection and Multi-Server Support

  ### 🚀 New Features
  - **Auto-connection functionality**: Inspector now automatically connects to MCP servers on startup
  - **Multi-server support**: Enhanced support for connecting to multiple MCP servers simultaneously
  - **Client-side chat functionality**: New client-side chat implementation with improved message handling
  - **Resource handling**: Enhanced chat components with proper resource management
  - **Browser integration**: Improved browser-based MCP client with better connection handling

  ### 🔧 Improvements
  - **Streamlined routing**: Refactored server and client routing for better performance
  - **Enhanced connection handling**: Improved auto-connection logic and error handling
  - **Better UI components**: Updated Layout, ChatTab, and ToolsTab components
  - **Dependency updates**: Updated various dependencies for better compatibility

  ### 🐛 Fixes
  - Fixed connection handling in InspectorDashboard
  - Improved error messages in useMcp hook
  - Enhanced Layout component connection handling

  ### 📦 Technical Changes
  - Added new client-side chat hooks and components
  - Implemented shared routing and static file handling
  - Enhanced tool result rendering and display
  - Added browser-specific utilities and stubs
  - Updated Vite configuration for better development experience

- Updated dependencies [d52c050]
  - @mcp-use/inspector@0.4.2-canary.0

## 1.1.1

### Patch Changes

- 3670ed0: minor fixes
- 3670ed0: minor
- Updated dependencies [3670ed0]
- Updated dependencies [3670ed0]
  - @mcp-use/inspector@0.4.1

## 1.1.1-canary.1

### Patch Changes

- a571b5c: minor
- Updated dependencies [a571b5c]
  - @mcp-use/inspector@0.4.1-canary.1

## 1.1.1-canary.0

### Patch Changes

- 4ad9c7f: minor fixes
- Updated dependencies [4ad9c7f]
  - @mcp-use/inspector@0.4.1-canary.0

## 1.1.0

### Minor Changes

- 0f2b7f6: feat: Add OpenAI Apps SDK integration
  - Added new UI resource type for Apps SDK, allowing integration with OpenAI's platform
  - Enhanced MCP-UI adapter to handle Apps SDK metadata and structured content
  - Updated resource URI format to support `ui://widget/` scheme
  - Enhanced tool definition with Apps SDK-specific metadata
  - Ensure `_meta` field is at top level of resource object for Apps SDK compatibility
  - Added comprehensive test suite for Apps SDK resource creation
  - Updated type definitions to reflect new resource capabilities

  refactor: Improve compatibility
  - Renamed `fn` to `cb` in tool and prompt definitions for consistency.
  - Updated resource definitions to use `readCallback` instead of `fn`.
  - Adjusted related documentation and type definitions to reflect these changes.
  - Enhanced clarity in the MCP server's API by standardizing callback naming conventions.

### Patch Changes

- Updated dependencies [0f2b7f6]
  - @mcp-use/inspector@0.4.0

## 1.0.7

### Patch Changes

- fix: update to monorepo
- Updated dependencies
  - @mcp-use/inspector@0.3.11

## 1.0.6

### Patch Changes

- 36722a4: Introduced structured output in MCPAgent.streamEvents method, with polling status updates on structured output progress
  - @mcp-use/inspector@0.3.10

## 1.0.5

### Patch Changes

- 55dfebf: Add MCP-UI Resource Integration

  Add uiResource() method to McpServer for unified widget registration with MCP-UI compatibility.
  - Support three resource types: externalUrl (iframe), rawHtml (direct), remoteDom (scripted)
  - Automatic tool and resource generation with ui\_ prefix and ui://widget/ URIs
  - Props-to-parameters conversion with type safety
  - New uiresource template with examples
  - Inspector integration for UI resource rendering
  - Add @mcp-ui/server dependency
  - Complete test coverage
  - @mcp-use/inspector@0.3.9

## 1.0.4

### Patch Changes

- fix: support multiple clients per server
- Updated dependencies
  - @mcp-use/inspector@0.3.8

## 1.0.3

### Patch Changes

- fix: export server from mcp-use/server due to edge runtime
- Updated dependencies
  - @mcp-use/inspector@0.3.7

## 1.0.2

### Patch Changes

- 3bd613e: Non blocking structured output process
  - @mcp-use/inspector@0.3.6

## 1.0.1

### Patch Changes

- 1310533: add MCP server feature to mcp-use + add mcp-use inspector + add mcp-use cli build and deployment tool + add create-mcp-use-app for scaffolding mcp-use apps
- Updated dependencies [1310533]
  - @mcp-use/inspector@0.3.3

## 1.0.0

### Patch Changes

- Updated dependencies
  - @mcp-use/inspector@0.3.0

## 0.3.0

### Minor Changes

- db54528: Added useMcpTools React hook for easier tool management

  ````

  ## Step 5: Commit Everything

  ```bash
  git add .
  git commit -m "feat: add useMcpTools React hook"
  git push origin feat/add-use-mcp-tools-hook
  ````

  ## Step 6: Create Pull Request

  Create a PR on GitHub with:

  **Title:** `feat: add useMcpTools React hook`

  **Description:**

  ```markdown
  ## What

  Adds a new `useMcpTools()` React hook for managing MCP tools.

  ## Why

  Simplifies tool management in React applications.

  ## Changes

  - Added `useMcpTools` hook in `packages/mcp-use/src/react/hooks/`
  - Exported from `mcp-use/react`
  - Added tests for the new hook

  ## Changeset

  ✅ Changeset included (minor bump for mcp-use)
  ```

  ## Step 7: Review & Merge

  After review and approval:

  ```bash
  # Merge the PR to main
  ```

  ## Step 8: Release (Maintainer Task)

  On the `main` branch after merge:

  ```bash
  # Switch to main and pull
  git checkout main
  git pull origin main

  # Check what will be versioned
  pnpm version:check
  ```

  **Output:**

  ```
  🦋  info Packages to be bumped at minor:
  🦋  - mcp-use (0.2.0 → 0.3.0)
  🦋
  🦋  info Packages to be bumped at patch:
  🦋  - @mcp-use/cli (2.0.1 → 2.0.2) ← depends on mcp-use
  🦋  - @mcp-use/inspector (0.1.0 → 0.1.1) ← depends on mcp-use
  ```

  ```bash
  # Apply the version changes
  pnpm version
  ```

  **This will:**
  1. Update `mcp-use/package.json` to `0.3.0`
  2. Update dependent packages (`@mcp-use/cli`, `@mcp-use/inspector`) with patch bumps
  3. Generate/update `CHANGELOG.md` in each package:

  ```markdown
  # mcp-use

  ## 0.3.0

  ### Minor Changes

  - abc1234: Added useMcpTools React hook for easier tool management

  ## 0.2.0

  ...
  ```

  4. Delete `.changeset/random-name-here.md`
  5. Update `pnpm-lock.yaml`

  ```bash
  # Review the changes
  git diff

  # Commit the version changes
  git add .
  git commit -m "chore: version packages"
  git push origin main
  ```

  ## Step 9: Publish to npm

  ```bash
  # Build everything
  pnpm build

  # Publish to npm
  pnpm release
  ```

  **This will:**
  1. Build all packages with tsup
  2. Run `changeset publish`
  3. Publish `mcp-use@0.3.0` to npm
  4. Publish `@mcp-use/cli@2.0.2` to npm
  5. Publish `@mcp-use/inspector@0.1.1` to npm
  6. Create git tags for each version

  **Output:**

  ```
  🦋  info npm info mcp-use
  🦋  info npm publish mcp-use@0.3.0
  🦋  success packages published successfully:
  🦋  - mcp-use@0.3.0
  🦋  - @mcp-use/cli@2.0.2
  🦋  - @mcp-use/inspector@0.1.1
  ```

  ```bash
  # Push tags
  git push --follow-tags
  ```

  ## Step 10: Verify Publication

  ```bash
  # Check on npm
  npm view mcp-use version
  # Output: 0.3.0

  npm view @mcp-use/cli version
  # Output: 2.0.2

  # Or visit:
  # https://www.npmjs.com/package/mcp-use
  # https://www.npmjs.com/package/@mcp-use/cli
  # https://www.npmjs.com/package/@mcp-use/inspector
  # https://www.npmjs.com/package/create-mcp-use-app
  ```

  ## 📊 Timeline Summary
  1. **Day 1**: Developer creates feature + changeset, pushes PR
  2. **Day 2-3**: Code review, changes, approval
  3. **Day 3**: PR merged to main
  4. **Day 3**: Maintainer runs `pnpm version` → Version PR created
  5. **Day 3**: Maintainer reviews and merges Version PR
  6. **Day 3**: Automated workflow publishes to npm
  7. **Done!** ✨

  ## 🤖 Automated Workflow (GitHub Actions)

  With the included GitHub Actions workflows:
  1. **Developer** creates PR with changeset
  2. **CI** validates build, tests, lint
  3. **Merge** to main triggers release workflow
  4. **Changesets Action** creates "Version Packages" PR automatically
  5. **Maintainer** reviews and merges Version PR
  6. **Action** automatically publishes to npm
  7. **Done!** No manual commands needed

  ## 🎓 Learning Resources
  - **Quick Reference**: See `CHANGESET_WORKFLOW.md`
  - **Detailed Guide**: See `VERSIONING.md`
  - **Changesets Docs**: https://github.com/changesets/changesets
  - **Semantic Versioning**: https://semver.org/

  ## 💡 Tips
  - **Batch related changes** - Create one changeset for related changes across packages
  - **Clear summaries** - Write what users need to know, not implementation details
  - **Link to PRs** - Reference PR numbers in changeset summaries
  - **Test before release** - Always build and test before publishing
  - **Coordinate major bumps** - Plan breaking changes with the team

  ***

  **Ready to get started?**

  ```bash
  # Make some changes, then:
  pnpm changeset
  ```

### Patch Changes

- db54528: Migrated build system from tsc to tsup for faster builds (10-100x improvement) with dual CJS/ESM output support. This is an internal change that improves build performance without affecting the public API.
- Updated dependencies [db54528]
  - @mcp-use/inspector@0.2.1
