MCP Server

Semiotic

io.github.nteract/semiotic
Data & Analytics Design & Creative Public & reachable MCP 2025-11-25

What this MCP does

Creates, validates, audits, explains, and improves React-based data visualizations and charts.

auditChart
Audit chart quality and accessibility
Run design diagnostics plus accessibility and mobile audits, returning prioritized structured findings.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['component', 'props'], 'properties': {'props': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'component': {'type': 'string'}, 'viewportWidth': {'type': 'integer', 'maximum': 1600, 'minimum': 240}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'component', 'surfaceVersion'], 'properties': {'status': {'enum': ['passed', 'findings'], 'type': 'string'}, 'component': {'type': 'string'}, 'evidenceGate': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'surfaceVersion': {'type': 'string'}, 'evidenceEnvelope': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
createChart
Create and prove a chart
Select, validate, diagnose, render, and prove a static-data Semiotic chart. This is the default public workflow.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'minItems': 1}, 'props': {'type': 'object', 'description': 'Optional props to merge over the selected chart recipe.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'theme': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'intent': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'audience': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'receptionModality': {'enum': ['visual', 'screen-reader', 'sonified', 'agent'], 'type': 'string'}}, 'additionalProperties': {}}, 'component': {'type': 'string', 'description': 'Optional chart preference; the fit-ranked result remains authoritative.'}, 'fieldRoles': {'type': 'object', 'description': 'Per-field semantic or exact encoding-role hints used before chart ranking.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'enum': ['identifier', 'measure', 'dimension', 'temporal', 'x', 'y', 'size', 'category', 'series', 'time', 'ignore'], 'type': 'string'}, {'type': 'array', 'items': {'enum': ['identifier', 'measure', 'dimension', 'temporal', 'x', 'y', 'size', 'category', 'series', 'time', 'ignore'], 'type': 'string'}}]}}, 'identifiers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Fields that identify records and must not be used as visual encodings or measures.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'surfaceVersion'], 'properties': {'status': {'enum': ['render-proven', 'blocked', 'no-suggestion'], 'type': 'string'}, 'component': {'type': 'string'}, 'evidenceGate': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'surfaceVersion': {'type': 'string'}, 'evidenceEnvelope': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
explainChart
Explain a chart without pixels
Return reader grounding: chart description, communicative intent, and navigable data structure.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['component', 'props'], 'properties': {'props': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'component': {'type': 'string'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'grounding', 'surfaceVersion'], 'properties': {'status': {'type': 'string', 'const': 'grounded'}, 'grounding': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'surfaceVersion': {'type': 'string'}, 'evidenceFragment': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
getChartSchema
Get a chart schema
Return canonical Semiotic prop-schema guidance for code editing and advanced configuration.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'component': {'type': 'string'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'surfaceVersion'], 'properties': {'schema': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'enum': ['component-list', 'component-schema', 'unknown-component'], 'type': 'string'}, 'component': {'type': 'string'}, 'renderable': {'type': 'boolean'}, 'accessibility': {'type': 'object', 'required': ['directProps', 'chartContainer'], 'properties': {'directProps': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'chartContainer': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'surfaceVersion': {'type': 'string'}, 'behaviorContracts': {'type': 'array', 'items': {}}, 'availableComponents': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'renderable'], 'properties': {'name': {'type': 'string'}, 'renderable': {'type': 'boolean'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
improveChart
Improve an existing chart
Diagnose a chart configuration, assess data fit, and propose repairs or variants.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['component', 'props'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'props': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'intent': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'component': {'type': 'string'}, 'fieldRoles': {'type': 'object', 'description': 'Per-field semantic or exact encoding-role hints used before chart ranking.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'enum': ['identifier', 'measure', 'dimension', 'temporal', 'x', 'y', 'size', 'category', 'series', 'time', 'ignore'], 'type': 'string'}, {'type': 'array', 'items': {'enum': ['identifier', 'measure', 'dimension', 'temporal', 'x', 'y', 'size', 'category', 'series', 'time', 'ignore'], 'type': 'string'}}]}}, 'identifiers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Fields that identify records and must not be used as visual encodings or measures.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'component', 'diagnostics', 'repair', 'variants', 'surfaceVersion'], 'properties': {'repair': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'enum': ['reviewed', 'repair-needed'], 'type': 'string'}, 'variants': {'type': 'array', 'items': {}}, 'component': {'type': 'string'}, 'diagnostics': {'type': 'array', 'items': {}}, 'surfaceVersion': {'type': 'string'}, 'evidenceFragment': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'accessibilityRecommendation': {'type': 'object', 'required': ['location', 'props', 'chartContainer'], 'properties': {'props': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'location': {'type': 'string', 'const': 'direct-component-props'}, 'chartContainer': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}}, 'additionalProperties': False}
Added
getChartSchema
Sept. 17, 2026, 12:45 p.m.
Added
auditChart
Sept. 17, 2026, 12:45 p.m.
Added
explainChart
Sept. 17, 2026, 12:45 p.m.
Added
improveChart
Sept. 17, 2026, 12:45 p.m.
Added
createChart
Sept. 17, 2026, 12:45 p.m.