{
  "markdown": "# Yzel (Узел)\n\n> **MCP-коннекторы для бизнес-инструментов СНГ.** Первый серьёзный MCP-сервер для 1С — плюс 7 других систем в одном пакете.\n>\n> **MCP connectors for CIS business tools.** The first serious MCP server for 1C:Enterprise — plus 7 other CIS business systems in a single package.\n\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/)\n[![MCP Compatible](https://img.shields.io/badge/MCP-compatible-green.svg)](https://modelcontextprotocol.io)\n[![CI](https://github.com/Aiyo28/yzel/actions/workflows/ci.yml/badge.svg)](https://github.com/Aiyo28/yzel/actions/workflows/ci.yml)\n[![PyPI](https://img.shields.io/pypi/v/yzel.svg)](https://pypi.org/project/yzel/)\n\n<!-- mcp-name: io.github.Aiyo28/yzel -->\n\nYzel подключает Claude, ChatGPT и других AI-ассистентов к 1С:Предприятию, Битрикс24, AmoCRM, МойСкладу, Wildberries, Ozon, Telegram и iiko — через [Model Context Protocol](https://modelcontextprotocol.io).\n\n**Открытый проект. MIT. Без платных тарифов, без закрытых модулей, без облачной SaaS-надстройки.** Yzel существует чтобы бизнес СНГ мог подключать свои рабочие инструменты к AI без 60 000 ₽ за кастомную интеграцию.\n\n---\n\n## Почему Yzel / Why Yzel\n\n**1С — причина, по которой это существует.** Из 10+ MCP-серверов для 1С, которые можно найти на GitHub, ни один не решает базовые проблемы рабочего использования: динамическая дискавери схемы через `$metadata`, корректная работа с кириллическими именами объектов (`Catalog_Контрагенты` не `Catalog_Counterparties`), авто-определение on-prem vs 1С:Fresh, streaming-парсинг `$metadata` для больших ERP-конфигураций. Yzel делает это как базовый функционал, а не TODO в README.\n\nДля остальных инструментов — Bitrix24, AmoCRM, МойСклад и т.д. — MCP-серверы существуют в разных качествах у разных авторов. Yzel собирает их в один пакет с общим credential vault, едиными паттернами ошибок и единым CLI. Ставится одной командой.\n\n**Why the portfolio exists:** fragmented MCP landscape. Eight connectors × eight setup paths × eight security models × eight bug trackers = nobody ships. Yzel bundles them with a shared vault, unified error handling, and one CLI.\n\n---\n\n## Поддерживаемые сервисы / Supported connectors\n\n| Сервис / Service | API | Авторизация / Auth | Статус |\n|---|---|---|---|\n| **1С:Предприятие** (on-prem + Fresh) | OData v3 + JSON | Basic Auth | ✅ Stable |\n| **Wildberries** Seller API | REST (5 хостов) | JWT token | ✅ Stable |\n| **Ozon** Seller API | REST | Client-Id + Api-Key | ✅ Stable |\n| **Bitrix24** | REST | Webhook URL | ✅ Stable |\n| **AmoCRM / Kommo** | REST v4 | OAuth2 (3mo refresh guard) | ✅ Stable |\n| **МойСклад** | JSON API 1.2 | Bearer Token | ✅ Stable |\n| **Telegram Bot** | Bot API | Bot Token | ✅ Stable |\n| **iiko Cloud** (F&B POS) | REST | apiLogin → 1h Bearer | ✅ Stable |\n\nПланируется / On roadmap: WhatsApp (через `wacli` sidecar), goszakup.gov.kz, Zoom / Google Meet / Yandex Telemost.\n\n---\n\n## Установка / Install\n\nТребуется Python 3.11+. Работает на Windows без WSL / Python 3.11+, works on Windows without WSL.\n\n**Ничего не устанавливать / Nothing to install** — рекомендуется. `uvx` скачивает и запускает\nпакет по требованию, поэтому в конфиге MCP-клиента не нужен ни клон, ни рабочая директория:\n\n```bash\nuvx --from yzel yzel --help\n```\n\n**Установить / Install:**\n\n```bash\npip install yzel        # или: uv tool install yzel\n```\n\n**Из исходников / From source** (для разработки / for development):\n\n```bash\ngit clone https://github.com/Aiyo28/yzel.git\ncd yzel\nuv sync --extra dev\nuv run pytest           # 138 тестов / 138 tests\n```\n\n---\n\n## Быстрый старт / Quick start\n\n### 1. Настройте подключение / Configure a connection\n\n```bash\n# 1С (on-prem)\nyzel config add-1c\n\n# 1С:Fresh (облако)\nyzel config add-1c --fresh\n\n# Wildberries\nyzel config add-wildberries\n\n# Все остальные / any other\nyzel config add-bitrix      # Битрикс24\nyzel config add-amocrm      # AmoCRM\nyzel config add-moysklad    # МойСклад\nyzel config add-ozon        # Ozon\nyzel config add-telegram    # Telegram Bot\nyzel config add-iiko        # iiko Cloud\n\n# Список подключений\nyzel config list\n```\n\nУчётные данные хранятся зашифрованными (AES-256) в локальном SQLite-vault под `~/.yzel/store.db`. Ничего не отправляется в облако.\n\n### 2. Подключите к Claude Desktop / Wire into Claude Desktop\n\nДобавьте в `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"yzel-1c\":       { \"command\": \"uvx\", \"args\": [\"--from\", \"yzel\", \"yzel-1c\"] },\n    \"yzel-bitrix24\": { \"command\": \"uvx\", \"args\": [\"--from\", \"yzel\", \"yzel-bitrix24\"] }\n  }\n}\n```\n\nКаждый коннектор — отдельный MCP-сервер. Подключайте только те, которые нужны.\n\n| Коннектор | Команда / command | Коннектор | Команда / command |\n|---|---|---|---|\n| 1С | `yzel-1c` | Ozon | `yzel-ozon` |\n| Битрикс24 | `yzel-bitrix24` | Telegram | `yzel-telegram` |\n| AmoCRM | `yzel-amocrm` | iiko | `yzel-iiko` |\n| МойСклад | `yzel-moysklad` | Wildberries | `yzel-wildberries` |\n\nКаждая — `{ \"command\": \"uvx\", \"args\": [\"--from\", \"yzel\", \"<команда>\"] }`.\n\n### 3. Спрашивайте данные у AI / Ask the AI\n\n```\nПокажи последние 10 реализаций товаров из 1С за эту неделю,\nсгруппируй по контрагентам.\n```\n\n```\nНайди все сделки в стадии «Переговоры» в AmoCRM,\nу которых нет связанной задачи.\n```\n\n```\nВыведи остатки товара «Ноутбук HP» из МойСклада\nи текущие цены на Wildberries.\n```\n\n---\n\n## MCP-сервер каждого коннектора / Per-connector MCP servers\n\n```bash\n# 1С:Предприятие (OData v3)\nuv run python -m yzel.connectors.onec.server\n\n# Wildberries Seller\nuv run python -m yzel.connectors.wildberries.server\n\n# Ozon Seller\nuv run python -m yzel.connectors.ozon.server\n\n# Битрикс24\nuv run python -m yzel.connectors.bitrix24.server\n\n# AmoCRM\nuv run python -m yzel.connectors.amocrm.server\n\n# МойСклад\nuv run python -m yzel.connectors.moysklad.server\n\n# Telegram Bot\nuv run python -m yzel.connectors.telegram.server\n\n# iiko Cloud\nuv run python -m yzel.connectors.iiko.server\n```\n\n---\n\n## Архитектура / Architecture\n\n```\n~/.yzel/store.db       ← зашифрованные credentials (AES-256)\n       │\n       ├── Yzel CLI     ← добавление/удаление подключений\n       │\n       └── MCP-серверы  ← по одному на коннектор\n           ├── 1C (OData v3, Cyrillic-aware, streaming $metadata)\n           ├── Wildberries (5 хостов, per-host rate limits)\n           ├── Ozon (dual-header auth, sandbox support)\n           ├── Bitrix24 (webhook, leaky-bucket 2 req/sec)\n           ├── AmoCRM (OAuth2 + 3mo refresh-staleness guard)\n           ├── Moysklad (Bearer, rate limiter, expand-aware)\n           ├── Telegram (retry_after handling)\n           └── iiko (apiLogin → 1h Bearer, auto-refresh)\n                    │\n                    └── Claude / ChatGPT / любой MCP-клиент\n```\n\nКаждый коннектор:\n- Отдельный пакет в `src/yzel/connectors/<name>/`\n- Собственный mock-сервер для тестов (`tests/mock_<name>_server.py`)\n- Типизированные ошибки с `status_code` + RU-сообщения для MCP\n- Без модификаций клиентских систем — только публичные API\n\n---\n\n## Особенности 1С / 1C-specific features\n\nКаждая 1С-инсталляция уникальна. Yzel решает типичные боли:\n\n- **Динамическая дискавери схемы.** На старте парсится `$metadata` — коннектор узнаёт доступные справочники, документы, регистры, включая кастомные.\n- **Кириллические имена как есть.** `Справочник.Номенклатура` остаётся `Справочник.Номенклатура`. Никакой транслитерации.\n- **Streaming-парсинг `$metadata`.** Конфигурации ERP могут давать 10+ МБ XML. Yzel не загружает всё в память.\n- **Авто-определение 1С:Fresh vs on-prem.** Разные endpoint-форматы (`1cfresh.com/a/sbm/<id>/odata/` vs `<host>/<base>/odata/`) обрабатываются прозрачно.\n- **Basic Auth без токен-сессий.** В 1С нет refresh-потока — каждый запрос отправляет base64(user:pass). Yzel не изобретает несуществующую token-refresh логику.\n- **Без BSL-расширений.** Yzel подключается к опубликованным OData/HTTP API. Никаких модификаций конфигурации 1С не требуется.\n\nТестирование: 138 unit-тестов против mock-серверов. Транспорт + `$metadata` parsing подтверждены на живом 1С:Fresh endpoint. Полное data-plane тестирование против реального 1С требует инфобазы с опубликованными через OData объектами (on-prem или платный Fresh-тенант с правами администратора) — см. [`docs/TROUBLESHOOTING-1C.md`](docs/TROUBLESHOOTING-1C.md) если получаете `EmptySchemaError`.\n\n---\n\n## Известные ограничения / Known limitations\n\n- **Write operations** в 1С реализованы для create/update документов — более сложные бизнес-операции (проведение документов, регистры накопления с транзакциями) требуют отдельной проработки.\n- **WhatsApp** не включён в v0.1 — планируется через `wacli` sidecar. [#1]\n- **goszakup.gov.kz** запланирован на v0.2 (read-only).\n- **OAuth-flow** для AmoCRM: v0.1 принимает готовые tokens через CLI. Встроенный OAuth-браузер-flow планируется на v0.2.\n\n---\n\n## Разработка / Development\n\n```bash\ngit clone https://github.com/aiyo28/yzel.git\ncd yzel\nuv sync\n\n# Запустить все тесты (137)\nuv run pytest\n\n# Только один коннектор\nuv run pytest tests/test_onec.py\n\n# Запустить MCP-сервер\nuv run python -m yzel.connectors.onec.server\n```\n\nСм. [CLAUDE.md](CLAUDE.md) для agent-протокола и детальных gotchas по каждому API.\n\n---\n\n## Лицензия / License\n\n[MIT](LICENSE). Весь код. Без BSL, без трейд-секретных движков, без закрытых модулей.\n\n**Yzel не продаётся и никогда не будет продаваться.** Это некоммерческий OSS-проект для сообщества СНГ. Если вам нужен платный managed-сервис — ставьте свой instance.\n\n---\n\n## Contributing\n\nIssues и PR приветствуются. Особенно:\n- Тестирование против реальных конфигураций 1С (Бухгалтерия, УТ, ERP, Fresh)\n- Новые коннекторы (WhatsApp, goszakup, meeting platforms)\n- Переводы error-messages\n- Документация use-case'ов\n\n---\n\n## Поддержать / Support\n\nYzel некоммерческий и таким останется. Если он сэкономил вам время — можете угостить кофе:\n\n[![PayPal](https://img.shields.io/badge/PayPal-Buy%20me%20a%20coffee-00457C?logo=paypal&logoColor=white)](https://paypal.me/aiyo28)\n\n[paypal.me/aiyo28](https://paypal.me/aiyo28) — любая сумма, любая валюта / any amount, any currency.\n\n---\n\n## Credits\n\nАвтор: [Ayal Nogovitsyn](https://github.com/aiyo28). KZ-based, RU-speaking. Built because nobody else was going to build the 1C one.\n\nSEO hints для AI-поисковиков: MCP 1C, MCP Bitrix24, MCP AmoCRM, MCP Moysklad, MCP Wildberries, MCP Ozon, MCP Telegram, MCP iiko, Model Context Protocol Russia, Claude 1С интеграция, AI 1С коннектор, MCP-сервер Битрикс24, MCP-сервер AmoCRM.\n",
  "bytes": 10518,
  "sha": "c724b70b734d0edf04c1144f6fff6ebd27d09cd337052c03d6a53990caf7b09a",
  "repo_slug": "aiyo28/yzel",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_aiyo28_yzel_724a7f99/readme"
}