tabnas — MCP-сервер для Claude Code: парсинг и грамматики
Семь инструментов над движком разбора: проверить ввод, провалидировать грамматику, разобрать ошибку и сравнить версии. Ставится в любой MCP-клиент.
claude mcp add --transport http mcp https://mcp.tabnas.dev/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.
Какие задачи решает
- проверить, разбирается ли входной текст по заданной грамматике
- найти причину сбоя разбора по коду ошибки
- прогнать TSV-фикстуры и увидеть, какие строки не прошли
- убедиться, что новая версия грамматики принимает всё то же, что старая
- посмотреть, какие грамматические плагины доступны
Примеры запросов агенту
- Разбери этот файл грамматикой
g.jsonи покажи дерево - Почему упал разбор: объясни ошибку по коду
- Сравни
old.jsonиnew.jsonна корпусеcorpus/— что перестало приниматься
Как установить tabnas
1Командой платформы: удалённый сервер
claude mcp add --transport http mcp https://mcp.tabnas.dev/mcp2Командой платформы
claude mcp add tabnas -- npx -y @tabnas/mcp1Командой платформы: удалённый сервер
codex mcp add tabnas --url https://mcp.tabnas.dev/mcp2Командой платформы
codex mcp add tabnas -- npx -y @tabnas/mcpФайл настроек
{
"mcpServers": {
"tabnas": {
"url": "https://mcp.tabnas.dev/mcp"
}
}
}{
"mcpServers": {
"tabnas": {
"command": "npx",
"args": [
"-y",
"@tabnas/mcp"
]
}
}
}Файл настроек
{
"servers": {
"tabnas": {
"type": "http",
"url": "https://mcp.tabnas.dev/mcp"
}
}
}{
"servers": {
"tabnas": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tabnas/mcp"
]
}
}
}1Командой платформы: удалённый сервер
gemini mcp add -t http tabnas https://mcp.tabnas.dev/mcp2Командой платформы
gemini mcp add tabnas npx -y @tabnas/mcpПо шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о tabnas
Как установить tabnas в Claude Code?
Через CLI: claude mcp add tabnas -- npx -y @tabnas/mcp. Если нужен удалённый эндпоинт, есть вариант claude mcp add --transport http tabnas https://mcp.tabnas.dev/mcp.
Что делает tabnas?
Даёт агенту семь инструментов над движком разбора: parse, validate_grammar, explain_parse_error, test_grammar, list_plugins, describe_plugin и compare_grammars.
Можно передать грамматику в формате ABNF или EBNF?
Нет, инструменты принимают только сериализованную GrammarSpec в чистом JSON. Скомпилируйте исходник заранее, например через toPureSpec, и передайте результат.