Semiotic
Verified React chart generation: select, validate, repair, render, and inspect charts through MCP.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWgetChartSchema에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"semiotic": {
"command": "npx",
"args": [
"semiotic"
]
}
}
}실행 가능한 패키지
3.10.4stdio원격 엔드포인트
https://semiotic-mcp-server-481507046413.us-west1.run.app/mcpstreamable-http할 수 있는 일
도구 목록
도구 (5)
🟢createChart(data, intent, audience, identifiers, fieldRoles, ...)
Select, validate, diagnose, render, and prove a static-data Semiotic chart. This is the default public workflow.
입력 스키마
{
"type": "object",
"properties": {
"data": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"intent": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"audience": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"receptionModality": {
"type": "string",
"enum": [
"visual",
"screen-reader",
"sonified",
"agent"
]
}
},
"additionalProperties": {}
},
"identifiers": {
"description": "Fields that identify records and must not be used as visual encodings or measures.",
"type": "array",
"items": {
"type": "string"
}
},
"fieldRoles": {
"description": "Per-field semantic or exact encoding-role hints used before chart ranking.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"enum": [
"identifier",
"measure",
"dimension",
"temporal",
"x",
"y",
"size",
"category",
"series",
"time",
"ignore"
]
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"identifier",
"measure",
"dimension",
"temporal",
"x",
"y",
"size",
"category",
"series",
"time",
"ignore"
]
}
}
]
}
},
"component": {
"description": "Optional chart preference; the fit-ranked result remains authoritative.",
"type": "string"
},
"props": {
"description": "Optional props to merge over the selected chart recipe.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"theme": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"data"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"render-proven",
"blocked",
"no-suggestion"
]
},
"component": {
"type": "string"
},
"evidenceEnvelope": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidenceGate": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"surfaceVersion": {
"type": "string"
}
},
"required": [
"status",
"surfaceVersion"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢improveChart(component, props, data, intent, identifiers, ...)
Diagnose a chart configuration, assess data fit, and propose repairs or variants.
입력 스키마
{
"type": "object",
"properties": {
"component": {
"type": "string"
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"intent": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"identifiers": {
"description": "Fields that identify records and must not be used as visual encodings or measures.",
"type": "array",
"items": {
"type": "string"
}
},
"fieldRoles": {
"description": "Per-field semantic or exact encoding-role hints used before chart ranking.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"enum": [
"identifier",
"measure",
"dimension",
"temporal",
"x",
"y",
"size",
"category",
"series",
"time",
"ignore"
]
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"identifier",
"measure",
"dimension",
"temporal",
"x",
"y",
"size",
"category",
"series",
"time",
"ignore"
]
}
}
]
}
}
},
"required": [
"component",
"props"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"reviewed",
"repair-needed"
]
},
"component": {
"type": "string"
},
"diagnostics": {
"type": "array",
"items": {}
},
"repair": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"variants": {
"type": "array",
"items": {}
},
"accessibilityRecommendation": {
"type": "object",
"properties": {
"location": {
"type": "string",
"const": "direct-component-props"
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"chartContainer": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"location",
"props",
"chartContainer"
],
"additionalProperties": false
},
"evidenceFragment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"surfaceVersion": {
"type": "string"
}
},
"required": [
"status",
"component",
"diagnostics",
"repair",
"variants",
"surfaceVersion"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢explainChart(component, props)
Return reader grounding: chart description, communicative intent, and navigable data structure.
입력 스키마
{
"type": "object",
"properties": {
"component": {
"type": "string"
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"component",
"props"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "grounded"
},
"grounding": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidenceFragment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"surfaceVersion": {
"type": "string"
}
},
"required": [
"status",
"grounding",
"surfaceVersion"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢auditChart(component, props, viewportWidth)
Run design diagnostics plus accessibility and mobile audits, returning prioritized structured findings.
입력 스키마
{
"type": "object",
"properties": {
"component": {
"type": "string"
},
"props": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"viewportWidth": {
"type": "integer",
"minimum": 240,
"maximum": 1600
}
},
"required": [
"component",
"props"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"passed",
"findings"
]
},
"component": {
"type": "string"
},
"evidenceEnvelope": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidenceGate": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"surfaceVersion": {
"type": "string"
}
},
"required": [
"status",
"component",
"surfaceVersion"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢getChartSchema(component)
Return canonical Semiotic prop-schema guidance for code editing and advanced configuration.
입력 스키마
{
"type": "object",
"properties": {
"component": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"component-list",
"component-schema",
"unknown-component"
]
},
"component": {
"type": "string"
},
"renderable": {
"type": "boolean"
},
"availableComponents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"renderable": {
"type": "boolean"
}
},
"required": [
"name",
"renderable"
],
"additionalProperties": false
}
},
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"accessibility": {
"type": "object",
"properties": {
"directProps": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"chartContainer": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"directProps",
"chartContainer"
],
"additionalProperties": false
},
"behaviorContracts": {
"type": "array",
"items": {}
},
"surfaceVersion": {
"type": "string"
}
},
"required": [
"status",
"surfaceVersion"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}커뮤니티
증거