evo-marko
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server holds definitions for every eBay evo-web component for Marko 6 (package @evo-web/marko, tags named <evo-*>) plus the Marko 6 documentation from markojs.com and the evo-web site (opensource.ebay.com/evo-web).
Use list_components / get_component before writing any <evo-*> markup; follow the attributes, attribute tags (<@name>) and examples exactly.
Use search_docs and get_doc for Marko 6 language questions (Tags API: , , , , attribute tags, := two-way binding). Do not use Marko 5 class-component syntax (class {}, this.state, on-click) in new Marko 6 code.
Use migrate_from_ebayui when converting @ebay/ebayui-core (<ebay-*>) usage.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_componentsA | List the eBay evo-web components available for Marko 6 (package @evo-web/marko, tags named <evo-*>), grouped by category. Optionally filter by category or a free-text query (e.g. 'date picker', 'dropdown'). |
| get_componentA | Full definition of one evo-web Marko 6 component: description, attributes (types, defaults, controllable state), attribute tags (<@tab>, <@option>...), Marko 6 usage examples, TypeScript input types, and optionally the accessibility guidance, Skin CSS markup and changelog. Accepts 'button', 'evo-button', '' or a Marko 5 name like 'ebay-button'. |
| search_docsA | Full-text search across the Marko 6 docs (markojs.com: language, core tags, reactivity, TypeScript, @marko/run...), Marko best-practice and 5→6 migration guides, the evo-web site (component docs, accessibility patterns, guides) and every component's attributes and examples. Returns ranked sections with ids to pass to get_doc or get_component. |
| get_docA | Read a Marko or evo-web documentation page as Markdown. Pass an id from search_docs/list_docs (e.g. 'marko:reference/core-tag'), a URL (https://markojs.com/docs/reference/reactivity) or a slug ('core-tag'). Use |
| list_docsA | List available documentation pages (id, title, URL), optionally limited to Marko docs or evo-web docs. |
| search_iconsB | Search the evo-web icon set (e.g. 'cart', 'chevron down', 'close 16') and get the tag names plus Marko 6 usage. |
| migrate_from_ebayuiA | Given a Marko 5 @ebay/ebayui-core tag (e.g. 'ebay-textbox'), return its Marko 6 @evo-web/marko replacement and the changelog notes describing API differences. Without a name, returns the full mapping table. |
| index_infoA | Show which source commits/versions the bundled index was built from and how many components/docs it holds. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| build_with_evo_marko | Guide the assistant to build a Marko 6 template using evo-web components, grounded in this server's docs. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| evo-3d-viewer | Under the hood, this uses google model viewer. All APIs are passthough to the model viewer. To use methods on the model-viewer, you can access `viewer` object on the component. |
| evo-accordion | A series of expanding/collapsing panels of content. |
| evo-alert-dialog | A lightbox dialog that prompts user for acknowledgement. |
| evo-avatar | A graphical representation of a user's identity. |
| evo-badge | A visual indicator that notifies users of numeric values. |
| evo-breadcrumbs | A list of links representing current location in site hierarchy. |
| evo-button | A control for executing JavaScript or submitting/resetting form values |
| evo-calendar | Lets users view, navigate, and select dates. |
| evo-card | High-level entity view with a call to action; typically part of a set. |
| evo-ccd | Pictogram for the EU Common Charger Directive (CCD). |
| evo-character-count | A textbox allows the user to enter data. |
| evo-checkbox | A form control that allows multiple selections from a group of choices. |
| evo-chip | A chip conveys the application of its value to a section of a form. |
| evo-chips-combobox | A quick way to add or remove chips. |
| evo-combobox | Textbox with quick-entry ability via a list of values. |
| evo-confirm-dialog | A lightbox dialog that prompts user to confirm or cancel an action. |
| evo-cta-button | An action link styled to trigger a call to action. |
| evo-date-input | A calendar based "date picker" as an alternative to manual text entry. |
| evo-date-range-input | A calendar based "date picker" as an alternative to manual text entry. |
| evo-details | A region of content that can be expanded and collapsed. |
| evo-dialog | A modal, child window; renders the main window content inert. |
| evo-eek | Pictogram for EU Energy Rating labels. |
| evo-fake-menu | Menu items trigger an immediate action within the current page. |
| evo-fake-menu-button | A button that expands to reveal a menu within a popover. |
| evo-fake-tabs | A set of links styled to look like tabs, for navigation that performs a full page load. |
| evo-file-input | Allows users to select files from their device to upload. |
| evo-file-preview-card | A card-like preview of the file being uploaded. |
| evo-file-preview-card-group | Used to properly layout a group of file preview cards. |
| evo-filter-chip | Provides immediate visual feedback and input of filters. |
| evo-filter-input | A textbox for dynamic, real-time filtering of in-page data sets |
| evo-flag | All international country flags represented in a sprite. |
| evo-icon | Our iconography in SVG format. |
| evo-icon-button | A button with icon only and no visible text. |
| evo-image-placeholder | A fallback image for use when an image is unavailable. |
| evo-infotip | Reveals helpful information about a nearby non-interactive element or region of a page. |
| evo-input | A textbox allows the user to enter data. |
| evo-layout-grid | A generic, responsive layout grid for repeating UI elements in a container. |
| evo-list | Combines a set of content inside a horizontal layout. |
| evo-listbox | Allows selection of one or more items from a list of options. |
| evo-listbox-button | A button that expands to reveal a listbox in a popover. |
| evo-menu | Menu items trigger an immediate action within the current page. |
| evo-menu-button | A button that expands to reveal a menu within a popover. |
| evo-number-input | A numeric input field with prominent increase/decrease buttons. |
| evo-pagination | Navigate between pages of results. |
| evo-progress-bar | Indicates the completion progress of a task or process. |
| evo-progress-bar-expressive | An alternative to the progress spinner, especially for longer anticipated loading times. |
| evo-progress-spinner | Indicates that content is loading or an action is being processed. |
| evo-progress-stepper | Steppers portray progress through a sequence of steps. |
| evo-radio | A form control that allows a single selection from a group of choices. |
| evo-section-title | Separates bodies of content to establish hierarchy throughout the experience. |
| evo-segmented-buttons | Control the state of an object or the visibility of section content. |
| evo-select | A control for storing single-select or multi-select form data. |
| evo-selection-chip | Helps users quickly toggle pre-validated input values. |
| evo-signal | A product indicator for an item, e.g. New Listing, Great Price. |
| evo-skeleton | A graphical placeholder resembling the final interface. |
| evo-star-rating | A graphic to represent user reviews or feedback. |
| evo-switch | An on/off switch that dynamically toggles a setting. |
| evo-tabs | Hide and disclose panels of content via a series of interactive tabs. |
| evo-textarea | A textbox allows the user to enter data. |
| evo-toast-dialog | A non-modal dialog; appears in response to a system-level action. |
| evo-toggle-button | An ARIA toggle button; typically used in a group. |
| evo-toggle-button-group | Used to properly layout a group of toggle buttons. |
| evo-tooltip | Small popover describing the action/purpose of an icon button. |
| evo-tourtip | Popover informing the user of a new feature or section on the page. |
| evo-tri-state-checkbox | A form control that allows multiple selections from a group of choices. |
| evo-video | A CSS shell for a composable, accessible video player with a flexible control bar. |
| evo:getting-started-marko-6 | evo-marko-mcp — https://github.com/eBay/evo-web/tree/main/packages/evo-marko |
| marko:explanation/class-vs-tags-api | markojs.com — https://markojs.com/docs/explanation/class-vs-tags-api |
| marko:explanation/controllable-components | markojs.com — https://markojs.com/docs/explanation/controllable-components |
| marko:explanation/fine-grained-bundling | markojs.com — https://markojs.com/docs/explanation/fine-grained-bundling |
| marko:explanation/immutable-state | markojs.com — https://markojs.com/docs/explanation/immutable-state |
| marko:explanation/let-vs-const | markojs.com — https://markojs.com/docs/explanation/let-vs-const |
| marko:explanation/nested-reactivity | markojs.com — https://markojs.com/docs/explanation/nested-reactivity |
| marko:explanation/optimizing-performance | markojs.com — https://markojs.com/docs/explanation/optimizing-performance |
| marko:explanation/patch-protocol | markojs.com — https://markojs.com/docs/explanation/patch-protocol |
| marko:explanation/separation-of-concerns | markojs.com — https://markojs.com/docs/explanation/separation-of-concerns |
| marko:explanation/serializable-state | markojs.com — https://markojs.com/docs/explanation/serializable-state |
| marko:explanation/streaming | markojs.com — https://markojs.com/docs/explanation/streaming |
| marko:explanation/targeted-compilation | markojs.com — https://markojs.com/docs/explanation/targeted-compilation |
| marko:explanation/why-is-marko-fast | markojs.com — https://markojs.com/docs/explanation/why-is-marko-fast |
| marko:guide/duplicate-form-submissions | markojs.com — https://markojs.com/docs/guide/duplicate-form-submissions |
| marko:guide/library-integration | markojs.com — https://markojs.com/docs/guide/library-integration |
| marko:guide/low-level-apis | markojs.com — https://markojs.com/docs/guide/low-level-apis |
| marko:guide/marko-5-interop | markojs.com — https://markojs.com/docs/guide/marko-5-interop |
| marko:guide/publishing-components | markojs.com — https://markojs.com/docs/guide/publishing-components |
| marko:guide/styling | markojs.com — https://markojs.com/docs/guide/styling |
| marko:introduction/getting-started | markojs.com — https://markojs.com/docs/introduction/getting-started |
| marko:introduction/installation | markojs.com — https://markojs.com/docs/introduction/installation |
| marko:introduction/integrations | markojs.com — https://markojs.com/docs/introduction/integrations |
| marko:introduction/welcome-to-marko | markojs.com — https://markojs.com/docs/introduction/welcome-to-marko |
| marko:introduction/why-marko | markojs.com — https://markojs.com/docs/introduction/why-marko |
| marko:marko-run/adapters | markojs.com — https://markojs.com/docs/marko-run/adapters |
| marko:marko-run/cli | markojs.com — https://markojs.com/docs/marko-run/cli |
| marko:marko-run/data-loading | markojs.com — https://markojs.com/docs/marko-run/data-loading |
| marko:marko-run/file-based-routing | markojs.com — https://markojs.com/docs/marko-run/file-based-routing |
| marko:marko-run/getting-started | markojs.com — https://markojs.com/docs/marko-run/getting-started |
| marko:marko-run/runtime | markojs.com — https://markojs.com/docs/marko-run/runtime |
| marko:marko-run/typescript | markojs.com — https://markojs.com/docs/marko-run/typescript |
| marko:marko-run/validation | markojs.com — https://markojs.com/docs/marko-run/validation |
| marko:marko-run/vite-plugin | markojs.com — https://markojs.com/docs/marko-run/vite-plugin |
| marko:newsletter | markojs.com — https://markojs.com/docs/newsletter |
| marko:newsletter/april-2026 | markojs.com — https://markojs.com/docs/newsletter/april-2026 |
| marko:newsletter/august-2026 | markojs.com — https://markojs.com/docs/newsletter/august-2026 |
| marko:newsletter/february-2026 | markojs.com — https://markojs.com/docs/newsletter/february-2026 |
| marko:newsletter/january-2026 | markojs.com — https://markojs.com/docs/newsletter/january-2026 |
| marko:newsletter/july-2026 | markojs.com — https://markojs.com/docs/newsletter/july-2026 |
| marko:newsletter/june-2026 | markojs.com — https://markojs.com/docs/newsletter/june-2026 |
| marko:newsletter/march-2026 | markojs.com — https://markojs.com/docs/newsletter/march-2026 |
| marko:newsletter/may-2026 | markojs.com — https://markojs.com/docs/newsletter/may-2026 |
| marko:newsletter/september-2026 | markojs.com — https://markojs.com/docs/newsletter/september-2026 |
| marko:reference/compiler | markojs.com — https://markojs.com/docs/reference/compiler |
| marko:reference/concise-syntax | markojs.com — https://markojs.com/docs/reference/concise-syntax |
| marko:reference/core-tag | markojs.com — https://markojs.com/docs/reference/core-tag |
| marko:reference/custom-tag | markojs.com — https://markojs.com/docs/reference/custom-tag |
| marko:reference/language | markojs.com — https://markojs.com/docs/reference/language |
| marko:reference/lazy-loading | markojs.com — https://markojs.com/docs/reference/lazy-loading |
| marko:reference/native-tag | markojs.com — https://markojs.com/docs/reference/native-tag |
| marko:reference/reactivity | markojs.com — https://markojs.com/docs/reference/reactivity |
| marko:reference/supported-environments | markojs.com — https://markojs.com/docs/reference/supported-environments |
| marko:reference/template | markojs.com — https://markojs.com/docs/reference/template |
| marko:reference/typescript | markojs.com — https://markojs.com/docs/reference/typescript |
| marko:tutorial/components-and-reactivity | markojs.com — https://markojs.com/docs/tutorial/components-and-reactivity |
| marko:tutorial/fundamentals | markojs.com — https://markojs.com/docs/tutorial/fundamentals |
| marko-skill:marko-5-to-6-migration | marko-js/marko skills — https://github.com/marko-js/marko/blob/main/skills/marko-5-to-6-migration/SKILL.md |
| marko-skill:marko-5-to-6-migration/api-mapping | marko-js/marko skills — https://github.com/marko-js/marko/blob/main/skills/marko-5-to-6-migration/api-mapping.md |
| marko-skill:marko-5-to-6-migration/interop | marko-js/marko skills — https://github.com/marko-js/marko/blob/main/skills/marko-5-to-6-migration/interop.md |
| marko-skill:marko-5-to-6-migration/patterns | marko-js/marko skills — https://github.com/marko-js/marko/blob/main/skills/marko-5-to-6-migration/patterns.md |
| marko-skill:marko-best-practices | marko-js/marko skills — https://github.com/marko-js/marko/blob/main/skills/marko-best-practices/SKILL.md |
| evo:home | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/ |
| evo:accessibility | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/ |
| evo:accessibility/anti-patterns/disabling-pinch-to-zoom | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/disabling-pinch-to-zoom/ |
| evo:accessibility/anti-patterns/hand-cursor-on-buttons | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/hand-cursor-on-buttons/ |
| evo:accessibility/anti-patterns/javascript-href | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/javascript-href/ |
| evo:accessibility/anti-patterns/layout-table | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/layout-table/ |
| evo:accessibility/anti-patterns/non-interactive-hover | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/non-interactive-hover/ |
| evo:accessibility/anti-patterns/open-new-window | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/open-new-window/ |
| evo:accessibility/anti-patterns/setting-focus-on-page-load | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/setting-focus-on-page-load/ |
| evo:accessibility/anti-patterns/tabindex-itis | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/tabindex-itis/ |
| evo:accessibility/anti-patterns/title-tooltip | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/anti-patterns/title-tooltip/ |
| evo:accessibility/misc/aria-essentials | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/misc/aria-essentials/ |
| evo:accessibility/misc/component-naming-scheme | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/misc/component-naming-scheme/ |
| evo:accessibility/misc/faq | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/misc/faq/ |
| evo:accessibility/patterns/description-list | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/description-list/ |
| evo:accessibility/patterns/fake-menu-button | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/fake-menu-button/ |
| evo:accessibility/patterns/fake-tabs | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/fake-tabs/ |
| evo:accessibility/patterns/footnote | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/footnote/ |
| evo:accessibility/patterns/form | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/form/ |
| evo:accessibility/patterns/form-validation | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/form-validation/ |
| evo:accessibility/patterns/heading | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/heading/ |
| evo:accessibility/patterns/image | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/image/ |
| evo:accessibility/patterns/input-dialog | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/input-dialog/ |
| evo:accessibility/patterns/input-meter | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/input-meter/ |
| evo:accessibility/patterns/input-validation | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/input-validation/ |
| evo:accessibility/patterns/popover | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/popover/ |
| evo:accessibility/patterns/pulldown-list | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/pulldown-list/ |
| evo:accessibility/patterns/region | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/region/ |
| evo:accessibility/patterns/skip-navigation | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/skip-navigation/ |
| evo:accessibility/patterns/table-cell | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/table-cell/ |
| evo:accessibility/patterns/time | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/patterns/time/ |
| evo:accessibility/techniques/active-descendant | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/active-descendant/ |
| evo:accessibility/techniques/alternative-text | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/alternative-text/ |
| evo:accessibility/techniques/ambiguous-label | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/ambiguous-label/ |
| evo:accessibility/techniques/background-icon | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/background-icon/ |
| evo:accessibility/techniques/keyboard-interface | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/keyboard-interface/ |
| evo:accessibility/techniques/keyboard-trap | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/keyboard-trap/ |
| evo:accessibility/techniques/live-region | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/live-region/ |
| evo:accessibility/techniques/offscreen-text | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/offscreen-text/ |
| evo:accessibility/techniques/roving-tabindex | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/roving-tabindex/ |
| evo:accessibility/techniques/skip-to-main-content | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/techniques/skip-to-main-content/ |
| evo:accessibility/testing/checklist | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/testing/checklist/ |
| evo:accessibility/testing/known-issues | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/accessibility/testing/known-issues/ |
| evo:evo-marko-components | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/evo-marko-components/ |
| evo:guides | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/guides/ |
| evo:guides/animation | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/guides/animation/ |
| evo:guides/page-grid | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/guides/page-grid/ |
| evo:guides/skeleton | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/guides/skeleton/ |
| evo:guides/theming | opensource.ebay.com/evo-web — https://opensource.ebay.com/evo-web/guides/theming/ |
TDQS
Scored across 8 tools
Each tool has a recognizable, mostly distinct role: list/search for discovery and get_* for retrieval, with migrate_from_ebayui and search_icons clearly specialized. There is mild overlap between list_components (free-text filter) and search_docs (which also indexes component attributes/examples), and between get_component and get_doc, but the descriptions give clear guidance on when to use which.
Six of eight tools follow a clean verb_noun snake_case convention (list_components, get_component, search_docs, get_doc, list_docs, search_icons). The outliers are index_info (noun-only) and migrate_from_ebayui (verb_from_noun), which are readable but break the pattern slightly.
Eight tools is well-scoped for a documentation/component reference server, with a balanced discovery (list_*, search_*) and retrieval (get_*) split plus two niche helpers. Every tool has a plausible job; nothing feels redundant or missing at the count level.
The surface covers the full read-only lifecycle of the domain: discovering components/docs/icons, retrieving details, searching full text, checking index provenance, and mapping Marko 5 to 6. Minor gaps remain, such as a dedicated way to browse changelogs or accessibility guidance independently of get_component, but these are reachable via existing parameters.