Add your description here
Project description
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 для возвращения экземпляров класса
- Централизованное логирование: единый модуль для настройки логирования
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_b24-0.1.0.tar.gz.
File metadata
- Download URL: mcp_server_b24-0.1.0.tar.gz
- Upload date:
- Size: 55.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17e3690a4845bbc356021c8af776ce542148927661ceca4f661fa86252efa87a
|
|
| MD5 |
5e90d5671591330353f5f4cc196999aa
|
|
| BLAKE2b-256 |
cf3aee00c32969db099ae1e38c0f6dd322fa9ef900a5d1ef18e600151fa6ef04
|
File details
Details for the file mcp_server_b24-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_server_b24-0.1.0-py3-none-any.whl
- Upload date:
- Size: 43.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a61b955076fbd105dda824190769d82a35e584a6bf56b99a922f1733487bdf1d
|
|
| MD5 |
447663a7d5d614744d0256eb575a0a4c
|
|
| BLAKE2b-256 |
e6a71394a636eab30479f2f9748528a2168b27d9de00effe29af00dcef5570b0
|