From a3054535ffb7377aef30bb09c7f5370ba26a286c Mon Sep 17 00:00:00 2001 From: Lukas Harbarth Date: Tue, 24 Mar 2026 14:58:27 +0100 Subject: [PATCH 01/16] feat: add mcp-server package --- docs/ProjectTemplates.mdx | 150 +- docs/project-templates.json | 82 + eslint.config.mjs | 4 +- .../test/SplitterLayout.spec.tsx | 2 +- packages/mcp-server/.gitignore | 9 + packages/mcp-server/README.md | 167 + packages/mcp-server/package.json | 75 + packages/mcp-server/resources/llms.txt | 61 + packages/mcp-server/scripts/bundle_docs.ts | 172 + .../scripts/extract_component_descriptions.ts | 182 + .../scripts/fetch_upstream_skills.ts | 79 + packages/mcp-server/scripts/utils/cem.ts | 136 + packages/mcp-server/scripts/utils/docgen.ts | 275 + packages/mcp-server/scripts/utils/text.ts | 70 + packages/mcp-server/server.json | 23 + packages/mcp-server/src/index.ts | 77 + packages/mcp-server/src/logger.ts | 22 + .../get_component_api/component-apis.json | 34108 ++++++++++++++++ .../get_component_api/get_component_api.ts | 193 + .../documentation_sections.json | 272 + .../get_documentation/get_documentation.ts | 496 + .../get_public_utils/get_public_utils.ts | 421 + packages/mcp-server/src/tools/index.ts | 4 + .../tools/list_components/descriptions.json | 834 + .../tools/list_components/list_components.ts | 195 + packages/mcp-server/src/types/cem.ts | 52 + .../mcp-server/src/types/component-api.ts | 90 + .../mcp-server/src/types/documentation.ts | 37 + packages/mcp-server/src/types/index.ts | 18 + packages/mcp-server/src/utils/categories.ts | 218 + packages/mcp-server/src/utils/index.ts | 28 + packages/mcp-server/tsconfig.build.json | 3 + packages/mcp-server/tsconfig.json | 11 + tsconfig.build.json | 3 + yarn.lock | 1432 +- 35 files changed, 39830 insertions(+), 171 deletions(-) create mode 100644 docs/project-templates.json create mode 100644 packages/mcp-server/.gitignore create mode 100644 packages/mcp-server/README.md create mode 100644 packages/mcp-server/package.json create mode 100644 packages/mcp-server/resources/llms.txt create mode 100644 packages/mcp-server/scripts/bundle_docs.ts create mode 100644 packages/mcp-server/scripts/extract_component_descriptions.ts create mode 100644 packages/mcp-server/scripts/fetch_upstream_skills.ts create mode 100644 packages/mcp-server/scripts/utils/cem.ts create mode 100644 packages/mcp-server/scripts/utils/docgen.ts create mode 100644 packages/mcp-server/scripts/utils/text.ts create mode 100644 packages/mcp-server/server.json create mode 100644 packages/mcp-server/src/index.ts create mode 100644 packages/mcp-server/src/logger.ts create mode 100644 packages/mcp-server/src/tools/get_component_api/component-apis.json create mode 100644 packages/mcp-server/src/tools/get_component_api/get_component_api.ts create mode 100644 packages/mcp-server/src/tools/get_documentation/documentation_sections.json create mode 100644 packages/mcp-server/src/tools/get_documentation/get_documentation.ts create mode 100644 packages/mcp-server/src/tools/get_public_utils/get_public_utils.ts create mode 100644 packages/mcp-server/src/tools/index.ts create mode 100644 packages/mcp-server/src/tools/list_components/descriptions.json create mode 100644 packages/mcp-server/src/tools/list_components/list_components.ts create mode 100644 packages/mcp-server/src/types/cem.ts create mode 100644 packages/mcp-server/src/types/component-api.ts create mode 100644 packages/mcp-server/src/types/documentation.ts create mode 100644 packages/mcp-server/src/types/index.ts create mode 100644 packages/mcp-server/src/utils/categories.ts create mode 100644 packages/mcp-server/src/utils/index.ts create mode 100644 packages/mcp-server/tsconfig.build.json create mode 100644 packages/mcp-server/tsconfig.json diff --git a/docs/ProjectTemplates.mdx b/docs/ProjectTemplates.mdx index 6314a1f196d..6bd1ec52a08 100644 --- a/docs/ProjectTemplates.mdx +++ b/docs/ProjectTemplates.mdx @@ -1,9 +1,18 @@ -import { Footer, LabelWithWrapping, ProjectTemplate, TableOfContent } from '@sb/components'; +import { Footer, ProjectTemplate, TableOfContent } from '@sb/components'; import NextLogo from '@sb/images/logo-nextjs.svg'; import ReactRouterLogo from '@sb/images/logo-react-router.svg'; import ViteLogo from '@sb/images/logo-vitejs.svg'; import { Meta } from '@storybook/addon-docs/blocks'; import { FlexBox, FlexBoxJustifyContent, FlexBoxWrap, Label } from '@ui5/webcomponents-react'; +import projectTemplates from './project-templates.json'; + +export const logos = { + nextjs: NextLogo, + vite: ViteLogo, + 'react-router': ReactRouterLogo, +}; + +export const repoBase = 'https://github.com/UI5/webcomponents-react/tree/main/'; @@ -18,34 +27,21 @@ A curated list of minimal project templates and examples to get started using UI
- - - + {projectTemplates + .filter((t) => t.type === 'template') + .map((t) => ( + + ))} ## Examples @@ -53,78 +49,30 @@ A curated list of minimal project templates and examples to get started using UI
- -
    -
  • - -
  • -
  • - -
  • -
-
- -
    -
  • - -
  • -
  • - -
  • -
-
- -
    -
  • - {`Routing and Data Fetching using the createBrowserRouter of React Router v7`} -
  • -
  • - -
  • -
  • - -
  • -
-
- -
    -
  • - -
  • -
  • - -
  • -
-
+ {projectTemplates + .filter((t) => t.type === 'example') + .map((t) => ( + + {t.features && ( +
    + {t.features.map((f) => ( +
  • + +
  • + ))} +
+ )} +
+ ))}