Skip to main content

MCP сервер для Bitrix24

MCP (Model Context Protocol) сервер для интеграции с Bitrix24.

Архитектура проекта

Проект организован согласно принципам чистой архитектуры:

app/
├── domain/              # Бизнес-логика и основные сущности
│   ├── entities/        # Сущности Bitrix24
│   ├── interfaces/      # Интерфейсы для репозиториев и сервисов
│   └── bitrix_types.py  # Типы данных Bitrix24
├── application/         # Слой приложения
│   ├── dto/             # Объекты передачи данных
│   ├── services/        # Сервисы приложения
│   └── use_cases/       # Варианты использования
├── infrastructure/      # Внешние сервисы и реализации
│   ├── bitrix/          # Реализации для Bitrix24
│   │   └── mixins.py    # Миксины для работы с Bitrix24 API
│   ├── di/              # Зависимости 
│   │   └── app_provider.py # Класс провайдера зависимостей (dishka)
│   ├── logging/         # Модули логирования
│   │   └── logger.py    # Централизованное логирование
│   └── mcp/             # Реализация MCP сервера
│       └── mcp_server_impl.py # Реализация MCP сервера
└── main.py             # Точка входа в приложение

Особенности реализации

Чистая архитектура

Проект разработан согласно принципам чистой архитектуры:

  • Слой домена: содержит бизнес-логику и основные сущности
  • Слой приложения: содержит варианты использования и сервисы
  • Слой инфраструктуры: содержит внешние сервисы и реализации

SOLID принципы

  • Single Responsibility: каждый класс имеет единственную ответственность
  • Open/Closed: классы открыты для расширения, закрыты для модификации
  • Liskov Substitution: подтипы могут заменять базовые типы
  • Interface Segregation: мелкие специализированные интерфейсы вместо монолитных
  • Dependency Inversion: зависимость от абстракций, а не от конкретных реализаций

Инъекция зависимостей

Используется библиотека dishka для инъекции зависимостей, с помощью класса AppProvider.

MCP сервер

MCP сервер реализован с использованием modelcontextprotocol, который позволяет создавать инструменты для взаимодействия с LLM.

Работа с Bitrix24

Используется библиотека fast_bitrix24 для работы с API Bitrix24. Реализованы миксины для упрощения разработки репозиториев.

Запуск сервера

# Запуск сервера
python -m app.main

# Запуск с выполнением тестового запроса
python -m app.main --test

Разработка

Добавление новых сущностей

  1. Создать класс сущности в app/domain/entities/
  2. Создать интерфейс репозитория в app/domain/interfaces/
  3. Создать реализацию репозитория в app/infrastructure/bitrix/
  4. Добавить репозиторий в AppProvider

Добавление новых инструментов MCP

  1. Создать сервис в app/application/services/
  2. Создать обработчик в сервисе
  3. Зарегистрировать обработчик в MCP сервисе

Технологические решения

  • Python 3.12: современные возможности языка
  • Типизация: строгая типизация с использованием аннотаций (mypy)
  • Асинхронность: все внешние взаимодействия асинхронные (asyncio)
  • ABC вместо Protocol: абстрактные базовые классы для четкого определения интерфейсов
  • Self: использование Self из typing для возвращения экземпляров класса
  • Централизованное логирование: единый модуль для настройки логирования

Metadata

Release files for mcp-server-b24 0.1.0

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

Source distribution (sdist)

Source distribution for mcp-server-b24 0.1.0
File Size Uploaded Provenance
mcp_server_b24-0.1.0.tar.gz 55.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-server-b24 0.1.0
File Interpreter ABI Platform
mcp_server_b24-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 98.6 kB

Release files / mcp_server_b24-0.1.0.tar.gz

Download URL mcp_server_b24-0.1.0.tar.gz
Size 55.4 kB
Tags Source
SHA-256 checksum
How to use checksums
17e3690a4845bbc356021c8af776ce542148927661ceca4f661fa86252efa87a
BLAKE2b-256 checksum
How to use checksums
cf3aee00c32969db099ae1e38c0f6dd322fa9ef900a5d1ef18e600151fa6ef04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.6

Release files / mcp_server_b24-0.1.0-py3-none-any.whl

Download URL mcp_server_b24-0.1.0-py3-none-any.whl
Size 43.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a61b955076fbd105dda824190769d82a35e584a6bf56b99a922f1733487bdf1d
BLAKE2b-256 checksum
How to use checksums
e6a71394a636eab30479f2f9748528a2168b27d9de00effe29af00dcef5570b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.6

Security for mcp-server-b24 0.1.0

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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