tabnas
Seven tools over the tabnas parsing engine: parse, validate, diagnose, fixtures, compare.
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.tabnas.dev/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.tabnas.dev/mcp{
"mcpServers": {
"mcp": {
"url": "https://mcp.tabnas.dev/mcp"
}
}
}claude mcp add --transport http mcp https://mcp.tabnas.dev/mcp{
"servers": {
"mcp": {
"type": "http",
"url": "https://mcp.tabnas.dev/mcp"
}
}
}{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@tabnas/mcp@0.1.20"
]
}
}
}claude mcp add mcp -- npx -y @tabnas/mcp@0.1.207 tools, verified live
parseParse 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.
validate_grammarValidate 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:fals
explain_parse_errorParse 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).
test_grammarRun 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.
list_pluginsList every bundled tabnas plugin descriptor (tabnas.plugin.json of each fleet repo), sorted by name. Returns {plugins:[...]}.
describe_pluginThe 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.
compare_grammarsGrammar 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 unde
Alternatives in Other
Compare →CLContractor Licence ChangesA
Did this contractor's licence change? Observed lapses and reinstatements, not a snapshot.
JIJitsuA
Manage Jitsu data pipelines: destinations, streams, connections, functions, live events.
OSOpenCaseLaw — Swiss Caselaw, Statutes & DoctrineA
1M+ Swiss court decisions, statutes & doctrine with citation graph (DE/FR/IT). CC0, free, 42 tools.
BCBusiness Contact FinderA
Check how to contact a business website, and whether that contact path actually works.
DLDomain LivenessA
Is this business's website still there? Checks apex and www, and DNS separately from HTTP.
CAContact AffordanceA
Check how to contact a business website, and whether that contact path actually works.