MCP 서버

spintax.net MCP server

net.spintax/mcp
마케팅 및 광고 미디어 및 콘텐츠 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Validates, analyzes, renders, and supports authoring of spintax content templates and variants.

analyze_spintax
Analyze a spintax template
Reports what the template needs and contains: refs (variables referenced), sets (#set macros, re-picked per reference), defs (#def, rolled once per render), includes, diagnostics, and best-effort construct counts. Answers "what variables must I supply" — it is NOT a variant-cardinality counter.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['template'], 'properties': {'locale': {'type': 'string', 'description': 'Locale for {plural …} arity, e.g. "en" (2-form) or "ru" (3-form: ru/uk/be/sr/hr/bs). Omit for the 2-form default.'}, 'template': {'type': 'string', 'maxLength': 8192, 'description': 'Spintax template source (max 8192 characters). #include is disabled on this server.'}, 'knownVariables': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['refs', 'sets', 'defs', 'includes', 'diagnostics', 'constructs'], 'properties': {'defs': {'type': 'array', 'items': {'type': 'string'}}, 'refs': {'type': 'array', 'items': {'type': 'string'}}, 'sets': {'type': 'array', 'items': {'type': 'string'}}, 'includes': {'type': 'array', 'items': {'type': 'string'}}, 'constructs': {'type': 'object', 'additionalProperties': {'type': 'integer'}}, 'diagnostics': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'code', 'message', 'line', 'column'], 'properties': {'code': {'type': 'string', 'description': 'Stable machine code, e.g. plural.arity'}, 'data': {'type': 'object'}, 'line': {'type': 'integer', 'description': '1-based'}, 'column': {'type': 'integer', 'description': '1-based'}, 'endLine': {'type': 'integer'}, 'message': {'type': 'string'}, 'severity': {'enum': ['error', 'warning'], 'type': 'string'}, 'endColumn': {'type': 'integer'}}}}}}
render_spintax
Render spintax variants
Renders up to 20 variants. With a seed the output is deterministic (variant i uses seed "<seed>#<i>"); without one it is random. The engine is lenient: structural mistakes never throw, they surface in the output — run validate_spintax first.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['template'], 'properties': {'seed': {'type': ['string', 'number'], 'description': 'Deterministic RNG seed; omit for random output.'}, 'count': {'type': 'integer', 'default': 3, 'maximum': 20, 'minimum': 1, 'description': 'Number of variants (1–20).'}, 'locale': {'type': 'string', 'description': 'Locale for {plural …} arity, e.g. "en" (2-form) or "ru" (3-form: ru/uk/be/sr/hr/bs). Omit for the 2-form default.'}, 'context': {'type': 'object', 'description': 'Variable map, e.g. {"CITY": "Prague"}. Overrides #set/#def definitions.', 'additionalProperties': {'type': 'string'}}, 'template': {'type': 'string', 'maxLength': 8192, 'description': 'Spintax template source (max 8192 characters). #include is disabled on this server.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['variants'], 'properties': {'variants': {'type': 'array', 'items': {'type': 'string'}}}}
spintax_authoring_guide
How to write a spintax template
Read this BEFORE writing or editing a spintax template — it is the canonical authoring guide the whole spintax toolchain is written against, not a tutorial. Pass the locale you will author in: for ru/uk/be and sr/hr/bs it carries the agreement and case rules that decide whether the variants read as human writing, which is the hard part and the part a valid template can still get wrong. Returns text to read, not a template.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'locale': {'type': 'string', 'description': 'Language you will author in, e.g. "en" or "ru". Selects the grammar rules and the worked examples. Omit for the language-neutral rules only.'}, 'variationLevel': {'enum': ['conservative', 'balanced', 'aggressive'], 'type': 'string', 'description': 'How much markup to use. Omit to decide for yourself — the guide then states no level.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['rules', 'promptVersion'], 'properties': {'rules': {'type': 'string', 'description': 'The authoring rules, as text to read.'}, 'locale': {'type': 'string'}, 'promptVersion': {'type': 'string', 'description': 'Version of the rules TEXT (@spintax/authoring-prompt PROMPT_VERSION). Moves when the wording changes in a way that can change what a model writes.'}}}
validate_spintax
Validate a spintax template
Static validation: returns diagnostics with severity, stable code, message and 1-based line/column. No "error"-severity diagnostic means the template is structurally sound — read the warnings before rendering, because some of them (plural.locale-missing) mean a block will not resolve. Pass knownVariables for names you will supply at render time to silence their variable.undefined warnings.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['template'], 'properties': {'locale': {'type': 'string', 'description': 'Locale for {plural …} arity, e.g. "en" (2-form) or "ru" (3-form: ru/uk/be/sr/hr/bs). Omit for the 2-form default.'}, 'template': {'type': 'string', 'maxLength': 8192, 'description': 'Spintax template source (max 8192 characters). #include is disabled on this server.'}, 'knownVariables': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Variable names the caller will supply at render time (case-insensitive).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['valid', 'errorCount', 'warningCount', 'diagnostics'], 'properties': {'valid': {'type': 'boolean', 'description': 'True when no error-severity diagnostics.'}, 'errorCount': {'type': 'integer'}, 'diagnostics': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'code', 'message', 'line', 'column'], 'properties': {'code': {'type': 'string', 'description': 'Stable machine code, e.g. plural.arity'}, 'data': {'type': 'object'}, 'line': {'type': 'integer', 'description': '1-based'}, 'column': {'type': 'integer', 'description': '1-based'}, 'endLine': {'type': 'integer'}, 'message': {'type': 'string'}, 'severity': {'enum': ['error', 'warning'], 'type': 'string'}, 'endColumn': {'type': 'integer'}}}}, 'warningCount': {'type': 'integer'}}}
추가됨
spintax_authoring_guide
2026년 9월 17일 12:54 PM
추가됨
analyze_spintax
2026년 9월 17일 12:54 PM
추가됨
render_spintax
2026년 9월 17일 12:54 PM
추가됨
validate_spintax
2026년 9월 17일 12:54 PM