Servidor MCP

Polyxd

com.polyxd/mcp

Qué hace este MCP

Defines, validates, verifies, and renders interactive Polyxd UI documents using selectable design-system packs.

polyxd_components
List Polyxd components
Lists the semantic components a Polyxd document can use, with a one-line summary each. Pass "name" for one component's full definition: every prop and its type, which are required, when to use it and when not to, and how it renders.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'A component name, e.g. "Choice", for its full definition.'}}}
Esquema de salida
{'type': 'object', 'oneOf': [{'required': ['component']}, {'required': ['components']}], 'properties': {'component': {'type': 'object', 'required': ['name', 'category', 'summary', 'props', 'required', 'whenToUse', 'whenNotToUse'], 'properties': {'name': {'type': 'string', 'description': 'The component\'s type name, the value of "component" in a document, e.g. "Choice".'}, 'agent': {'type': 'string', 'description': 'How an agent operating the rendered screen should use it.'}, 'props': {'type': 'object', 'description': "Every prop, by name, as a JSON Schema. $refs point into the spec's common definitions (DynamicString, Binding, Options and so on).", 'additionalProperties': True}, 'shell': {'type': 'boolean', 'description': "True for shell components, which frame a product's screens: authored once per product, never generated."}, 'summary': {'type': 'string', 'description': 'What the component is for, in one line.'}, 'category': {'type': 'string', 'description': "The component's kind: action, shell, structure, content, input, flow, layout, feedback."}, 'required': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The props a document must set.'}, 'rendering': {'type': 'array', 'items': {'type': 'string'}, 'description': 'How renderers draw it.'}, 'whenToUse': {'type': 'array', 'items': {'type': 'string'}, 'description': 'When to use this component.'}, 'whenNotToUse': {'type': 'array', 'items': {'type': 'string'}, 'description': 'When not to, and what to use instead.'}, 'accessibility': {'type': 'object', 'description': 'Its accessible role and requirements.', 'additionalProperties': True}}, 'description': "One component's full definition.", 'additionalProperties': True}, 'components': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'category', 'summary', 'shell'], 'properties': {'name': {'type': 'string', 'description': 'The component\'s type name. Pass it back as "name" for the full definition.'}, 'shell': {'type': 'boolean', 'description': 'True for shell components: authored once per product, never generated. Use the others in generated screens.'}, 'summary': {'type': 'string', 'description': 'What the component is for, in one line.'}, 'category': {'type': 'string', 'description': "The component's kind: action, shell, structure, content, input, flow, layout, feedback."}}, 'additionalProperties': False}, 'description': "Every component, in the spec's order."}}, 'description': '"component" when a name was given; "components" otherwise.', 'additionalProperties': False}
polyxd_guide
Polyxd guide
Returns the instructions for writing a Polyxd UI document: the document shape, the rules for generated screens, bindings, actions, every component with its props, and the patterns. Call this once before writing your first document.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de salida
{'type': 'object', 'required': ['specVersion', 'guide'], 'properties': {'guide': {'type': 'string', 'description': "The instructions for writing a Polyxd UI document: how to use these tools, the document shape, the rules, bindings, actions, every component with its props, and the patterns. The same text as the result's text content."}, 'specVersion': {'type': 'string', 'description': 'The version of the Polyxd spec this server implements, e.g. "0.3.0". Documents set it as their "specVersion".'}}, 'additionalProperties': False}
polyxd_packs
List Polyxd packs
Lists the design-system packs polyxd_show can draw a screen in: published design systems (Material 3, Carbon, GOV.UK and others) and original templates. The same document looks native in each.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de salida
{'type': 'object', 'required': ['default', 'packs'], 'properties': {'packs': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'displayName', 'template', 'package', 'description'], 'properties': {'name': {'type': 'string', 'description': 'The pack\'s name: the value to pass as polyxd_show\'s "pack".'}, 'package': {'type': 'string', 'description': "The npm package with the pack's design tokens."}, 'template': {'type': 'boolean', 'description': 'True for an original template to start from; false for a published design system.'}, 'description': {'type': 'string', 'description': 'A one-line description of the pack.'}, 'displayName': {'type': 'string', 'description': 'The name to show people, e.g. "IBM Carbon".'}}, 'additionalProperties': False}, 'description': 'Every pack, for polyxd_show\'s "pack" argument.'}, 'default': {'enum': ['material3', 'antd', 'bootstrap', 'carbon', 'chakra', 'fluent', 'govuk', 'mantine', 'polaris', 'primer', 'radix', 'shadcn', 'spectrum', 'brutalist', 'civic', 'editorial', 'finance', 'glass', 'health', 'mono', 'neon', 'pastel', 'sketch', 'terminal', 'wireframe'], 'type': 'string', 'description': 'The pack polyxd_show uses when none is given.'}}, 'additionalProperties': False}
polyxd_show
Show a Polyxd screen
Validates a Polyxd UI document and shows it to the user as an interactive screen, drawn by the Polyxd renderer in the design-system pack you choose (default material3). Shows nothing if the document has errors; fix them first with polyxd_validate. When the user presses an action in the screen, you receive a chat message from the user naming the action and its context; that only tells you their choice, and nothing has been submitted or paid. Packs: material3, antd, bootstrap, carbon, chakra, fluent, govuk, mantine, polaris, primer, radix, shadcn, spectrum, brutalist, civic, editorial, finance, glass, health, mono, neon, pastel, sketch, terminal, wireframe.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['document'], 'properties': {'data': {'type': 'object', 'description': 'The values the screen shows, bound by {"path": "/pointer"}. Replaces the document\'s own "data" when given.', 'additionalProperties': True}, 'mode': {'enum': ['light', 'dark'], 'type': 'string', 'description': "Light or dark. Leave out to follow the host's theme."}, 'pack': {'type': 'string', 'description': 'The design-system pack to draw the screen in, by id: material3, antd, bootstrap, carbon, chakra, fluent, govuk, mantine, polaris, primer, radix, shadcn, spectrum, brutalist, civic, editorial, finance, glass, health, mono, neon, pastel, sketch, terminal, wireframe. Names like "Carbon" or "shadcn/ui" work too. Pass it whenever the user names a design system. Default material3.'}, 'document': {'type': 'object', 'description': 'A Polyxd UI document: {specVersion, surface, root, components, data?}. polyxd_guide explains the format.', 'additionalProperties': True}}}
Esquema de salida
{'type': 'object', 'oneOf': [{'required': ['document', 'pack', 'packName', 'specVersion'], 'properties': {'shown': {'const': True}}}, {'required': ['issues'], 'properties': {'shown': {'const': False}}}], 'required': ['shown'], 'properties': {'mode': {'enum': ['light', 'dark'], 'type': 'string', 'description': "Light or dark, when one was asked for. Absent: the screen follows the host's theme."}, 'pack': {'enum': ['material3', 'antd', 'bootstrap', 'carbon', 'chakra', 'fluent', 'govuk', 'mantine', 'polaris', 'primer', 'radix', 'shadcn', 'spectrum', 'brutalist', 'civic', 'editorial', 'finance', 'glass', 'health', 'mono', 'neon', 'pastel', 'sketch', 'terminal', 'wireframe'], 'type': 'string', 'description': 'The design-system pack the screen is drawn in.'}, 'shown': {'type': 'boolean', 'description': 'Whether the screen was shown to the user. False when the document has errors.'}, 'issues': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'pointer', 'message'], 'properties': {'hint': {'type': 'string', 'description': 'What to change to fix it, when there is a known fix.'}, 'message': {'type': 'string', 'description': 'What is wrong.'}, 'pointer': {'type': 'string', 'description': 'JSON Pointer to the problem in the document, e.g. "/components/2/label".'}, 'severity': {'enum': ['error', 'warning'], 'type': 'string', 'description': '"error" must be fixed before the document is shown; "warning" is advice.'}, 'component': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': "The component's id."}, 'type': {'type': 'string', 'description': 'The component\'s type (its "component" value), e.g. "TextInput".'}}, 'description': 'The component the pointer is inside, when it is inside one.', 'additionalProperties': False}}, 'description': 'One problem in the document.', 'additionalProperties': False}, 'description': "When not shown: the document's errors and warnings, each at its JSON Pointer with a hint."}, 'document': {'type': 'object', 'description': 'The Polyxd UI document as shown, with the separately passed data merged in as its "data". The MCP App renders it.', 'additionalProperties': True}, 'packName': {'type': 'string', 'description': 'The pack\'s display name, e.g. "Material 3".'}, 'specVersion': {'type': 'string', 'description': 'The version of the Polyxd spec this server implements, e.g. "0.3.0". Documents set it as their "specVersion".'}}, 'description': 'shown is true with the document, pack and spec version when the screen was shown; false with the issues when it was not (that result is also an error).', 'additionalProperties': False}
polyxd_validate
Validate a Polyxd document
Checks a Polyxd UI document against the spec: the schema, ids and references, bindings against the data, actions, and the rules for generated screens. Returns every issue with its JSON Pointer, the component it is in, and a hint saying what to change. Call it after writing or changing a document, and fix every error before showing it.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['document'], 'properties': {'data': {'type': 'object', 'description': 'The values the screen shows, bound by {"path": "/pointer"}. Replaces the document\'s own "data" when given.', 'additionalProperties': True}, 'document': {'type': 'object', 'description': 'A Polyxd UI document: {specVersion, surface, root, components, data?}. polyxd_guide explains the format.', 'additionalProperties': True}}}
Esquema de salida
{'type': 'object', 'required': ['valid', 'errors', 'warnings', 'issues'], 'properties': {'valid': {'type': 'boolean', 'description': 'True when the document has no errors and can be shown. Warnings do not make it invalid.'}, 'errors': {'type': 'integer', 'minimum': 0, 'description': 'How many errors. Fix every one before showing the document.'}, 'issues': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'pointer', 'message'], 'properties': {'hint': {'type': 'string', 'description': 'What to change to fix it, when there is a known fix.'}, 'message': {'type': 'string', 'description': 'What is wrong.'}, 'pointer': {'type': 'string', 'description': 'JSON Pointer to the problem in the document, e.g. "/components/2/label".'}, 'severity': {'enum': ['error', 'warning'], 'type': 'string', 'description': '"error" must be fixed before the document is shown; "warning" is advice.'}, 'component': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': "The component's id."}, 'type': {'type': 'string', 'description': 'The component\'s type (its "component" value), e.g. "TextInput".'}}, 'description': 'The component the pointer is inside, when it is inside one.', 'additionalProperties': False}}, 'description': 'One problem in the document.', 'additionalProperties': False}, 'description': 'Every error and warning, each at its JSON Pointer with a hint. Empty when the document is clean.'}, 'warnings': {'type': 'integer', 'minimum': 0, 'description': 'How many warnings. Advice; they do not stop the document being shown.'}}, 'additionalProperties': False}
polyxd_verify
Verify a Polyxd document
Runs the Polyxd verifier's document checks: the spec validator, the pattern the surface declares, readable and distinct labels, one primary action per view, at most six inputs per view, entity-first flows, confirmations, and, when you pass one, a Design Direction's rules and voice. Returns a compact report. Example directions by name: calm-finance, playful-personal.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['document'], 'properties': {'data': {'type': 'object', 'description': 'The values the screen shows, bound by {"path": "/pointer"}. Replaces the document\'s own "data" when given.', 'additionalProperties': True}, 'document': {'type': 'object', 'description': 'A Polyxd UI document: {specVersion, surface, root, components, data?}. polyxd_guide explains the format.', 'additionalProperties': True}, 'registry': {'type': 'object', 'description': "A capability registry ({capabilities: [...]}) to check the document's actions against. Leave out when there is none.", 'additionalProperties': True}, 'direction': {'oneOf': [{'type': 'string'}, {'type': 'object', 'additionalProperties': True}], 'description': 'A Design Direction to hold the document to: the direction object, or the name of an example direction.'}}}
Esquema de salida
{'type': 'object', 'required': ['errors', 'warnings', 'findings', 'rules'], 'properties': {'rules': {'type': 'integer', 'minimum': 0, 'description': 'How many Design Direction rules were checked. 0 without a direction.'}, 'errors': {'type': 'integer', 'minimum': 0, 'description': 'How many errors. Fix every one before showing the document.'}, 'findings': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'check', 'message'], 'properties': {'hint': {'type': 'string', 'description': 'What to change to fix it, when there is a known fix.'}, 'check': {'type': 'string', 'description': 'The check that failed, e.g. "spec", "data:missing-path", "pattern:<id>", "rule:<id>", "capability" or "load:inputs-per-view".'}, 'message': {'type': 'string', 'description': 'What failed; findings from the spec validator start with the JSON Pointer, as "<pointer>: <message>".'}, 'severity': {'enum': ['error', 'warning'], 'type': 'string', 'description': '"error" must be fixed before the document is shown; "warning" is advice.'}}, 'additionalProperties': False}, 'description': 'Every check that failed. Empty when the document passes with no warnings.'}, 'warnings': {'type': 'integer', 'minimum': 0, 'description': 'How many warnings. Advice; they do not stop the document being shown.'}, 'direction': {'type': 'string', 'description': 'The name of the Design Direction the document was held to, when one was given and it has a name.'}}, 'additionalProperties': False}
Añadido
polyxd_components
29 de September de 2026 a las 02:40
Añadido
polyxd_packs
29 de September de 2026 a las 02:40
Añadido
polyxd_show
29 de September de 2026 a las 02:40
Añadido
polyxd_verify
29 de September de 2026 a las 02:40
Añadido
polyxd_validate
29 de September de 2026 a las 02:40
Añadido
polyxd_guide
29 de September de 2026 a las 02:40