# tabnas

Семь инструментов над движком разбора: проверить ввод, провалидировать грамматику, разобрать ошибку и сравнить версии. Ставится в любой MCP-клиент.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Автор: tabnas
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/tabnas/mcp
- Обновлён: 2026-10-08
- HTML: https://affpapa.org/nevibecode/mcp/tabnas

## Что делает

Сервер отдаёт агенту семь операций: `parse` строит дерево разбора, `validate_grammar` проверяет сериализованную GrammarSpec, `explain_parse_error` объясняет сбой, `test_grammar` прогоняет TSV-фикстуры, `list_plugins` и `describe_plugin` показывают грамматические плагины, `compare_grammars` сверяет старую и новую грамматику на корпусе. Плюс MCP-ресурсы со схемами и реестром ошибок.

Внутри один TypeScript-код на два фронтенда: stdio-сервер и CLI `tabnas`. У них общее ядро, поэтому вывод `--json` и результат MCP-инструмента совпадают побайтово — расхождение поймал бы golden-тест. Каждый вызов поднимает свежий экземпляр движка, а грамматика проверяется до использования.

Грамматика здесь только данные, не код. На входе любого инструмента, принимающего грамматику, стоит фильтр: он отбивает ключи `__proto__`, `constructor` и `prototype`, ссылки на живые функции, ключ `plugins` и грамматики длиннее 5000 правил. ABNF, EBNF или GBNF напрямую не принимаются — сначала компилируйте, например через `toPureSpec`, и передавайте готовую спецификацию. Пакет опубликован как `@tabnas/mcp`, лицензия MIT.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://mcp.tabnas.dev/mcp`

## Установка

### Claude Code (родная платформа)

1. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http mcp https://mcp.tabnas.dev/mcp
```

2. **Командой платформы**
```bash
claude mcp add tabnas -- npx -y @tabnas/mcp
```

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add tabnas --url https://mcp.tabnas.dev/mcp
```

2. **Командой платформы**
```bash
codex mcp add tabnas -- npx -y @tabnas/mcp
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "tabnas": {
            "url": "https://mcp.tabnas.dev/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "tabnas": {
            "command": "npx",
            "args": [
                "-y",
                "@tabnas/mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "tabnas": {
            "type": "http",
            "url": "https://mcp.tabnas.dev/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "tabnas": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@tabnas/mcp"
            ]
        }
    }
}
```

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http tabnas https://mcp.tabnas.dev/mcp
```

2. **Командой платформы**
```bash
gemini mcp add tabnas npx -y @tabnas/mcp
```

## Когда брать
- проверить, разбирается ли входной текст по заданной грамматике
- найти причину сбоя разбора по коду ошибки
- прогнать TSV-фикстуры и увидеть, какие строки не прошли
- убедиться, что новая версия грамматики принимает всё то же, что старая
- посмотреть, какие грамматические плагины доступны

## Примеры запросов агенту
- Разбери этот файл грамматикой `g.json` и покажи дерево
- Почему упал разбор: объясни ошибку по коду
- Сравни `old.json` и `new.json` на корпусе `corpus/` — что перестало приниматься

## Похожие
- [instrument-data-to-allotrope](https://affpapa.org/nevibecode/skills/instrument-data-to-allotrope.md) — скилл · 2400 установок
- [ocr-grammar-fixer](https://affpapa.org/nevibecode/agents/ocr-grammar-fixer.md) — субагент · 522 установки
- [grammar-check](https://affpapa.org/nevibecode/skills/grammar-check.md) — скилл · 3000 установок
- [claude-code-source-recovery](https://affpapa.org/nevibecode/skills/claude-code-source-recovery.md) — скилл · 693 установки
- [create-voltagent](https://affpapa.org/nevibecode/skills/create-voltagent.md) — скилл · 615 установок
- [cli-to-js-api-wrapper](https://affpapa.org/nevibecode/skills/cli-to-js-api-wrapper.md) — скилл · 439 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
