Enterprise Support MCP Server
Enterprise Support MCP Server
Легковесный прототип интеграции корпоративного ИИ, демонстрирующий, как бизнес-возможности могут быть предоставлены большим языковым моделям через Model Context Protocol (MCP).
Проект предоставляет информацию о клиентах и заказах через MCP-сервер на Python. ИИ-ассистент на базе Mistral динамически обнаруживает доступные MCP-инструменты и решает, какие из них вызывать на основе запросов на естественном языке.
Для более сложных запросов ассистент может выполнять несколько вызовов инструментов итеративно, пока не получит достаточно информации для формирования итогового ответа.
Все записи о клиентах и заказах, используемые в этом проекте, являются синтетическими демонстрационными данными.
Ключевые возможности
Сервер и клиент Model Context Protocol (MCP)
Динамическое обнаружение MCP-инструментов
Выбор инструментов на основе LLM с использованием Mistral AI
Многошаговый рабочий процесс вызова инструментов
Взаимодействие на естественном языке с корпоративными данными
Поиск клиентов и заказов
Модели данных Pydantic
Персистентность SQLite
Структурированная обработка ошибок
Разделение уровней MCP, персистентности и интеграции с ИИ
Related MCP server: E-commerce MCP Server
Архитектура
flowchart TD
U[User] --> L[Mistral LLM]
L --> C[MCP Client]
C --> S[Enterprise Support MCP Server]
S --> D[(SQLite Customer / Order Database)]
D --> S
S --> C
C --> L
L --> ULLM не обращается к базе данных напрямую.
Вместо этого корпоративные возможности предоставляются через стандартизированные MCP-инструменты. MCP-клиент динамически обнаруживает эти инструменты и предоставляет их схемы LLM.
Затем LLM решает, какой инструмент необходим для конкретного запроса пользователя.
Пример рабочего процесса
Пользователь вводит:
Show me customer 1001.Приложение выполняет следующий рабочий процесс:
User request
↓
Mistral LLM
↓
Selects get_customer
↓
MCP Client
↓
Enterprise Support MCP Server
↓
SQLite
↓
Customer data
↓
MCP Client
↓
Mistral LLM
↓
Natural-language responseПример результата:
Here is the information for customer 1001:
- Name: Anna Schmidt
- Email: anna@example.com
- Status: ACTIVEКод приложения не закрепляет жёстко выбор get_customer.
LLM выбирает подходящий MCP-инструмент на основе запроса пользователя на естественном языке.
Доступные MCP-инструменты
get_customer
Получает информацию о клиенте по идентификатору клиента.
Пример ввода:
{
"customer_id": 1001
}get_customer_orders
Получает все заказы, принадлежащие клиенту.
Пример ввода:
{
"customer_id": 1001
}get_order_status
Получает текущий статус и информацию об отслеживании заказа.
Пример ввода:
{
"order_id": 5002
}Технологический стек
Python
Model Context Protocol (MCP) Python SDK
Mistral AI
Pydantic
SQLite
asyncio
python-dotenv
uv
Начало работы
Предварительные требования
Проект требует:
Python 3.11+
pipuvКлюч API Mistral
Проверьте установку Python:
python --versionПроверьте uv:
uv --version1. Клонирование репозитория
git clone https://github.com/YOUR-USERNAME/enterprise-support-mcp-server.git
cd enterprise-support-mcp-serverЗамените YOUR-USERNAME на ваше имя пользователя GitHub.
2. Создание виртуального окружения
python -m venv .venvWindows PowerShell
.venv\Scripts\Activate.ps1Linux / macOS
source .venv/bin/activate3. Установка зависимостей
pip install -r requirements.txtОсновные зависимости включают:
mcp[cli]
mistralai
pydantic
python-dotenv4. Настройка ключа API Mistral
Создайте файл .env в корне проекта.
Вы можете использовать .env.example в качестве шаблона:
MISTRAL_API_KEY=your_mistral_api_keyНикогда не коммитьте сам файл .env или ключ API в Git.
5. Инициализация демонстрационной базы данных
Запустите:
python init_db.pyЭто создаёт локальную базу данных SQLite, содержащую синтетические записи о клиентах и заказах, используемые MCP-инструментами.
Тестирование
Проект можно тестировать на нескольких уровнях.
Тест 1 – Доступ к базе данных
Функции базы данных можно тестировать независимо до подключения MCP.
Убедитесь, что демонстрационная база данных инициализирована:
python init_db.pyУровень базы данных предоставляет операции для:
get_customer
get_customer_orders
get_order_statusЭто проверяет уровень персистентности независимо от MCP и LLM.
Тест 2 – Запуск MCP-сервера
Запустите:
python server.pyДля MCP-сервера на основе stdio HTTP-порт или браузер не открываются.
Процесс ожидает, пока MCP-клиент свяжется с ним через стандартный ввод/вывод.
Остановите сервер с помощью:
Ctrl+CТест 3 – MCP-клиент без LLM
Запустите:
python client.pyКлиент подключается к MCP-серверу и обнаруживает доступные инструменты.
Ожидаемое обнаружение инструментов:
Available tools:
- get_customer
- get_customer_orders
- get_order_statusЗатем клиент может вызывать MCP-инструменты напрямую.
Этот тест проверяет:
MCP Client
↓
MCP protocol
↓
MCP Server
↓
SQLite
↓
MCP resultДля этого теста большая языковая модель не требуется.
Тест 4 – Выбор MCP-инструмента на основе LLM
Запустите:
python llm_client.pyПриложение должно сначала отобразить MCP-инструменты, обнаруженные на сервере:
Available MCP tools:
- get_customer
- get_customer_orders
- get_order_statusЗатем вы можете ввести запрос на естественном языке.
Поиск клиента
Show me customer 1001.Ожидаемое поведение:
Mistral
↓
get_customer
↓
customer_id = 1001Итоговый ответ должен содержать информацию о клиенте 1001.
Заказы клиента
Попробуйте:
Show me all orders for customer 1001.Ожидаемый инструмент:
get_customer_ordersСтатус заказа
Попробуйте:
What is the status of order 5002?Ожидаемый инструмент:
get_order_statusЗапрос без корпоративных данных
Попробуйте:
What can you help me with?LLM должна быть способна ответить на этот запрос без доступа к данным о клиентах или заказах.
Это демонстрирует, что выполнение инструментов выбирается динамически, а не выполняется для каждого запроса.
Тест 5 – Многошаговый вызов инструментов
LLM-клиент поддерживает итеративное выполнение инструментов.
Попробуйте более сложный запрос, например:
Customer 1001 says that one of her orders has not arrived.
Can you investigate?Для сложных запросов ассистент может использовать несколько MCP-инструментов перед формированием итогового ответа.
Концептуально:
User
↓
Mistral
↓
MCP Tool
↓
Tool Result
↓
Mistral
↓
Another tool required?
├── Yes → MCP Tool → Result → Mistral
└── No → Final ResponseЦикл вызова инструментов имеет максимальное количество итераций для предотвращения случайного бесконечного выполнения.
Тесты обработки ошибок
MCP-сервер также обрабатывает неизвестные бизнес-сущности.
Например:
Show me customer 9999.Соответствующий MCP-инструмент возвращает результат с ошибкой вместо того, чтобы выдумывать информацию о клиенте.
Это особенно важно для корпоративных интеграций на основе ИИ: фактические данные о клиентах и заказах должны поступать из подключённой корпоративной системы, а не от LLM.
Структура проекта
enterprise-support-mcp-server/
│
├── server.py
│ └── MCP server and tool definitions
│
├── client.py
│ └── MCP client for direct tool testing
│
├── llm_client.py
│ └── Mistral integration and agentic tool-calling workflow
│
├── database.py
│ └── Database access layer
│
├── models.py
│ └── Pydantic domain models
│
├── init_db.py
│ └── Creates synthetic demo data
│
├── requirements.txt
├── .env.example
├── .gitignore
└── README.mdЗачем MCP?
LLM также может вызывать специфичные для приложения функции напрямую.
MCP вводит стандартизированный интерфейс между AI-приложениями и внешними возможностями.
В этом проекте:
Mistral
↓
Tool Calling
↓
MCP Client
↓
Standardized MCP interface
↓
Enterprise Support MCP Server
↓
Enterprise capabilitiesLLM отвечает за принятие решения о том, какая возможность необходима.
MCP отвечает за предоставление этих возможностей через стандартизированный протокол.
Это разделение означает, что корпоративный бэкенд не нужно проектировать специально для одного конкретного LLM-провайдера.
Цель проекта
Проект намеренно мал и фокусируется на одном архитектурном вопросе:
Как сделать существующие корпоративные возможности доступными для AI-ассистентов через стандартизированный уровень интеграции?
Он демонстрирует сочетание:
Интеграции корпоративных систем
Model Context Protocol
Вызова инструментов LLM
Агентных рабочих процессов
Структурированных бизнес-данных
Разделения ответственности
Проект служит практическим прототипом для интеграции AI-ассистентов с существующими корпоративными приложениями.
Уведомление о безопасности
Этот репозиторий содержит только синтетические демонстрационные данные.
Не сообщайте ключи API, учётные данные, данные клиентов или другую конфиденциальную информацию через исходный код или закоммиченные файлы .env.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceA Model Context Protocol server that enables large language models to access database metadata and perform cross-engine data querying across diverse database ecosystems.1652Apache 2.0
- Flicense-qualityDmaintenanceProvides tools to query e-commerce data including customer information, order details, and product inventory through a Model Context Protocol interface with test data.
- FlicenseAqualityCmaintenanceA Model Context Protocol server that lets LLM clients answer business questions in natural language over a Databricks dataset without writing SQL by hand.1
- Flicense-qualityBmaintenanceEnables natural-language querying of structured data via Model Context Protocol, allowing AI agents to answer questions without SQL or API knowledge.
Related MCP Connectors
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
A Model Context Protocol server for Wix AI tools
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pbpeter/enterprise-support-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server