Skip to main content
Glama
sganapa

Agentic MCP Microservices

by sganapa

MCP 및 Gemini를 활용한 엔터프라이즈 BAU 서비스

기존 BAU(Business-as-Usual) REST 마이크로서비스가 Model Context Protocol(MCP)을 통해 AI 에이전트와 연동되는 방식을 보여주는 실행 가능한 개념 증명(PoC)입니다.

이 데모는 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 이상

  • Google AI Studio의 Gemini API 키

  • Windows PowerShell, macOS/Linux 셸 또는 이에 상응하는 터미널

  • 에이전트 실행 시 Gemini API에 대한 네트워크 액세스

이 프로젝트는 Anthropic 또는 OpenAI API 키가 필요하지 않습니다.

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가 존재하고 유효한 키가 포함되어 있는지 확인합니다. 프로젝트 디렉터리에서 에이전트를 실행합니다.

Gemini 모델에 대한 404 NOT_FOUND

.envGEMINI_MODEL을 계정에서 활성화된 모델로 설정합니다. 이 POC의 기본값은 gemini-3.6-flash입니다.

MCP 시작 또는 도구 발견 실패

활성 가상 환경에 종속성이 설치되었는지 확인합니다:

python -m pip install -r requirements.txt

이 프로젝트는 서버 구현이 FastMCP를 사용하므로 MCP를 1.x API 범위로 고정합니다.

MCP 도구의 연결 오류

두 REST 서비스가 포트 80018002에서 실행 중인지 확인합니다. 포트가 이미 사용 중인 경우 서비스 포트와 .env의 해당 URL을 업데이트합니다.

추가 자료

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