v0.1.2 — argparse CLI + MCP_CBR_* env-rename + dependency MAJOR-lock
v0.1.2 — sync с эталоном atomno-mcp-fns-check 0.1.1
Sync-патч приводит CLI-обвязку, ограничения зависимостей и метаданные pyproject.toml
к общим конвенциям портфеля atomno-mcp-*.
⚠️ BREAKING CHANGES
-
Console-script переименован:
mcp-cbr-rates→atomno-mcp-cbr-rates.
В конфигах Cursor / Claude Desktop / Cline нужно обновитьcommand. -
Env-переменные теперь имеют префикс
MCP_CBR_*(старые имена работают,
но логируютDeprecationWarningодин раз за процесс; удалятся в0.2.0):Было (deprecated) Стало (canonical) CBR_LOG_LEVELMCP_CBR_LOG_LEVELCBR_HTTP_TIMEOUTMCP_CBR_HTTP_TIMEOUTCBR_CACHE_DAILY_TTLMCP_CBR_CACHE_DAILY_TTLCBR_CACHE_HISTORY_TTLMCP_CBR_CACHE_HISTORY_TTL
Установка
uvx atomno-mcp-cbr-rates # рекомендуется (без установки)
pipx install atomno-mcp-cbr-rates
pip install atomno-mcp-cbr-ratesКонфиг для Cursor / Claude Desktop / Cline (обновлённый)
{
"mcpServers": {
"atomno-mcp-cbr-rates": {
"command": "atomno-mcp-cbr-rates",
"env": { "MCP_CBR_LOG_LEVEL": "INFO" }
}
}
}Fixed
- CLI:
--helpи--versionбольше не вешают процесс. До0.1.2команда
mcp-cbr-rates --helpзапускала FastMCP по stdio и подвисала, ожидая stdin
от MCP-клиента. Теперьmain()используетargparseи завершается с exit-code 0
без запуска сервера. - Loud-fail на невалидный
MCP_CBR_LOG_LEVEL. Процесс выходит с exit-code 2
и явным сообщением, без silent-INFO-fallback. - Рассинхрон версии: до
0.1.2в__init__.__version__стояло"0.1.0",
а вpyproject.toml—"0.1.1". Теперь оба0.1.2.
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— 25 тестов на CLI-обвязку и backward-compat env.- PEP 561 маркер
py.typed— type-аннотации видны mypy / IDE. - Дополнительные classifiers:
Natural Language :: Russian,Typing :: Typed,
Intended Audience :: Financial and Insurance Industry,Operating System :: OS Independent,
Topic :: Software Development :: Libraries :: Python Modules.
Changed
-
Development Status:3 - Alpha→4 - Beta— пакет уже опубликован
на PyPI и Glama. -
main(argv: list[str] | None = None) -> int— сигнатура изменена для
тестируемости. Возвращает exit-code (0/2). Вызов изif __name__ == "__main__":
обёрнут вraise SystemExit(main()). -
Dependency MAJOR-lock — каждая зависимость теперь имеет верхнюю границу
по SemVer:Было Стало mcp>=1.2.0mcp>=1.2.0,<2.0.0httpx>=0.27.0httpx>=0.27.0,<1.0.0pydantic>=2.6.0pydantic>=2.6.0,<3.0.0defusedxml>=0.7.1defusedxml>=0.7.1,<1.0.0
Migration guide (0.1.1 → 0.1.2)
- Cursor / Claude Desktop / Cline config: замените
"command": "mcp-cbr-rates"
на"command": "atomno-mcp-cbr-rates". - Env-переменные: при возможности переименуйте
CBR_*→MCP_CBR_*.
Старые работают, но логируют DeprecationWarning. Полное удаление — в0.2.0. - Через
uvx(рекомендуется):uvx atomno-mcp-cbr-rates— без установки.
Качество
- Тесты: 77 (52 существующих + 25 новых на CLI/env-compat). Все проходят.
- Lint:
ruff checkclean (правилаE F W I N UP B ASYNC). - Build:
twine checkPASSED. - Smoke-test в чистом venv:
pip install dist/*.whl→
atomno-mcp-cbr-rates --version→ OK; старогоmcp-cbr-rates.exeнет.
Совместимость
- ✅ MCP-API не менялся. Все 5 тулзов (
get_rate,history_rates,key_rate,
inflation,statistics) работают идентично 0.1.1. ⚠️ CLI-команда переименована (см. BREAKING выше). Обновите конфиги MCP-клиентов.- ✅ Env-переменные backward-compat: старые имена
CBR_*продолжают работать
с deprecation-warning.
Ссылки
- PyPI: https://pypi.org/project/atomno-mcp-cbr-rates/0.1.2/
- Документация: https://github.com/atomno-labs/mcp-cbr-rates#readme
- Эталон конвенций:
PRODUCTS/ATOMNO/_knowledge/MCP_BUILD_CHECKLIST.md