# tabnas

Seven tools over a parsing engine: check input, validate a grammar, explain a failed parse, compare grammar versions. Works in any MCP client.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: tabnas
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/tabnas/mcp
- Updated: 2026-10-08
- HTML: https://affpapa.org/en/nevibecode/mcp/tabnas

## What it does

The server hands your agent seven operations. `parse` builds a tree, `validate_grammar` checks a serialized GrammarSpec, `explain_parse_error` tells you why a parse failed, `test_grammar` runs TSV fixtures, `list_plugins` and `describe_plugin` cover grammar plugins, and `compare_grammars` checks whether a new grammar still accepts what the old one did. Bundled MCP resources carry the schemas and the error registry.

One TypeScript codebase backs two front-ends: the stdio server and the `tabnas` CLI. They share a core, so a `--json` CLI result and the matching MCP tool result come out byte-identical, and a golden test keeps it that way. Each call spins up a fresh engine instance, and any grammar you pass gets validated before it is used.

Grammars are data here, never code. A firewall runs on every grammar-accepting call: it rejects `__proto__`, `constructor` and `prototype` keys, live function references, a `plugins` key, and grammars above 5000 rules. ABNF, EBNF or GBNF source is not accepted — compile it first, for instance with `toPureSpec`, then send the spec. Published as `@tabnas/mcp` under MIT.

## Requirements
- Needs: Node.js (commands run via npx)
- Remote server: `https://mcp.tabnas.dev/mcp`

## Install

### Claude Code (native platform)

1. **Platform CLI: remote server**
```bash
claude mcp add --transport http mcp https://mcp.tabnas.dev/mcp
```

2. **Platform CLI**
```bash
claude mcp add tabnas -- npx -y @tabnas/mcp
```

### Codex

1. **Platform CLI: remote server**
```bash
codex mcp add tabnas --url https://mcp.tabnas.dev/mcp
```

2. **Platform CLI**
```bash
codex mcp add tabnas -- npx -y @tabnas/mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "tabnas": {
            "url": "https://mcp.tabnas.dev/mcp"
        }
    }
}
```
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "tabnas": {
            "command": "npx",
            "args": [
                "-y",
                "@tabnas/mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "tabnas": {
            "type": "http",
            "url": "https://mcp.tabnas.dev/mcp"
        }
    }
}
```
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "tabnas": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@tabnas/mcp"
            ]
        }
    }
}
```

### Gemini CLI

1. **Platform CLI: remote server**
```bash
gemini mcp add -t http tabnas https://mcp.tabnas.dev/mcp
```

2. **Platform CLI**
```bash
gemini mcp add tabnas npx -y @tabnas/mcp
```

## When to use it
- check whether an input parses under a given grammar
- trace a parse failure back to its error code
- run TSV fixtures and see which rows fail
- confirm a grammar change still accepts the old language
- list the grammar plugins available to the engine

## Example prompts
- Parse this file with the grammar in `g.json` and show me the tree
- Why did the parse fail? Explain the error code
- Compare `old.json` and `new.json` over `corpus/` — what stopped being accepted

## Similar
- [instrument-data-to-allotrope](https://affpapa.org/en/nevibecode/skills/instrument-data-to-allotrope.md) — skill · 2400 installs
- [ocr-grammar-fixer](https://affpapa.org/en/nevibecode/agents/ocr-grammar-fixer.md) — subagent · 522 installs
- [grammar-check](https://affpapa.org/en/nevibecode/skills/grammar-check.md) — skill · 3000 installs
- [claude-code-source-recovery](https://affpapa.org/en/nevibecode/skills/claude-code-source-recovery.md) — skill · 693 installs
- [create-voltagent](https://affpapa.org/en/nevibecode/skills/create-voltagent.md) — skill · 615 installs
- [cli-to-js-api-wrapper](https://affpapa.org/en/nevibecode/skills/cli-to-js-api-wrapper.md) — skill · 439 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
