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
Разработка
Добавление новых сущностей
- Создать класс сущности в
app/domain/entities/ - Создать интерфейс репозитория в
app/domain/interfaces/ - Создать реализацию репозитория в
app/infrastructure/bitrix/ - Добавить репозиторий в AppProvider
Добавление новых инструментов MCP
- Создать сервис в
app/application/services/ - Создать обработчик в сервисе
- Зарегистрировать обработчик в 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mcp_server_b24-0.1.0.tar.gz | 55.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.