Skip to main content
Glama
sganapa

Agentic MCP Microservices

by sganapa

Корпоративные BAU-сервисы с MCP и Gemini

Исполняемое доказательство концепции, показывающее, как ИИ-агент может работать с существующими BAU REST-микросервисами через Model Context Protocol (MCP).

Демонстрация использует Google Gemini для обнаружения MCP-инструментов, получения информации о клиентах и заказах и выполнения контролируемого действия по отмене заказа. BAU-сервисы остаются независимыми REST API; MCP обеспечивает интеграционную границу между этими API и агентом.

Демонстрация

Включённый сценарий предлагает агенту выполнить:

  1. Получить профиль для CUST-1001.

  2. Вывести список заказов клиента.

  3. Определить заказ со статусом Processing.

  4. Отменить ORD-9002 с указанной причиной.

  5. Резюмировать выполненную работу.

Ожидаемая последовательность инструментов:

Gemini agent
    -> MCP tool discovery over stdio
    -> MCP server
    -> Customer and Order REST APIs
    -> Tool results returned to Gemini
    -> Final user-facing summary

Related MCP server: MCP API Tool Demo

Архитектура

+------------------+       stdio        +------------------+       HTTP       +----------------------+
| Gemini agent     | <----------------> | MCP server       | <--------------> | Customer service     |
| agent_runner.py  |                    | server.py        |                  | localhost:8001       |
+------------------+                    +--------+---------+                  +----------------------+
                                                   |
                                                   | HTTP
                                                   v
                                         +----------------------+
                                         | Order service        |
                                         | localhost:8002       |
                                         +----------------------+

MCP-инструменты

Инструмент

Назначение

get_customer_profile

Получает профиль клиента, уровень, статус и кредитный лимит.

get_customer_orders

Выводит список заказов, связанных с клиентом.

cancel_order_by_id

Отменяет заказ, если его статус допускает отмену.

Структура проекта

.
├── agent/
│   └── agent_runner.py          # Gemini agent and MCP client
├── mcp_server/
│   └── server.py                # MCP tools and REST integration
├── services/
│   ├── customer_service.py      # Mock customer REST API
│   └── order_service.py         # Mock order REST API
├── tests/
│   └── test_services.py         # Service behavior tests
├── .env.example                 # Environment variable template
├── requirements.txt             # Python dependencies
└── mcp_microservices_poc_blueprint.md
                                # Detailed design and implementation reference

Предварительные требования

  • Python 3.11 или новее

  • Ключ Gemini API из Google AI Studio

  • Windows PowerShell, macOS/Linux shell или эквивалентный терминал

  • Сетевой доступ к Gemini API при запуске агента

Для этого проекта не требуется ключ API Anthropic или OpenAI.

Быстрый старт в Windows

Откройте PowerShell в каталоге проекта:

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
Copy-Item .env.example .env

Откройте .env и замените your_gemini_api_key_here на ваш ключ:

GOOGLE_API_KEY=your_gemini_api_key_here
GEMINI_MODEL=gemini-3.6-flash

Никогда не коммитьте .env и не размещайте ключ API в исходном коде. Выбранная модель должна быть доступна для вашего аккаунта Gemini.

Запуск демонстрации

Используйте три терминала. Активируйте .venv в каждом терминале.

Терминал 1: сервис клиентов

python services/customer_service.py

Запускается на http://localhost:8001.

Терминал 2: сервис заказов

python services/order_service.py

Запускается на http://localhost:8002.

Терминал 3: агент Gemini

python agent/agent_runner.py

Агент запускает MCP-сервер как дочерний процесс, обнаруживает его инструменты и выполняет пример рабочего процесса.

Проверка локальных сервисов

Выполните эти команды, пока оба сервиса активны:

Invoke-RestMethod http://localhost:8001/health
Invoke-RestMethod http://localhost:8002/health
Invoke-RestMethod http://localhost:8001/api/v1/customers/CUST-1001
Invoke-RestMethod http://localhost:8002/api/v1/orders/customer/CUST-1001

Запуск тестов

При активной виртуальной среде:

python -m pytest -q

Тесты покрывают поиск клиента без учёта регистра, отсутствующих клиентов, отмену заказа в обработке и защиту от отмены отгруженного заказа.

Конфигурация

Переменная

Описание

По умолчанию

GOOGLE_API_KEY

Ключ аутентификации Gemini.

Обязательно

GEMINI_MODEL

Модель Gemini, используемая агентом.

gemini-3.6-flash

CUSTOMER_SERVICE_URL

Базовый URL сервиса клиентов.

http://localhost:8001

ORDER_SERVICE_URL

Базовый URL сервиса заказов.

http://localhost:8002

Область применения и ограничения

Это локальный, намеренно небольшой POC, предназначенный для того, чтобы интеграционный шаблон было легко изучить и запустить.

  • Записи о клиентах и заказах хранятся в памяти и сбрасываются при перезапуске сервисов.

  • Сервисы не реализуют аутентификацию или авторизацию.

  • В реальной системе операция отмены должна быть защищена контролем утверждения и бизнес-политик.

  • MCP использует stdio для локальной интеграции процессов. В развёрнутой архитектуре следует использовать аутентифицированный сетевой транспорт.

  • Ошибки нижестоящих сервисов возвращаются в виде текста инструмента для наглядности; производственные системы должны использовать структурированные ошибки, повторы, трассировку и метрики.

  • Пример агента выполняет реальный запрос к Gemini API и требует действительный ключ.

Устранение неполадок

GOOGLE_API_KEY is not set

Убедитесь, что .env существует в каталоге проекта и содержит действительный ключ. Запускайте агента из каталога проекта.

404 NOT_FOUND для модели Gemini

Установите GEMINI_MODEL в .env на модель, доступную для вашего аккаунта. По умолчанию в этом POC используется gemini-3.6-flash.

Сбой запуска MCP или обнаружения инструментов

Убедитесь, что зависимости установлены в активную виртуальную среду:

python -m pip install -r requirements.txt

Проект закрепляет MCP за диапазоном API 1.x, поскольку реализация сервера использует FastMCP.

Ошибки подключения от MCP-инструментов

Убедитесь, что оба REST-сервиса запущены на портах 8001 и 8002. Если порт уже занят, обновите порт сервиса и соответствующий URL в .env.

Дополнительные материалы

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server that enables AI platforms to search products, customers, and warehouses, and prepare and submit sales orders to a fixed ERP endpoint with per-session bearer authentication.

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

View all MCP Connectors

Latest Blog Posts

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/sganapa/agentic-mcp-microservices'

If you have feedback or need assistance with the MCP directory API, please join our Discord server