v0.1.3 — argparse CLI, dependency MAJOR-lock, classifiers sync
v0.1.3 — sync с эталоном atomno-mcp-fns-check 0.1.1
Sync-патч приводит CLI-обвязку, ограничения зависимостей и метаданные pyproject.toml
к общим конвенциям портфеля atomno-mcp-*.
Установка
uvx atomno-mcp-egrul # рекомендуется (без установки)
pipx install atomno-mcp-egrul
pip install atomno-mcp-egrulFixed
- CLI:
--helpи--versionбольше не вешают процесс. До0.1.3команда
atomno-mcp-egrul --helpзапускала FastMCP по stdio и подвисала, ожидая stdin
от MCP-клиента. Теперьmain()используетargparseи завершается с exit-code 0
без запуска сервера. - Loud-fail на невалидный
MCP_EGRUL_LOG_LEVEL. Процесс выходит с exit-code 2
и явным сообщением, без silent-INFO-fallback.
Added
- Новые CLI-флаги:
--version/-V— версия пакета;--transport {stdio,http,sse,streamable-http}— выбор транспорта (defaultstdio);--host,--port— для http/sse/streamable-http транспортов;--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}— приоритет над env.
tests/test_cli.py— 20 тестов на CLI-обвязку (help / version / transport /
log-level precedence / loud-fail на невалидный env / парсер-дефолты).- PEP 561 маркер
py.typed— IDE и mypy теперь подхватывают type-аннотации пакета. - Дополнительные classifiers:
Natural Language :: Russian,Typing :: Typed,
Intended Audience :: Financial and Insurance Industry,Operating System :: OS Independent,
Topic :: Software Development :: Libraries :: Python Modules. - Секция
[project.urls]вpyproject.toml(Homepage, Repository, Issues,
Changelog, Documentation).
Changed
-
Development Status:3 - Alpha→4 - Beta— пакет уже опубликован
на PyPI и Smithery, прошёл 365 тестов с 100% покрытием. -
main(argv: list[str] | None = None) -> int— сигнатура изменена для
тестируемости. Возвращает exit-code (0/2). Вызов изif __name__ == "__main__":
обёрнут вraise SystemExit(main()). -
Dependency MAJOR-lock — каждая зависимость теперь имеет верхнюю границу
по SemVer. Защищает пользователей от breaking changes в мажорных релизах
вышестоящих библиотек:Было Стало fastmcp>=0.2.0fastmcp>=0.2.0,<4.0.0httpx>=0.27.0httpx>=0.27.0,<1.0.0pydantic>=2.6.0pydantic>=2.6.0,<3.0.0aiosqlite>=0.20.0aiosqlite>=0.20.0,<1.0.0python-dateutil>=2.9.0python-dateutil>=2.9.0,<3.0.0lxml>=5.2.0lxml>=5.2.0,<7.0.0apscheduler>=3.10.0apscheduler>=3.10.0,<4.0.0
Качество
- Тесты: 365 (включая 20 новых на CLI). Coverage 100% (было 100%, не упало).
- Lint:
ruff checkclean (правилаE F I B UP ASYNC). - Build:
twine checkPASSED. - Smoke-test в чистом venv:
pip install dist/*.whl→atomno-mcp-egrul --version→ OK.
Совместимость
- ✅ Обратно совместимо на уровне MCP-API. Все 8 тулзов (
ping,search_by_inn,
search_by_ogrn,search_by_name,get_full_card,get_founders,get_director,
bulk_cards) работают идентично 0.1.2. - ✅ Конфиги для Cursor / Claude Desktop / Cline не требуют изменений.
⚠️ Если вы внутренне импортировалиmcp_egrul.server.mainи ожидали возвратNone,
обновите код: теперь возвращаетсяint(exit-code).
Ссылки
- PyPI: https://pypi.org/project/atomno-mcp-egrul/0.1.3/
- Документация: https://github.com/atomno-labs/mcp-egrul#readme
- Эталон конвенций:
PRODUCTS/ATOMNO/_knowledge/MCP_BUILD_CHECKLIST.md