Skip to main content

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

Разработка

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

  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 для возвращения экземпляров класса
  • Централизованное логирование: единый модуль для настройки логирования

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_b24-0.1.0.tar.gz (55.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_b24-0.1.0-py3-none-any.whl (43.1 kB view details)

Uploaded Python 3

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

Hashes for mcp_server_b24-0.1.0.tar.gz
Algorithm Hash digest
SHA256 17e3690a4845bbc356021c8af776ce542148927661ceca4f661fa86252efa87a
MD5 5e90d5671591330353f5f4cc196999aa
BLAKE2b-256 cf3aee00c32969db099ae1e38c0f6dd322fa9ef900a5d1ef18e600151fa6ef04

See more details on using hashes here.

File details

Details for the file mcp_server_b24-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_b24-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a61b955076fbd105dda824190769d82a35e584a6bf56b99a922f1733487bdf1d
MD5 447663a7d5d614744d0256eb575a0a4c
BLAKE2b-256 e6a71394a636eab30479f2f9748528a2168b27d9de00effe29af00dcef5570b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page