tabnas
Seven tools over the tabnas parsing engine: parse, validate, diagnose, fixtures, compare.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.tabnas.dev/mcp"
}
}
}Remote-Endpunkte
https://mcp.tabnas.dev/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (7)
🟢parse(input, grammar, options)
Parse input with the tabnas engine. Returns {ok:true, tree} or, on parse failure, {ok:false, diagnostic} — the structured diagnostic described by resource tabnas://schema/diagnostic. An invalid grammar is rejected as {ok:false, errors:[{path,message}]}. Without a grammar the bare engine is used, which defines no rules and produces an undefined tree for every input.
Eingabe-Schema
{
"type": "object",
"properties": {
"input": {
"type": "string",
"description": "Source text to parse."
},
"grammar": {
"type": "object",
"description": "Serialized GrammarSpec (pure JSON, no functions). Schema: resource tabnas://schema/grammar. Grammars are validated before use; a `ref` key or a non-builtin function reference is rejected."
},
"options": {
"type": "object",
"description": "TabnasOptions applied to the fresh instance before the grammar. Data only: a plugins entry is rejected."
}
},
"required": [
"input"
],
"additionalProperties": false
}🟢validate_grammar(grammar)
Validate a serialized GrammarSpec. Structural validation against the bundled grammar schema, an engine load in a fresh instance, and a check that every rule reference (`p`, `r`) names a rule the grammar actually defines — a dangling reference loads cleanly and then fails at parse time with `unknown_rule`. Returns {ok:true, v} (v = declared builtin config-schema version, absent means 1) or {ok:false, errors:[{path,message}]}. Security: a grammar carrying a `ref` key, or any function reference that is not a $-suffixed engine builtin, is rejected — validating a grammar never runs supplied code.
Eingabe-Schema
{
"type": "object",
"properties": {
"grammar": {
"type": "object",
"description": "Serialized GrammarSpec (pure JSON, no functions). Schema: resource tabnas://schema/grammar. Grammars are validated before use; a `ref` key or a non-builtin function reference is rejected."
}
},
"required": [
"grammar"
],
"additionalProperties": false
}🟢explain_parse_error(input, grammar)
Parse input and explain the failure. Returns {failed:false} when the input parses; otherwise {failed:true, diagnostic, registry} where registry is the error-code registry entry {code,message,hint} for the diagnostic code (resource tabnas://errors), or null for a code the bundled registry does not know (e.g. a plugin-declared code).
Eingabe-Schema
{
"type": "object",
"properties": {
"input": {
"type": "string",
"description": "Source text to parse."
},
"grammar": {
"type": "object",
"description": "Serialized GrammarSpec (pure JSON, no functions). Schema: resource tabnas://schema/grammar. Grammars are validated before use; a `ref` key or a non-builtin function reference is rejected."
}
},
"required": [
"input"
],
"additionalProperties": false
}⚪test_grammar(spec, grammar, options)
Run TSV fixture content against a grammar in a fresh instance, using the fleet fixture convention (@tabnas/support): line 1 is a header, the input column is escape-decoded, the expected column is JSON or ERROR / ERROR:<code>. Returns {pass, fail, rows:[{row,input,expected,got,ok}]}. Refuses more than 10000 rows.
Eingabe-Schema
{
"type": "object",
"properties": {
"spec": {
"type": "string",
"description": "TSV fixture content (not a path)."
},
"grammar": {
"type": "object",
"description": "Serialized GrammarSpec (pure JSON, no functions). Schema: resource tabnas://schema/grammar. Grammars are validated before use; a `ref` key or a non-builtin function reference is rejected."
},
"options": {
"type": "object",
"properties": {
"inputCol": {
"type": [
"integer",
"string"
],
"description": "Input column, by position or header name. Default 0."
},
"expectedCol": {
"type": [
"integer",
"string"
],
"description": "Expected column, by position or header name. Default 1."
}
},
"additionalProperties": false
}
},
"required": [
"spec"
],
"additionalProperties": false
}🟢list_plugins
List every bundled tabnas plugin descriptor (tabnas.plugin.json of each fleet repo), sorted by name. Returns {plugins:[...]}.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢describe_plugin(name)
The full descriptor for one plugin, by package name ('@tabnas/csv') or bare fleet name ('csv'). Unknown names get {ok:false, errors} naming the known plugins.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Plugin name."
}
},
"required": [
"name"
],
"additionalProperties": false
}⚪compare_grammars(a, b, corpus, options, depth)
Grammar compatibility (AX plan Phase 5): does candidate grammar B still accept what baseline A accepted, and does it build the same tree for inputs both accept? Returns EVIDENCE AND CONFIDENCE, never a bare verdict: {normalForm, proven[], observed[], changes[], counterexamples[], confidence, why}. confidence:'low' with a stated reason is a successful run, not a failure — language inclusion is undecidable in general, so anything outside the decidable subset is reported not-proven rather than incompatible. Supply `corpus` (real inputs) for the tier that measures what your documents actually do.
Eingabe-Schema
{
"type": "object",
"properties": {
"a": {
"type": "object",
"description": "Baseline grammar: the serialized GrammarSpec already deployed."
},
"b": {
"type": "object",
"description": "Candidate grammar: the serialized GrammarSpec proposed to replace it."
},
"corpus": {
"type": "array",
"items": {
"type": "string"
},
"description": "Inputs to replay through both grammars, comparing acceptance and tree shape."
},
"options": {
"type": "object",
"description": "TabnasOptions applied to both instances."
},
"depth": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "Derivation depth for generated inputs (default 3)."
}
},
"required": [
"a",
"b"
],
"additionalProperties": false
}Community
Nachweis