Skip to main content

pocketcoder-gost

MCP-сервер для генерации технических документов по ГОСТ/ЕСКД. Шесть текстовых ЭД (паспорт, РЭ, ТУ, ИМ, ФО, этикетка) × три формата (md, docx, pdf) из одного product_data.

Подключается к Claude Code, Cursor или Claude Desktop по протоколу MCP. LLM-инференс — на стороне твоего агента, сервер делает «руки»: знает структуру ГОСТов, штамп ЕСКД, нумерацию, склонения, и собирает финальные файлы под нормоконтроль.

Зачем

Конструктор пишет ТУ или паспорт неделю — copy-paste из соседнего изделия, ручная сверка с ГОСТом, правка нумерации. С pocketcoder-gost весь скелет ЕСКД-документа собирается за секунды из одной структуры product_data, а агент дописывает только техническую конкретику.

Установка

pip install pocketcoder-gost

Опциональные toolchains для рендера в docx/pdf:

Формат Что нужно Установка
md ничего сверх пакета —
docx pandoc brew install pandoc  |  apt install pandoc
pdf xelatex + класс eskdx brew install --cask mactex-no-gui  |  apt install texlive-xetex texlive-lang-cyrillic && tlmgr install eskdx

Если toolchain отсутствует — generate_document вернёт {error, hint} с per-OS подсказкой, не упадёт.

Подключение к MCP-клиенту

Добавь в конфиг клиента:

Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) / %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "pocketcoder-gost": {
      "command": "pocketcoder-gost",
      "args": ["mcp"]
    }
  }
}

Cursor — ~/.cursor/mcp.json (или .cursor/mcp.json в проекте):

{
  "mcpServers": {
    "pocketcoder-gost": {
      "command": "pocketcoder-gost",
      "args": ["mcp"]
    }
  }
}

Claude Code — .mcp.json в корне проекта или ~/.claude.json:

{
  "mcpServers": {
    "pocketcoder-gost": {
      "command": "pocketcoder-gost",
      "args": ["mcp"]
    }
  }
}

После перезапуска клиента в чате доступны 5 tools (list_standards, get_standard_section, get_document_structure, generate_document, validate_normcontrol).

Доступные tools

Tool Назначение
list_standards() Список ГОСТов, входящих в MVP
get_standard_section(standard_id, section) Текст конкретного раздела ГОСТ. section = номер (4.2), toc, meta
get_document_structure(doc_type) Скелет разделов: passport | manual | tu | mounting | form | label
generate_document(doc_type, product_data, format, output_path?) Рендер документа. format = md | docx | pdf. Возвращает путь или {error, hint}
validate_normcontrol(text, standards) Заглушка под валидатор нормоконтроля (полноценный — в v0.2)

Пример: попросить агента сгенерировать паспорт

В чате клиента:

Сделай паспорт на изделие «Контроллер климат-системы КЛИМ-200», обозначение АВСТ.453621.200 ПС, разработчик — АО «НПП АвтоСистемы», в формате PDF.

Агент составит product_data (универсальная модель ProductBase + открытая таблица ТТХ через parameters[]), вызовет generate_document и сохранит passport.pdf в указанный каталог.

Изделие и организация — синтетика для демонстрации структуры документа.

Что внутри

pocketcoder_gost/
├── models/           ProductBase, Person, Parameter (pydantic v2)
├── templates/        15 .j2 шаблонов: 6 doc-types × {md,tex} + штамп ЕСКД + таблица ТТХ
├── generators/       md + docx (pandoc) + pdf (xelatex) пайплайны
├── parsers/          парсеры ГОСТ-разделов
├── loaders/          загрузчики product_data
├── standards/        мета-данные стандартов
└── mcp/              FastMCP-сервер, 5 tools

Стандарты, по которым штампует:

  • ГОСТ 2.114-2016 (ТУ)
  • ГОСТ 2.610-2019 (паспорт, РЭ, ИМ, ФО, этикетка)
  • ГОСТ 2.104-2006 (штамп ЕСКД)
  • ГОСТ 2.601-2019 (ЭД на изделие)
  • ГОСТ 15150-69 (условия хранения)
  • ГОСТ 14254-2015 / IEC 60529 (степень защиты IP)
  • ГОСТ 8.417-2002 (единицы величин)

Открытая таблица ТТХ

ProductBase содержит универсальные поля (наименование, обозначение, питание, габариты и т.д.). Доменно-специфичные ТТХ (масса ОТВ, класс пожара, цвет огнетушащего вещества — что угодно) передаются через массив parameters[] с опциональными группами и сносками. Шаблоны автоматически рендерят группированную или плоскую таблицу.

{
  "parameters": [
    {"name": "Огнетушащее вещество", "value": "Аэрозоль", "group": "ТТХ"},
    {"name": "Масса заряда ОТВ", "value": "1,2 кг", "group": "ТТХ"},
    {"name": "Время работы", "value": "8 с", "group": "Эксплуатация", "note": "1"}
  ]
}

Разработка

git clone https://github.com/pocketcoder-ch/pocketcoder-gost.git
cd pocketcoder-gost
uv sync
pytest                       # 125 unit + e2e тестов
python tools/mcp_smoke.py    # 24 live MCP-вызова

Лицензия

MIT. Автор и единственный мейнтейнер — Dmitrii Chashchin (cdv.inbox@gmail.com).

Roadmap

  • v0.1 — MCP + 6 ЕСКД-шаблонов в md/docx/pdf, открытая таблица ТТХ ← текущий
  • v0.2 — валидатор нормоконтроля (ЕСПД 1986, коды 01–47): ёлочки, тире, единицы СИ, мёртвые ссылки на пункты/таблицы, обязательные разделы
  • v0.3+ — облако pocketcoder.tech: HTTP-backend через POCKETCODER_API_KEY, биллинг, коммерческие шаблоны (КП, ТКП, договор)

Metadata

Release files for pocketcoder-gost 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pocketcoder-gost 0.1.2
File Size Uploaded Provenance Actions
pocketcoder_gost-0.1.2.tar.gz 122.1 kB Without provenance Details for pocketcoder_gost-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pocketcoder-gost 0.1.2
File Interpreter ABI Platform Actions
pocketcoder_gost-0.1.2-py3-none-any.whl Python 3 none any Details for pocketcoder_gost-0.1.2-py3-none-any.whl

Total release size: 273.4 kB

Release files / pocketcoder_gost-0.1.2.tar.gz

Download URL pocketcoder_gost-0.1.2.tar.gz
Size 122.1 kB
Tags Source
SHA-256 checksum
How to use checksums
53c87da1b8bd068f73367f0c55f8cbf26074f1335c527a2369ca746f4b36376c
BLAKE2b-256 checksum
How to use checksums
e035ccfb99bd9ab1433eb7fde66566aa1d7600fe3e498876ee4e1abe13f47506
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / pocketcoder_gost-0.1.2-py3-none-any.whl

Download URL pocketcoder_gost-0.1.2-py3-none-any.whl
Size 151.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a6c535fa97000e981c3b62957cefcd89f93235447e8485bea8989222c03b4727
BLAKE2b-256 checksum
How to use checksums
1eb2e38d2f759691bf5690561e61767a4c191d96bd705aa99d092d20037770dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Security for pocketcoder-gost 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page