mirror of
https://github.com/mcp-use/mcp-use.git
synced 2026-09-14 18:06:01 +08:00
mcp-use@2.4.2
9 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c6043e4d05 |
fix: use hosted WebSocket tunnel relay (#2057)
* fix: use hosted WebSocket tunnel relay * fix: reattach tunnels across relay deploys * fix: negotiate tunnel keepalive support * refactor: remove spinner state and improve loading indicators in ViewRenderer and MCP Apps components |
||
|
|
8259292618 |
Enable public tunnels for production start (#1970)
* feat(cli): add tunnel support to v2 start * chore: add start tunnel changeset |
||
|
|
b5354b5285 | fix(docs): update Inspector URL references to /mcp/inspector | ||
|
|
f25964142b |
Enhance MCP App Development Experience
- Updated documentation to clarify the use of `mcp-use dev --tunnel` and `mcp-use start --tunnel`, including automatic tunnel restart on registration drop. - Refined TypeScript API references for `allowedOrigins` and `cors` configurations to improve clarity on behavior. - Transitioned view-related files from `resources/` to `views/`, aligning with new authoring standards. - Introduced a new `mcp-env.d.ts` for type definitions and simplified favicon selection logic. - Enhanced the `create-mcp-use-app` template to support views, including a new fruit search example with improved UI components. - Added mock OpenAI file APIs for local development environments to facilitate testing. - Updated package.json descriptions and keywords for better clarity and alignment with project goals. |
||
|
|
68afda5885 |
docs(typescript): review and rewrite TypeScript docs (MCP-2466) (#1780)
* docs: remove stale feedback block and orphaned anchor from docs.json * chore(docs): make Typescript more prominent * chore(docs): Update `welcome.mdx` * docs: rewrite TypeScript quickstart and welcome pages Refocus the quickstart on create-mcp-use-app (scaffold, run, and deploy a first MCP server) and drop the agent/client/server primer table and diagram. Convert the welcome page's server + widget example from Tabs to CodeGroup and tighten the intro wording. * docs: remove stale server templates page and fix its references Delete the typescript/server/templates page and repoint the home templates tip to the quickstart, which now covers create-mcp-use-app. * docs(typescript): fix dead example links to real example paths The 'see a full example' links pointed at GitHub folders that 404 or contain only a README. Corrected to the real runnable examples under libraries/typescript/packages/mcp-use/examples/, verified against origin/main (incl. matching cd commands): - installation: examples/server -> packages/.../examples/server - client-configuration: a .py link -> real TS multi-server example - code-mode: examples/client/* -> examples/agent/code-mode/* - elicitation, sampling, notifications: server/X -> server/features/X - supabase: server/supabase -> server/deployment/supabase - clerk: restore missing packages/mcp-use/ path segment Quickstart links were already fixed by the quickstart rewrite (e6903716). Part of the docs audit (MCP-2466). * docs(typescript): rewrite Agent and Client introduction pages Rewrite the Agent and Client intro pages to be task-oriented and scannable: concise feature lists with cross-links, runnable quick-start examples, and added API reference sections. Drop stale CodeSandbox embeds and outdated model names. * docs(typescript): fix MCPServer class name casing in server reference The API Reference heading, prose, and class signature used McpServer; the real SDK export is MCPServer. Corrected all three occurrences in server/index.mdx. * docs: add redirect for bare /typescript/server path Routes the bare /typescript/server path to its index page now that the server section has been restructured. Claude-Session: https://claude.ai/code/session_015uioJjKTAZXGQpbXHUHZWp * docs(typescript): fix broken code examples across MCP Server & Apps section Fix all 102 confirmed code defects found in the MCP Server & MCP Apps documentation audit (47 pages, 401 code blocks), verified against the mcp-use@1.32 SDK source. The recurring patterns that made copy-pasted examples fail to compile or run are now corrected everywhere they appeared: - server.start() -> await server.listen() (no start() method exists) - bare-object tool returns wrapped in object()/text() response helpers; catch blocks renamed so they no longer shadow the error() helper - prompt messages use role:"user" with typed { type:"text" } content instead of the invalid role:"system" + bare-string shape - auth reads ctx.auth.user.userId (not ctx.auth.userId); user fields live under ctx.auth.user, scopes/permissions stay top-level - security: remove verifyJwt: process.env.NODE_ENV === 'production' from all six OAuth provider pages (off-prod it skips signature verification and accepts forged tokens); rely on the secure default, with a warning never to disable it - correct import subpaths: Logger/MCPClient from mcp-use, response helpers and server symbols from mcp-use/server, MCPClient as BrowserMCPClient from mcp-use/browser; drop the unexported getMcpAppsBridge - useWidget generics use the real <TProps, TState, TOutput, ...> order; remove the non-existent notifyIntrinsicHeight (auto-size via McpUseProvider) - fix the deployment URL to <id>.run.mcp-use.com/mcp, add missing z/helper imports, add the --branch/--dockerfile CLI options, and clean up em dashes and bare/malformed code fences Each page was fixed and then independently re-verified against the SDK source, with a repo-wide pattern sweep confirming no instances remain. Structural IA changes (moving widget-components to /react/, orphan redirects) are intentionally deferred to the docs rewrite. * docs(typescript): restructure MCP Server & MCP Apps IA Promote MCP Apps to its own top-level section in the TypeScript SDK Docs tab and move the 9 React widget-component pages out of /server/widget-components/ into /typescript/react/. - Move 9 React component pages to typescript/react/ (git renames) with 9 redirects - Promote MCP Apps to a top-level group (Overview pages + React subgroup) - Remove the duplicate MCP Apps group from the Home product nav; rehome guides/chatgpt-apps-flow under MCP Apps so it no longer orphans - Move cli-reference out of MCP Server into a new Tooling group - Relocate response-helpers -> Core Components, openapi -> Advanced Features, nextjs-drop-in -> Deployment - Repoint all widget-components links to /typescript/react/ - Fix 3 broken anchor links (inspector CLI env var, mcp-apps metadata, auth providers) Structure-only change; no page content rewrites. Refs MCP-2466. * docs: refresh TypeScript server app docs * docs: add TypeScript API reference * docs: streamline TypeScript server navigation * docs: rewrite core TypeScript server guides * docs: rewrite advanced TypeScript server guides * docs: rewrite TypeScript server OAuth guides * docs: rewrite TypeScript server session storage guides * docs: rewrite MCP Apps section * docs: add TypeScript MCP client API reference * docs: add TypeScript MCP agent API reference * docs: reorder TypeScript API reference nav * docs: reorganize TypeScript tooling nav * docs: rewrite inspector guides * docs: rewrite MCP server tunneling guide * docs: rewrite CLI client and reference docs * docs: finalize TypeScript documentation rewrite * docs: move inspector updates under get started * Fix Mintlify validation errors * Fix Mintlify broken links * docs: update Manufact Cloud deployment guide * chore: retrigger Mintlify docs preview * Fix MDX comment syntax on home page * docs: rework TypeScript server examples * docs: fix server docs links * docs: restore SDK links in home sidebar * docs: move SDK links to end of home sidebar |
||
|
|
5a73b41355 |
Canary (#1062)
* fix(auth): resolve OAuth flow for WorkOS across client, server, and inspector (#1058) * add proactive token refresh and credential invalidation to BrowserOAuthClientProvider * fix OAuth token refresh by removing static Authorization header from transport config * add changeset * update refresh to use official mcp sdk methods * update workos to always use proxy method since its an external provider * update autoConnect to always include proxyAddress even without bearer tokens * run format * update changeset * chore: update pnpm-lock.yaml after rebase onto main --------- Co-authored-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * chore: enter canary prerelease mode * chore(typescript): version packages (canary) * improvement(auth): accept full AuthKit domain in WorkOS subdomain config (#1057) * change subdomain to include authkit.app * add changeset * chore(typescript): version packages (canary) * Fix/inspector/first render (#1060) * fix(tsconfig): include .mcp-use directory in TypeScript configuration for starter and blank templates * fix(package.json): update postinstall script to remove fallback for generate-types in mcp-apps template * fix(MessageList): enhance tool metadata retrieval by normalizing tool names for consistency with API responses * feat(inspector): enhance MCPApps components with required props handling and improved UI feedback - Added `requiredProps` to `MCPAppsDebugControls` to auto-open a popover when required props are missing, providing users with a clear indication of necessary inputs. - Updated `MCPAppsRenderer` and `MessageList` to support cancellation state, allowing for better user experience during tool execution. - Enhanced `PropsConfigDialog` to detect and display required props from widget schemas, improving the configuration process. - Introduced utility functions in `usePropsLLM` for better JSON extraction from LLM responses, ensuring accurate prop generation. * feat(inspector): enhance IframeConsole with expandable log entries and improved log formatting - Added expandable functionality to log entries, allowing users to view detailed logs on click. - Introduced a copy button for logs, enabling easy copying of log content to the clipboard. - Improved log formatting and display, including inline previews and better handling of log levels. - Updated UI elements with new icons and styles for a more intuitive user experience. * feat(inspector): add clientOptions to InspectorDashboard for enhanced capabilities - Introduced `clientOptions` with `capabilities` to support new extensions in the InspectorDashboard component. - This enhancement allows for better integration with the MCP application protocol, improving overall functionality. * feat(inspector): refine Layout component by updating validTabs and adding clientOptions - Updated the `validTabs` array in the Layout component to remove the "playground" tab. - Added `clientOptions` with specific capabilities to enhance integration with MCP application protocol, improving functionality. * feat(types): enhance type definitions with detailed documentation and examples - Updated `MCPServerClass` tool and prompt definitions to include more specific type constraints for better type safety. - Enhanced `ServerConfig`, `InputDefinition`, and various resource and tool interfaces with comprehensive JSDoc comments, including examples for clarity. - Improved overall type definitions for widgets and tools, ensuring better integration and usability within the MCP framework. - Added missing descriptions and examples to several interfaces, improving developer experience and documentation quality. * feat(mcp-apps): update server and widget integration for enhanced functionality - Refactored the MCP server setup to improve integration with MCP Apps, including updated descriptions and documentation links. - Introduced a new search tool for fruits, allowing users to filter results and display them in a visual widget. - Enhanced the product search result widget with improved loading states and detail views for selected fruits. - Removed unused dependencies and components to streamline the project structure. - Updated README files to reflect changes and provide clearer guidance for users. * feat(inspector): enhance MCPAppsRenderer and ui-resource-registration for improved widget re-initialization and metadata handling - Added logic in MCPAppsRenderer to re-read `prefersBorder` from the server upon widget re-initialization, improving responsiveness to metadata changes. - Implemented detection of widget re-initialization to ensure tool input is correctly sent to new widget instances after events like HMR page reloads. - Refactored resource registration in ui-resource-registration to dynamically resolve the latest enriched definitions, ensuring accurate metadata is used during HMR updates. - Updated read callbacks to handle dynamic URIs and maintain consistency in resource handling, enhancing overall widget functionality. * feat(widget): enhance useWidget hook and documentation for improved functionality - Updated the `useWidget` hook to support additional generic parameters for better type safety and flexibility. - Introduced new props for real-time streaming and external link handling, enhancing widget capabilities. - Improved documentation in SKILL.md and ui-widgets.mdx to clarify usage of new features, including partial argument streaming and external navigation. - Removed deprecated dependencies from package.json files across templates to streamline project setup. - Enhanced various components to utilize new props and improve user experience during tool interactions. * feat(tsconfig): enhance TypeScript configuration and widget functionality - Updated TypeScript configurations across multiple templates to include incremental builds and build info file paths, improving build performance and efficiency. - Modified the `useWidget` hook to streamline state management and enhance type safety by refining generic parameters. - Simplified the `ProductSearchResult` component by reducing unnecessary generic parameters, improving code clarity and maintainability. - Adjusted helper functions to ensure consistent type handling across the widget framework. * feat(update-check): implement update notification for mcp-use CLI - Added a new utility to check for updates of the mcp-use package and notify users if a newer version is available. - Integrated the update check into the CLI's pre-action hook, ensuring users are informed before executing commands. - Created a caching mechanism to minimize unnecessary network requests and improve performance. * feat(inspector): add file utilities for client file management - Introduced a new `file-utils.ts` module containing functions to determine content types based on file extensions, check for the existence of client files, and retrieve the client distribution path. - Updated the middleware to utilize these new utilities for improved handling of client files, including warnings when files are not found. * feat(inspector): update TypeScript and MCPApps components for improved functionality - Added TypeScript version 5.9.3 to the pnpm-lock.yaml for enhanced type safety and features. - Enhanced MCPAppsDebugControls to prevent auto-application of localStorage presets in tool context. - Refactored MCPAppsRenderer to optimize state management and prevent unnecessary re-renders, including the use of refs for tool input and output. - Improved OpenAIComponentRenderer with better state handling and batching of updates to prevent double renders. - Updated ToolsTab to streamline resource pre-fetching and reduce unnecessary renders during tool execution. - Enhanced ToolResultRenderer and ToolResultDisplay for better memoization and performance. - Introduced a new RelativeTimeDisplay component to manage time updates without affecting parent re-renders. * chore: update pnpm-lock.yaml after rebase onto main Co-authored-by: Cursor <cursoragent@cursor.com> * fix: update postinstall script in package.json templates to prevent failure on type generation * Potential fix for code scanning alert no. 81: Uncontrolled data used in path expression Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * feat(inspector): add HTML escaping function for safe user input handling - Introduced a new `escapeHtml` function to sanitize user input in responses, preventing potential XSS vulnerabilities. - Updated the CDN server response to utilize the `escapeHtml` function when returning 404 error messages. * chore: update TypeScript version to 5.9.3 across multiple packages and enhance component functionality - Added TypeScript version 5.9.3 to pnpm-lock.yaml and various package.json files for improved type safety. - Enhanced OpenAIComponentRenderer to optimize state updates and prevent redundant dispatches. - Updated ResourceResultDisplay to include a data-testid for better testing capabilities. - Improved debugging tools to scope props dialog interactions to the correct resource widget preview. * format * refactor(tests): update widget integration and data flow tests to align with SEP-1865 specifications - Adjusted tests to verify that widget metadata is now located on tool definitions rather than in tool call results, as per SEP-1865. - Updated assertions to check for structured content in results instead of relying on metadata properties. - Enhanced test coverage for tool invocation and output structure to ensure compliance with new standards. * package * test(widget-helper): enhance integration tests for tool metadata validation - Updated assertions to ensure manual and auto tools are defined before checking metadata properties. - Improved handling of auto tool metadata to account for potential absence of _meta. - Enhanced regex checks for output templates to ensure proper formatting and compliance with widget standards. * changeset --------- Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * chore(typescript): version packages (canary) * feat(inspector): enhance MCPApps components and improve widget handling (#1063) * feat(inspector): enhance MCPApps components and improve widget handling - Added a new test_app configuration in pnpm-lock.yaml with updated dependencies for better development support. - Updated InspectorDashboard to set a default MCP_URL when not provided. - Refined ProductSearchResult and CarouselItem components to use a consistent text-danger class for better styling. - Improved error handling in InspectorDashboard for connection retries. - Streamlined MCPAppsRenderer to enhance widget re-initialization and metadata handling. - Removed deprecated dev widget endpoints and related logic to simplify the codebase. - Enhanced FormattedContentDisplay to allow toggling between formatted and plain text for better user experience. - Updated PropsConfigDialog and ResourceResultDisplay to utilize standardized metadata paths for improved prop detection. This commit focuses on enhancing the overall functionality and user experience of the MCPApps components and related widgets. * feat(inspector): enhance ToolsTab and ToolExecutionPanel for improved field handling - Introduced state management for tracking fields that should be sent as empty, allowing for explicit control over empty values in tool arguments. - Updated ToolsTab to initialize and manage sets of fields, enhancing the handling of tool input schemas. - Enhanced ToolExecutionPanel to accept and utilize the new payload structure, ensuring accurate representation of data sent during tool execution. - Added toggle functionality in ToolInputForm for explicitly sending empty objects and arrays, improving user experience and flexibility in input handling. This commit focuses on refining the input handling process within the inspector, providing users with better control over the data they send. * feat(widget): enhance useWidget hook to unwrap CallToolResult envelope - Updated the useWidget hook to unwrap the CallToolResult envelope when the OpenAI provider is used, allowing for direct access to structured content. - Improved handling of toolOutput to ensure compatibility with hosts that pass the full tool-result parameters. - Enhanced documentation comments to clarify the changes and improve understanding of the new logic. This commit focuses on refining the output handling within the useWidget hook, improving type safety and usability for developers. * feat(inspector): enhance CSP handling and widget re-execution logic - Updated the Inspector components to improve handling of Content Security Policy (CSP) settings, ensuring that widget metadata is correctly enriched with CSP directives. - Introduced logic to re-execute widgets when CSP mode changes, allowing for dynamic updates to the widget's execution context. - Enhanced the MCPAppsDebugControls and MCPAppsRenderer to better manage CSP violations and provide clearer user feedback on required props. - Refactored the PropsConfigDialog to utilize standardized metadata paths for improved prop detection and configuration. This commit focuses on refining the CSP management and widget lifecycle within the inspector, enhancing overall functionality and user experience. * refactor(tests): update weather-display widget tests for props handling - Modified tests in `aaa-ui-widgets.test.ts` to check for visibility of props wall text instead of iframe visibility, ensuring that the widget's required props are correctly validated. - Removed unnecessary iframe visibility checks in `debugger-tools.test.ts` to streamline the test flow and focus on props configuration. - Updated `navigateToResourcesAndSelectWeather` helper function to wait for props wall text, enhancing clarity on widget requirements during testing. This commit enhances the accuracy of widget tests by focusing on required props visibility, improving overall test reliability. * chore(typescript): version packages (canary) * refactor(docs): update documentation for MCP Apps and enhance content security policy (#1067) * refactor(docs): update documentation for MCP Apps and enhance content security policy - Changed "UI Widgets" group to "MCP Apps" in the documentation structure. - Added a new section on Content Security Policy (CSP) for MCP Apps, detailing configuration and automatic settings. - Updated references from "mcp-use Cloud" to "Manufact Cloud" across various documents for consistency. - Introduced a deprecation notice for the Apps SDK in the ChatGPT Apps flow guide. - Enhanced the inspector documentation to include CSP configuration and debugging tips. - Updated various SVG icons to a consistent color scheme and added a new Keycloak icon. - Refined CLI reference and quickstart guides to reflect changes in deployment terminology and commands. * refactor(inspector): enhance MCPApps components and improve widget handling - Updated Inspector components to refine handling of Content Security Policy (CSP) settings and widget re-execution logic. - Improved error handling in InspectorDashboard and streamlined MCPAppsRenderer for better widget re-initialization. - Enhanced PropsConfigDialog and ResourceResultDisplay to utilize standardized metadata paths for improved prop detection. - Updated various components to ensure better user experience and functionality, including state management for tool input schemas and improved logging in IframeConsole. * chore(typescript): version packages (canary) * refactor(typescript): improve create-mcp-use-app CLI prompts, install order, branding, and project structure output (#1068) * refactor: improve create-mcp-use-app CLI prompts, install order, branding, and project structure output Co-authored-by: Cursor <cursoragent@cursor.com> * add changeset * run format --------- Co-authored-by: Cursor <cursoragent@cursor.com> * chore(typescript): version packages (canary) --------- Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: Joaquin Coromina <75667013+bjoaquinc@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> |
||
|
|
9a8cb3a85d |
Canary (#714)
* Cli/manage deployments (#710) * feat(cli): add deployments command and enhance API client with deployment management features - Introduced a new `createDeploymentsCommand` for managing deployments in the CLI. - Enhanced `McpUseAPI` with methods for listing, updating, deleting, and retrieving logs for deployments. - Added a utility function to format date strings as relative time for better user experience in CLI outputs. * feat(cli): add option to force new deployment creation - Introduced a `--new` option in the CLI to allow users to create a new deployment instead of reusing an existing linked deployment. - Enhanced the `deployCommand` to check for existing deployments and handle redeployment or new creation based on the `--new` flag. - Updated the `McpUseAPI` to support redeploying with file uploads, improving deployment management capabilities. * feat(cli): add environment variable support for deployment - Introduced `--env` and `--env-file` options in the CLI to allow users to specify environment variables for deployments. - Implemented functions to parse environment variables from both command-line arguments and `.env` files, enhancing deployment configuration flexibility. - Updated `deployCommand` to utilize the new environment variable handling, improving deployment management capabilities. * feat(cli): sort deployments by creation date in list command - Enhanced the `listDeploymentsCommand` to sort deployments by their creation date, displaying the newest deployments first. - Updated console output to reflect the count of sorted deployments, improving user experience when viewing deployment lists. * chore: enter canary prerelease mode * chore(typescript): version packages (canary) * Docs/google/deployment (#715) * feat(docs): add new guide for Google Run deployment in documentation - Included a new page for "guides/google_run" in the documentation structure to enhance resource accessibility for users. - Updated the existing deployment pages to maintain consistency and improve navigation within the documentation. * fix(tests): update widget data flow tests to handle optional chaining for content text access - Modified test assertions in `widget-data-flow.test.ts` to use optional chaining when accessing the `text` property of the result content, ensuring robustness against potential undefined values. * feat(cli): enhance port configuration logic to prioritize command line flags over environment variables - Updated the port handling in the CLI to check for explicit command line flags (`--port` or `-p`) before falling back to environment variables or default values. This change improves user control over the server's port configuration. * refactor(cli): improve error handling in port configuration logic - Enhanced error handling in the CLI's port configuration to provide clearer feedback when invalid port values are specified. This change aims to improve user experience by preventing silent failures and guiding users towards valid configurations. * chore(typescript): version packages (canary) * chore: update documentation and dependencies - Removed the zoo MCP server graphic from the Google deployment documentation for a cleaner presentation. - Updated links in the mcp-use documentation to ensure correct navigation paths. - Upgraded the Zod dependency from version 4.1.13 to 4.2.0 across package.json and pnpm-lock.yaml for improved schema validation. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> |
||
|
|
6ec11cdae2 |
Canary (#617)
* Fix/server/reafctor complete (#616) * feat: add MCP Conformance Test Servers for Python and TypeScript (#605) * chore(deps): bump express from 5.1.0 to 5.2.0 in /libraries/typescript (#602) * chore(deps): bump express from 5.1.0 to 5.2.0 in /libraries/typescript Bumps [express](https://github.com/expressjs/express) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: express dependency-version: 5.2.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * chore: add changeset for dependabot updates * Delete libraries/typescript/.changeset/dependabot-e19bd45.md Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * chore: add changeset for dependabot updates --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * feat: add MCP Conformance Test Servers for Python and TypeScript - Introduced a new GitHub Actions workflow for running conformance tests on both Python and TypeScript servers. - Implemented a Python conformance server that supports various MCP features and tools. - Developed a TypeScript conformance server with similar functionality, including tools and resources. - Added necessary configuration files for TypeScript server setup, including package.json and tsconfig.json. - Updated pnpm-lock.yaml to include dependencies for the new conformance server. This commit enhances the testing framework by providing dedicated servers for conformance testing, ensuring better validation of MCP features. * feat: enhance conformance workflow with conditional inputs - Added workflow_dispatch inputs to allow running only Python or TypeScript conformance tests. - Updated job conditions to skip unnecessary tests based on the selected input. - Modified the conformance summary job to ensure it does not run if cancelled. This update improves flexibility in running conformance tests, enabling targeted testing based on user input. * feat: add PR comment with conformance results and remove ext-apps * feat: show individual test results as columns in PR comment * feat: simplify conformance PR comment table * feat: add conformance comparison with main and canary branches - Fix test name parsing to remove ': X passed, Y failed' suffix - Fetch baseline results from main and canary branches - Show comparison columns (vs Main, vs Canary) with color-coded indicators - Show +1/-1 on individual tests that changed from baseline - Use 🟢 for improvements, 🔴 for regressions, ⚪ for no change, 🆕 for new * feat: prevent test name line breaks and add MCP icon - Use non-breaking hyphens (‑) in test headers to prevent wrapping - Replace microscope emoji with MCP SVG icon in PR comments * fix: use picture element for MCP icon with dark/light mode support * feat: display MCP icon inline with heading with gap --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: enter canary prerelease mode * chore(typescript): version packages (canary) * Feature/mcp 924 implement tool elicitation support in typescript sdk tools (#606) * chore(deps): bump express from 5.1.0 to 5.2.0 in /libraries/typescript (#602) * chore(deps): bump express from 5.1.0 to 5.2.0 in /libraries/typescript Bumps [express](https://github.com/expressjs/express) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: express dependency-version: 5.2.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * chore: add changeset for dependabot updates * Delete libraries/typescript/.changeset/dependabot-e19bd45.md Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * chore: add changeset for dependabot updates --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * chore: enter canary prerelease mode * feat(docs): add elicitation feature documentation and update client structure - Introduced new documentation for the elicitation feature, detailing both form and URL modes for user input requests. - Updated `docs.json` to include a new page for elicitation. - Enhanced the `MCPClient` and related connectors to support elicitation callbacks, allowing servers to request additional user information. - Implemented elicitation handling in various connectors (HTTP, Stdio) and updated the server context to support elicitation requests. - Added examples for using elicitation in React components and TypeScript. * feat: enhance elicitation feature documentation and server-side validation - Updated documentation to clarify server-side validation with mcp-use when using Zod schemas. - Added custom error types for elicitation validation in the mcp-use library. - Improved MCPClient to support elicitation callbacks for better user interaction. - Refactored elicitation ID generation to use UUID for uniqueness. - Enhanced error handling in the server to throw specific validation errors. * feat: add Zod dependency and implement elicitation tool in conformance server - Updated .gitignore to exclude conformance test results. - Added Zod as a dependency in the conformance package. - Implemented a new elicitation tool in the conformance server, allowing for user input with validation using Zod schemas. - Updated server feature list to include the new elicitation tool. * feat: add elicitation tool with default values in conformance server - Introduced a new elicitation tool that utilizes default values for various primitive types as per SEP-1034. - Enhanced the server's ability to handle user input with validation using Zod schemas. - Updated the server feature list to include the new elicitation tool. * fix: resolve pre.json conflict with canary - accept newer versions * chore: remove ELICITATION_IMPLEMENTATION.md and ext-apps from tracking --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(typescript): version packages (canary) * fix: update elicitation example server paths and enhance documentation (#608) - Updated paths in documentation and examples to reflect the new `examples/server/elicitation/` structure, replacing the previous `examples/server/elicitation-test/`. - Enhanced the elicitation feature documentation to clarify usage and examples. - Removed deprecated example files related to the old elicitation test structure. * chore(typescript): version packages (canary) * chore(typescript): update package versions to patch for mcp-use and inspector * Fix/server/json response (#609) * feat: update dependencies and enhance server functionality - Added new dependencies '@openai/apps-sdk-ui' and '@tanstack/react-query' to the starter template and test app. - Updated the pnpm-lock.yaml to reflect the new dependencies and their versions. - Modified mcp-server.ts to enable JSON response for SSE streaming. - Refactored createExternalUrlResource, createRawHtmlResource, and createRemoteDomResource functions to return promises for better async handling. * refactor: update create-mcp-use-app package to use React and Ink components - Changed the build script to compile TypeScript files with JSX support. - Replaced Inquirer with Ink components for interactive CLI prompts. - Removed the old index.ts file, transitioning to a more modern React-based approach. - Updated package dependencies to include React and Ink, ensuring compatibility with the new structure. - Enhanced the TypeScript configuration to support JSX. * chore(typescript): version packages (canary) * chore(typescript): update mcp-use and inspector versions to minor for elicitation support * refactor(typescript): clean up mcp-use package structure and enhance type exports - Removed deprecated '@mcp-use/cli' and 'tsx' from devDependencies in package.json and pnpm-lock.yaml. - Reorganized type exports in mcp-server.ts to improve clarity and accessibility of ToolContext-related types. - Refactored logging.ts to utilize a centralized getEnv function for environment variable access. - Updated imports in various files to reflect the new structure and removed unused code. - Deleted the mcp-ui-adapter.ts file as it was no longer needed. * feat(typescript): enhance mcp-use package with new dependencies and refactor server endpoints - Added 'express' as a dependency in package.json and updated its version to 5.2.1. - Introduced new dependencies for examples in the mcp-use package, including '@openai/apps-sdk-ui', '@tanstack/react-query', and others. - Refactored server endpoint handling by consolidating request/response management and removing deprecated handlers. - Improved logging functionality with a new truncate method for better JSON output. - Cleaned up unused code and removed legacy endpoint files to streamline the package structure. * feat(mcp-server): enhance session handling with context-aware tool registration - Introduced context enhancement for tool handlers in the MCP server to support session-specific logic. - Added utility functions for session context management and improved message creation within session scope. - Refactored tool registration to wrap handlers with context-aware logic, enabling better handling of request metadata and notifications. * feat(mcp-use): update @modelcontextprotocol/sdk version and refactor server handling - Updated the @modelcontextprotocol/sdk dependency to version 1209 in package.json and pnpm-lock.yaml. - Adjusted the server port in the elicitation example from 3002 to 3000 for consistency. - Enhanced the MCP server's session handling to follow the official SDK pattern, ensuring each session has its own transport and server instance. - Refactored the mountMcp function to utilize FetchStreamableHTTPServerTransport, improving bidirectional communication and simplifying request handling. - Cleaned up deprecated Express-like request/response handling, streamlining the server's architecture. * feat(mcp-server): integrate ResourceTemplate and refactor resource registration - Imported ResourceTemplate from the SDK to enhance resource handling. - Updated resource registration to use readCallback instead of cb for improved clarity. - Created ResourceTemplate instances and associated metadata during resource registration, streamlining the process and ensuring better integration with the SDK. * refactor(mcp-use): streamline server examples and update dependencies - Removed deprecated '@mcp-use/cli' and 'tsx' from devDependencies in package.json and pnpm-lock.yaml. - Refactored server examples to utilize new response helpers for consistency and clarity. - Updated the MCP server examples to improve structure and remove unnecessary code. - Enhanced the resource and prompt registration to support new callback patterns, ensuring better integration with the SDK. - Cleaned up unused files related to elicitation tests, improving overall package organization. * feat(mcp-use): enhance server tools and improve type handling - Added new server tools with optional message parameters, providing default values for better usability. - Refactored server example files to streamline tool definitions and improve clarity. - Updated type exports to include new utility types for handling optional fields in Zod schemas, enhancing type safety and flexibility in callbacks. - Improved server initialization by removing hardcoded port values, allowing for dynamic port assignment. - Cleaned up unnecessary console logs and comments to enhance code readability. * refactor(mcp-use): enhance context handling in server tools and resource registration - Removed redundant tool definitions in server examples to streamline code. - Improved type handling by introducing EnhancedPromptContext and EnhancedResourceContext for better access to request context. - Updated callback signatures in resource and prompt definitions to support context-aware execution. - Enhanced error handling and response management in server tools for improved reliability. * refactor(mcp-use): improve context management and streamline server tools - Enhanced context handling in server tools by refining callback signatures and introducing new context types. - Streamlined server examples by removing redundant tool definitions and improving error handling. - Updated resource and prompt registration processes for better integration and reliability. * chore(conformance): remove branch restrictions from push and pull_request triggers - Eliminated specific branch filters for push and pull_request events in the conformance workflow, allowing for broader execution on any branch changes. * only those branches * default 3000 * fix: update default port from 3001 to 3000 across various components - Changed default URL and port settings in ConnectionSettingsForm, middleware, and example scripts to use port 3000. - Updated related documentation and comments to reflect the new default port for consistency. * fix(conformance): set TypeScript server port to 3000 for conformance tests - Updated the conformance workflow to explicitly set the TypeScript server to run on port 3000, ensuring consistency with recent changes across components. * chore: update @modelcontextprotocol/sdk version in package files - Updated the version of @modelcontextprotocol/sdk from 1194 to 1209 in pnpm-lock.yaml, package.json, and deno.json to reflect the latest changes in the SDK. --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(typescript): version packages (canary) * fix(docs): update sampling link in elicitation documentation (#618) - Changed the sampling link in the elicitation documentation to point to the correct GitHub repository path for LLM completions, ensuring users have access to the latest examples and resources. * Fix/server/increase conformance score (#619) * feat(server): enhance conformance server with new audio and logging tools - Added a new tool for returning silent audio content in WAV format. - Updated the image tool to include a more descriptive name. - Introduced a tool that simulates logging during execution, providing console output for tool processing steps. - Enhanced the mixed content tool to support multiple content types, including text, image, and resource data. - Updated prompt handling to accept new argument names for better clarity. * refactor(mcp-server): enhance schema handling for prompts and server configuration - Updated schema handling in McpServer and prompt registration to create parameter schemas when arguments are provided. - Improved error handling by setting argsSchema to undefined when no schema or arguments are available, ensuring clearer validation logic. - Refactored regex pattern in server helpers to correctly replace parameter placeholders, enhancing template URI parsing. * feat(server): enhance audio handling and logging capabilities - Introduced a new audio tool for returning audio content, supporting both base64 data and file paths. - Updated server tools to utilize a logging mechanism that sends log notifications during execution. - Enhanced resource handling to support new content types and improved error handling for logging levels. - Refactored existing tools to streamline code and improve clarity in tool definitions. * feat(server): implement resource subscription management and dynamic updates - Added a new subscribable resource that can be updated and subscribed to by clients. - Introduced a tool for updating the subscribable resource, notifying all subscribers of changes. - Enhanced session management by cleaning up resource subscriptions when sessions are closed. - Updated context storage to include optional session IDs for better tracking. - Refactored idle cleanup to support session-specific resource subscription cleanup. * feat: enhance conformance workflow with dynamic badge generation for Python and TypeScript - Added new steps in the GitHub Actions workflow to calculate and create conformance badges for both Python and TypeScript based on test results. - Updated README.md to include links and badges for Python and TypeScript conformance, providing users with immediate feedback on test status. * fix action uses * fix: update conformance workflow badge calculations and labels - Changed the conformance badge calculation to use integer scaling for percentage rates. - Adjusted the passing rate threshold from 80% to 60% for badge color determination. - Updated badge labels for Python and TypeScript to reflect "MCP Conformance" instead of just the language. * fix: enable conformance comments on forked PRs with two-workflow pattern - Split conformance workflow into test execution and comment posting - Created conformance-comment.yml with workflow_run trigger for full permissions - Upload PR metadata and parsed results as artifacts - Updated badge labels to 'MCP Conformance (TS)' and 'MCP Conformance (PY)' - Fixed badge colors: green at 100%, yellow ≥60%, red <60% - Resolves permission errors when posting comments on forked PRs * feat(server): update serverBaseUrl to use environment variable helper (#625) * feat(server): update serverBaseUrl to use environment variable helper - Implemented a helper function to set serverBaseUrl based on MCP_URL environment variable, ensuring correct public URL usage for widgets/assets. * fix(server): improve error handling and logging for resource management - Enhanced error handling in resource subscription management to ensure clearer validation and logging. - Updated logging mechanisms to provide better insights during execution, particularly for resource updates and session management. - Refactored code for improved clarity and maintainability in server tools. * chore(typescript): version packages (canary) * fix: prevent code injection in conformance-comment workflow Use environment variables instead of direct string interpolation to pass PR metadata to the github-script action, preventing potential code injection from untrusted input. Addresses CodeQL security findings. * chore: trigger conformance workflow * feat: allow conformance comment workflow to run on push events - Remove pull_request-only restriction from workflow trigger - Make PR metadata download and comment posting conditional - Workflow now runs for both push and pull_request events - For push events, workflow completes without posting comment - Badges remain branch-specific per existing logic in conformance.yml * fix: revert comment workflow to PR-only events - Comment workflow only runs for pull_request events (not push) - For push events, there's no PR to comment on - Conformance workflow already runs on all branch pushes for iteration - Badges remain branch-specific (only updated for main/canary pushes) * Docs/refactor (#633) * quickstart * chore: update documentation and assets - Renamed "Getting Started" group to "Get Started" in docs.json. - Added new SVG logo for MCP use and several images for TypeScript documentation. - Created a new changelog file for tracking updates and improvements. - Removed outdated security and logging documentation, and updated links in various guides. - Introduced new response helpers and improved server logging documentation. - Enhanced the UI widgets section to support OpenAI Apps SDK with zero boilerplate. * refactor: update MCP server instantiation to use class constructor - Replaced instances of `createMCPServer` with the new `MCPServer` class constructor across documentation and example files. - Updated related documentation to reflect the new instantiation method, enhancing clarity and consistency. - Ensured backward compatibility by retaining the `createMCPServer` function for legacy support. * refactor: standardize MCPServer instantiation in documentation - Updated examples to utilize the new `MCPServer` class constructor instead of the legacy `createMCPServer` function. - Enhanced documentation clarity by providing consistent usage patterns and emphasizing the recommended instantiation method. - Maintained backward compatibility by retaining the legacy function for existing users. * refactor: update subscribable resource schema to use default value - Changed the `newValue` property in the subscribable resource schema to have a default value of "Updated value". - Updated the async function to utilize the default value, simplifying the parameter handling. * refactor: enhance type inference and callback signatures for resource templates - Updated the `registerResourceTemplate` function to support multiple callback signatures, improving type inference for developers. - Removed the deprecated `ReadResourceTemplateCallbackBivariant` interface to streamline the codebase. - Adjusted the handling of `uri` and `variables` in the server example to ensure non-null assertions, enhancing type safety. * refactor: improve resource template registration and type safety - Enhanced the `registerResourceTemplate` function to better support multiple callback signatures, improving developer experience. - Removed the obsolete `ReadResourceTemplateCallbackBivariant` interface to clean up the codebase. - Updated the handling of `uri` and `variables` in the server example to enforce non-null assertions, boosting type safety. * chore(typescript): version packages (canary) * refactor: streamline async callback syntax in server tools - Updated async callback definitions in various server tools to improve consistency and readability. - Removed unnecessary line breaks and streamlined the structure of callback functions across multiple files. - Enhanced overall code clarity while maintaining existing functionality. * refactor: enhance async callback handling in server tools - Improved the structure and readability of async callback functions in server tools. - Standardized callback definitions across multiple files for better consistency. - Maintained existing functionality while enhancing code clarity. * feat: add weather tools and manual widget registration - Introduced two new server tools: `get-current-weather` and `get-weather-forecast`, utilizing the `weather-display` widget. - Updated the README to include a manual tool registration pattern for widgets that do not auto-register. - Enhanced the example structure to demonstrate custom tool usage and widget integration. - Improved documentation clarity regarding widget registration and usage patterns. * refactor: simplify input schema for get-current-weather tool - Replaced the manual input definition with a Zod schema for the `get-current-weather` tool, enhancing type safety and readability. - Streamlined the async callback function by removing explicit type annotations for inputs, improving code clarity. * refactor: enhance type safety and structure in MCPServer resource registration - Updated the `resource` and `resourceTemplate` methods in `MCPServer` to use generic types for improved type safety and clarity. - Refactored the `uiResourceRegistration` function to accept a more generalized server context, enhancing compatibility with various resource definitions. - Renamed `UIResourceServerContext` to `UIResourceServer` for better alignment with its purpose and updated its interface to reflect the new structure. - Improved overall code readability and maintainability by streamlining method signatures and enhancing type definitions. * Chore/typescript/any (#634) * fix: add noZoom attribute to images in SimpleSplitCard component - Added the `noZoom` attribute to image elements in the `SimpleSplitCard` component to prevent zooming effects on hover. - Updated image tags for both light and dark mode images, as well as logos in the action links, ensuring consistent behavior across the component. * refactor: enhance type safety and error handling in result displays - Updated the `PromptResult`, `ResourceResult`, and `ToolResult` interfaces to use specific types instead of `any`, improving type safety. - Refactored error handling in the `extractErrorMessage` functions across multiple components to handle new result structures, ensuring consistent error messaging. - Improved the handling of result properties in the `onCopy` callbacks to align with the updated types, enhancing overall code clarity and maintainability. * refactor: improve error handling and type definitions in result processing - Enhanced error handling in the `extractErrorMessage` functions to accommodate updated result structures, ensuring consistent messaging. - Updated `PromptResult`, `ResourceResult`, and `ToolResult` interfaces to utilize specific types, improving type safety. - Refactored `onCopy` callbacks to align with new type definitions, enhancing code clarity and maintainability. * chore(typescript): version packages (canary) * fix typo * Fix/mcp use/typing (#636) * refactor: remove get-weather-forecast tool and update MCPServer class structure - Removed the `get-weather-forecast` tool implementation from the server example, streamlining the codebase. - Refactored the `MCPServer` class to `MCPServerClass` for improved clarity and updated type definitions for better type safety. - Enhanced the `WidgetMetadata` interface to include new properties for input validation and annotations, aligning with tool naming conventions. * refactor: enhance widget registration logic and metadata handling - Updated the `uiResourceRegistration` function to conditionally register tools based on the `exposeAsTool` flag, improving flexibility in widget registration. - Refactored the handling of tool metadata, ensuring that relevant fields from `appsSdkMetadata` are copied only when necessary. - Enhanced the `createWidgetRegistration` function to extract and utilize the `exposeAsTool` flag from metadata, defaulting to true if not specified, for consistent behavior across widgets. * feat: add tool annotations and exposeAsTool flag to resource definition - Introduced `exposeAsTool` and `toolAnnotations` properties to the `BaseUIResourceDefinition` interface, allowing for more flexible tool registration. - Updated the `uiResourceRegistration` function to utilize the new `exposeAsTool` property directly from the resource definition, enhancing the registration logic. * feat: enhance widget integration and tool metadata handling - Added support for returning interactive UI widgets from tools using the `widget()` helper and `returnsWidget` option, improving user experience in the Inspector and ChatGPT. - Updated documentation to clarify the usage of the `widget` configuration in tool definitions, including examples for better understanding. - Enhanced the `MCPServer` class to manage widget definitions and inject metadata into tool responses, streamlining the integration of custom tools with widgets. - Improved type definitions for tools and widgets, ensuring better type safety and clarity in the codebase. * Fix/server/oauth (#637) * refactor: enhance MCPServerClass with generic OAuth support - Updated the `MCPServerClass` to support generics for OAuth, improving type safety and flexibility in tool and resource registration methods. - Refactored method signatures for `tool`, `prompt`, `resource`, and `resourceTemplate` to utilize the new `HasOAuth` type parameter, ensuring consistent behavior based on OAuth configuration. - Adjusted the `McpServerInstance` and `MCPServer` types to reflect the new generic structure, enhancing clarity in type annotations for server instances. * refactor: simplify OAuth handling in MCPServerClass - Removed the unused `oauthConfig` property and streamlined the OAuth setup logic by directly using `oauthProvider`. - Updated conditional checks for OAuth setup to enhance clarity and reduce redundancy in the codebase. * chore(ci): add --dev flag to create-mcp-use-app commands in CI workflow - Updated the CI workflow to include the `--dev` flag in both npm and yarn commands for creating test applications, ensuring development dependencies are installed correctly. * chore(ci): update CI workflow to build and pack all packages - Modified the CI workflow to build all packages in the TypeScript library and pack individual packages, including `create-mcp-use-app`, `mcp-use`, `@mcp-use/cli`, and `@mcp-use/inspector`. - Updated artifact upload and download steps to handle multiple package artifacts, ensuring all necessary packages are available for testing. - Added a step to replace workspace dependencies with file references in `package.json` for both npm and yarn test applications, improving dependency management. * chore(ci): improve PACKAGE_PATH resolution in CI workflow - Updated the CI workflow to enhance the resolution of the PACKAGE_PATH variable for the create-mcp-use-app package. - Modified the logic to handle cases where multiple package files exist, ensuring the first available package is used, improving reliability in the build process. * chore(ci): refine PACKAGE_PATH resolution in CI workflow - Enhanced the logic for determining the PACKAGE_PATH variable in the CI workflow to ensure it correctly identifies the first available create-mcp-use-app package file, regardless of the operating system. - Updated commands to use more reliable methods for file searching, improving consistency and robustness in the build process. * chore(ci): update PACKAGE_PATH resolution to use realpath in CI workflow - Modified the CI workflow to utilize `realpath` for resolving the PACKAGE_PATH variable, ensuring accurate file paths for the create-mcp-use-app package across different operating systems. - This change enhances the reliability of package path resolution in both npm and yarn commands, improving the overall consistency of the build process. * chore(ci): refine tarball path resolution in CI workflow - Updated the CI workflow to improve the resolution of tarball paths for `mcp-use`, `mcp-use-cli`, and `mcp-use-inspector` packages by using `find` to ensure the first available package is correctly identified. - This change enhances the reliability of package path resolution, ensuring accurate file paths are used during the build process. * chore(ci): add .actrc configuration for local development - Introduced a new `.actrc` file to configure the local development environment for CI workflows, specifying the use of a custom Ubuntu image and container architecture. - Updated the CI workflow to replace workspace dependencies with file references in `package.json`, enhancing consistency across different environments. - Adjusted links in documentation to ensure accurate navigation, including updates to security guides and logging resources. * fix(docs): clean up formatting and update redirects in documentation - Removed unnecessary blank lines in the documentation JSON file for improved readability. - Updated the redirects section to ensure proper formatting and consistency in the structure. * refactor(ci): enhance CI workflow for package management and path resolution (#638) - Improved the CI workflow to ensure accurate resolution of package paths for `create-mcp-use-app`, `mcp-use`, and related packages, enhancing reliability during builds. - Updated commands to utilize more robust methods for identifying package files, ensuring consistency across different environments. - Streamlined the process for building and packing all necessary packages, improving overall dependency management and artifact handling. * chore(typescript): version packages (canary) * Chore/deps/fork (#640) * chore(deps): update @modelcontextprotocol/sdk dependency and add new packages - Removed the MCP SDK update workflow as it is no longer needed. - Updated the @modelcontextprotocol/sdk dependency in multiple package.json files to point to the new GitHub repository. - Added new dependencies: glob and js-yaml, with specified version ranges. - Updated peer dependencies for express to support version 5.0.0. - Cleaned up package-lock files to reflect the new dependency structure. * chore(ci): optimize CI workflow for package path resolution and build process - Enhanced the CI workflow to improve package path resolution, ensuring accurate identification of package files across different environments. - Streamlined the build process for all necessary packages, improving reliability and consistency during builds. - Updated commands to utilize more robust methods for file searching, enhancing overall dependency management. * chore(typescript): version packages (canary) * chore(typescript): update package references to mcp-use/modelcontextprotocol-sdk (#641) - Changed all instances of @modelcontextprotocol/sdk to @mcp-use/modelcontextprotocol-sdk across various files. - Updated package.json files to reflect the new package versioning and structure. - Enhanced import paths in multiple components and utilities to ensure compatibility with the new SDK structure. - Added new dependencies and updated existing ones in the pnpm-lock.yaml file for consistency. * chore(typescript): version packages (canary) * feat: Improve typescript tel (#642) * feat: add telemetry event classes and interfaces for server and client interactions - Introduced new telemetry event classes: `ServerRunEvent`, `ServerInitializeEvent`, `ServerToolCallEvent`, `ServerResourceCallEvent`, `ServerPromptCallEvent`, `ServerContextEvent`, `MCPClientInitEvent`, and `ConnectorInitEvent`. - Added corresponding data interfaces for each event to enhance type safety and structure. - Updated the `Telemetry` class to include methods for tracking these new events, improving the telemetry system's capabilities. - Enhanced the `index.ts` file to export the new event classes and types for easier access throughout the library. * feat(telemetry): add isEnabled check to telemetry methods * fix: snake case properties * feat(telemetry): add MCPServer telemetry interface and data extraction method - Introduced the `MCPServerTelemetryInfo` interface to encapsulate necessary data for telemetry tracking from an MCPServer instance. - Added the `createServerRunEventData` function to centralize data extraction from MCPServer-like objects, enhancing the telemetry layer's functionality. - Updated the `Telemetry` class with a new method, `trackServerRunFromServer`, to track server run events directly using the new interface and extraction method. * feat(telemetry): enhance telemetry tracking for MCPClient and connectors - Integrated telemetry tracking for MCPClient initialization, connector initialization, and server events. - Added methods to track server runs, tool calls, prompt calls, and resource calls, improving observability of client-server interactions. - Updated the HttpConnector, StdioConnector, and BaseConnector classes to utilize the new tracking methods. - Enhanced MCPServer to log server initialization and execution metrics, providing better insights into server performance. * feat(telemetry): enhance resource tracking in server run events - Updated the `ServerRunEventData` interface to include new properties for tracking resources: `appsSdkResources`, `mcpUiResources`, and `mcpAppsResources`, along with their respective counts. - Refactored the `createServerRunEventData` function to map and filter resources based on MIME types, improving the granularity of telemetry data. - Adjusted the `ServerRunEvent` class to serialize the new resource properties, enhancing the telemetry output for better observability. * feat(versioning): automate version generation for telemetry - Added a new script `generate-version.mjs` to automatically generate `src/telemetry/version.ts` with the current package version during the build process. - Updated the `build` script in `package.json` to include the version generation step. - Refactored `getPackageVersion` function to return the embedded version from the generated file, improving version management. * tests for telemetry * add changeset * feat(telemetry): enhance runtime environment detection and user ID management - Introduced a comprehensive runtime environment detection system, supporting Node.js, Bun, Deno, Cloudflare Workers, Edge, and browser environments. - Added methods to determine storage capabilities for user ID persistence, including filesystem and localStorage options. - Refactored user ID retrieval to accommodate different environments, ensuring session-based IDs are generated when persistent storage is unavailable. - Enhanced telemetry event tracking by including runtime environment metadata in captured events, improving observability and debugging capabilities. * feat(telemetry): add browser stubs for Node.js-only packages - Introduced a Vite plugin to provide browser-compatible stubs for the `posthog-node` package, allowing it to be used in browser environments. - Updated the Vite server configuration to exclude `posthog-node` from dependency optimization and mark it as external in SSR mode, ensuring proper handling in both development and production builds. - Enhanced the overall compatibility of the telemetry system with browser environments by stubbing server-side functionality. * refactor: standardize code formatting and improve readability - Updated import statements to use consistent double quotes. - Reformatted function parameters and object properties for better readability across multiple files. - Enhanced the structure of telemetry-related code to improve maintainability and clarity. - Removed unnecessary blank lines to streamline the codebase. * feat(versioning): update version management and export functionality - Added version information export to the mcp-use package, allowing access to the package version across various modules. - Refactored the version generation script to output to a new location, ensuring consistency in version tracking. - Updated multiple files to import and utilize the new versioning functions, enhancing the overall version management system. * refactor(telemetry): remove unused ServerRunEventData import - Eliminated the import of ServerRunEventData from telemetry.ts to clean up the code and remove unnecessary dependencies. --------- Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * chore(typescript): version packages (canary) * feat(ci): update CI workflow to use local tar files for dependencies - Modified the CI workflow to create projects using local tar files instead of workspace dependencies. - Removed the previous steps for replacing workspace dependencies in `package.json`, simplifying the process. - Added a new helper function to validate and find required tar files in a specified directory, ensuring all necessary packages are present. - Enhanced the project creation logic to support a new `--tar` option for specifying the directory containing tar files. * feat: add recursive tar file search functionality - Introduced a new helper function to recursively find `.tgz` files in a specified directory, enhancing the ability to locate required tar files. - Updated the existing `findTarFiles` function to utilize the new recursive search, improving the validation and retrieval of tar files for project creation. - Enhanced error messages to provide clearer feedback on found tar files during the process. * refactor: clean up index.tsx and update CI workflow - Removed unused functions for tar file handling from `index.tsx`, simplifying the codebase. - Updated the CI workflow to ensure consistent packaging of the `mcp-use` package, enhancing the build process. - Adjusted the project creation logic to streamline dependency management and improve clarity in the workflow. * chore(ci): update E2E canary workflow permissions - Added permissions for actions and contents in the E2E canary workflow to enhance security and control over workflow execution. * refactor: enhance error handling display in OAuth callback (#644) - Refactored the error display logic in the OAuth callback to use DOM manipulation for improved safety and clarity. - Updated regex patterns in the OAuthHelper class to be more specific, enhancing the accuracy of authentication checks for various APIs. * chore(typescript): version packages (canary) * feat(chat): enhance tool integration in chat components (#643) - Added `tools` prop to `ChatTab` for better tool management. - Updated `MessageList` to accept `tools` and implemented a helper function to retrieve tool metadata. - Enhanced `ToolResultRenderer` to utilize tool metadata for improved rendering and error handling, including debug logging for better traceability. * chore(typescript): version packages (canary) * refactor: update regex patterns in OAuthHelper for improved DNS safety - Enhanced regex patterns in the OAuthHelper class to ensure DNS-safe domain matching, accommodating maximum label length restrictions for Google APIs, Atlassian, and Slack. - Improved clarity in comments to reflect the changes made to the regex patterns. * Fix/inspector/build (#645) * chore(inspector): update prepublishOnly script for improved build process - Modified the `prepublishOnly` script in the inspector package to first build the `mcp-use` package before executing the standard build, ensuring all dependencies are correctly prepared prior to publishing. * chore: changeset * chore(typescript): version packages (canary) * chore(ci): add workflow_dispatch trigger to E2E canary workflow - Introduced a manual trigger for the E2E canary workflow, allowing for on-demand execution alongside the existing workflow_run trigger. * Update conformance workflows to use published action (#647) * Update conformance workflows to use published action - Replace inline conformance testing with mcp-use/mcp-conformance-action@v1 - Simplify conformance-comment workflow to use action's comment mode - Maintains fork PR support via workflow_run pattern * Trigger conformance tests with fixed action * Trigger conformance with v1.0.2 (aggressive cleanup) * Trigger conformance with v1.0.3 (simplified cleanup) * Trigger conformance with v1.0.4 (detached spawn) * Trigger conformance after updating comment workflow on main * Trigger conformance with v1.0.5 (baseline comparison) * Trigger conformance with v1.0.6 (old artifact format support) * Potential fix for code scanning alert no. 45: Workflow does not contain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> * feat: Add browser tel to typescript (#651) * add posthog-js * refactor(telemetry): enhance telemetry functionality and browser support - Added support for browser environments in the Telemetry class, including dynamic imports of posthog-js for event tracking. - Introduced new events: ClientAddServerEvent and ClientRemoveServerEvent for better server management tracking. - Improved telemetry source management and user identification methods for both Node.js and browser contexts. - Refactored existing methods for better clarity and maintainability, including the initialization of PostHog clients based on the runtime environment. - Updated event capturing logic to handle both Node.js and browser clients effectively. * feat(telemetry): add ClientAddServerEvent and ClientRemoveServerEvent for server management - Introduced ClientAddServerEvent and ClientRemoveServerEvent classes to track server addition and removal. - Enhanced MCPClientInitEvent to include isBrowser property for better environment differentiation. - Improved properties extraction for new event classes to facilitate server management tracking. * feat(telemetry): unify telemetry exports and enhance backward compatibility - Added unified telemetry exports for browser and Node.js environments, including Tel and setTelemetrySource. - Introduced backward compatibility aliases for existing telemetry functionalities to ensure seamless integration for users transitioning to the new structure. * feat(telemetry): integrate telemetry tracking in MCPClient methods - Added telemetry tracking for server addition and removal in BaseMCPClient. - Implemented client initialization tracking in BrowserMCPClient to capture configuration details and environment context. - Enhanced error handling for telemetry tracking failures during client initialization. * feat(telemetry): enhance MCP telemetry tracking in useMcp hook - Integrated telemetry tracking for connection attempts, tool calls, and resource reads within the useMcp hook. - Added success and failure tracking for connections, tool executions, and resource accesses to improve monitoring and diagnostics. * chore(typescript): version packages (canary) --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Enrico Toniato <2827496+tonxxd@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Luigi Pederzani <luigipederzani@gmail.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> |
||
|
|
a88455343e |
Docs/tunnel docs (#474)
* chore: add tunnelling docs * chore: add tunnelling docs * docs: enhance tunneling documentation with link to @mcp-use/tunnel package * docs: update tunneling documentation with improved code examples and formatting |