Skip to main content
Glama

🏛️ ArchMCP: 마이크로서비스를 위한 중앙 원격 MCP 서버

Python 3.10+ Model Context Protocol License: MIT Tests: 18/18 Passing

AI 코딩 어시스턴트에게 조직의 두뇌를 부여하세요.
ArchMCP는 가볍고 원격으로 동작하는 Model Context Protocol (MCP) 서버로, AI 어시스턴트(Google Antigravity, Claude Desktop, Cursor, VS Code)를 전체 마이크로서비스 아키텍처에 실시간으로 연결합니다.

📚 단계별 사용자 매뉴얼 및 설정 가이드 보기


📖 ArchMCP의 탄생 배경

일상적인 문제

당신이 AI 코딩 어시스턴트와 함께 order-service에서 기능을 작성하고 있다고 상상해 보세요. AI에게 이렇게 묻습니다:

"체크아웃을 구현하고 고객에게 결제를 청구해 줘."

그 순간, AI는 벽에 부딪힙니다:

  • payment-service가 멱등성을 위해 어떤 헤더를 요구하는지 전혀 알지 못합니다.

  • inventory-service에서 재고를 예약하려면 어떤 데이터베이스 컬럼이 존재하는지 알지 못합니다.

  • 엔드포인트를 수정하면 어떤 업스트림 서비스가 깨질지 전혀 감이 없습니다.

이 문제를 해결하기 위해 개발자들은 보통 두 가지 좋지 않은 방법 중 하나를 시도합니다:

  1. 프롬프트에 전체 리포지토리 덤프하기: 질문 하나당 100,000+ 토큰을 쉽게 낭비하고, 비용이 많이 들며, AI를 느리게 만들고, 프롬프트 과부하로 인한 환각을 유발합니다.

  2. 로컬에 20개 이상의 리포지토리 클론하기: 팀의 모든 개발자가 로컬 AI가 컨텍스트를 가지도록 노트북에 20개의 리포지토리를 계속 업데이트해야 합니다.


해결책: 공유 원격 두뇌

ArchMCP는 중앙 집중식의 서브 밀리초 아키텍처 두뇌 역할을 하여 이 문제를 해결합니다.

한 대의 노트북에서 실행되는 개인 로컬 명령어 대신, ArchMCP는 공유 원격 서비스로 실행됩니다. 팀의 모든 엔지니어는 AI 어시스턴트를 인증 토큰과 함께 ArchMCP 서버 URL에 연결할 수 있습니다.

AI 어시스턴트가 다음을 알아야 할 때:

  • "어떤 서비스가 환불을 처리하지?" $\rightarrow$ search_microservices를 호출합니다.

  • "payment-service가 소유한 테이블은 무엇인가?" $\rightarrow$ get_database_schema를 호출합니다.

  • "/api/v1/orders를 변경하면 누가 피해를 입지?" $\rightarrow$ analyze_blast_radius를 호출합니다.

┌────────────────────────────────────────────────────────┐
│                   AI Assistant Client                  │
│       (Google Antigravity, Claude Desktop, Cursor)     │
└──────────────────────────┬─────────────────────────────┘
                           │
                           │  HTTP / Server-Sent Events (SSE)
                           │  Authorization: Bearer <token>
                           │
┌──────────────────────────▼────────────────────────────────────────────────────────┐
│                                   ArchMCP Server                                   │
│                                                                                    │
│   ┌─────────────────────┐  ┌─────────────────────┐  ┌──────────────────────────┐   │
│   │      MCP Tools      │  │    MCP Resources    │  │       MCP Prompts        │   │
│   │ • search_services   │  │ • arch/overview     │  │ • cross_service_planner  │   │
│   │ • blast_radius      │  │ • services/catalog  │  │ • incident_triage        │   │
│   │ • sequence_diagram  │  │ • guidelines/docs   │  │ • contract_refactor      │   │
│   │ • get_db_schema     │  │ • service docs      │  │                          │   │
│   └──────────┬──────────┘  └──────────┬──────────┘  └────────────┬─────────────┘   │
│              │                        │                          │                 │
│   ┌──────────▼────────────────────────▼──────────────────────────▼─────────────┐   │
│   │                       Microservice Intelligence Engine                     │   │
│   │ • Transitive Graph Traversal & Blast Radius Analyzer (BFS)                 │   │
│   │ • In-Memory Index & Token Search (< 2ms response time)                     │   │
│   │ • Dynamic OpenAPI / Swagger 3.0 Importer                                   │   │
│   └───────────────────────────────────┬────────────────────────────────────────┘   │
│                                       │                                            │
│   ┌───────────────────────────────────▼────────────────────────────────────────┐   │
│   │              Embedded Web Visualizer & Live Sandbox (/dashboard)           │   │
│   │ • Interactive Service Topology Explorer & Token Economics Calculator       │   │
│   └────────────────────────────────────────────────────────────────────────────┘   │
└────────────────────────────────────────────────────────────────────────────────────┘

💡 설계 방식과 그 이유

ArchMCP를 설계할 때 목표는 불필요한 복잡성 없이 빠르고, 깔끔하며, 실용적으로 만드는 것이었습니다:

1. 왜 로컬 CLI 프로세스 대신 원격 HTTP/SSE인가?

표준 MCP 서버는 로컬 stdio 서브프로세스로 실행됩니다. 단일 사용자 데스크톱 스크립트에는 효과적이지만, 30개의 마이크로서비스에서 작업하는 50명의 엔지니어가 있는 회사에는 하나의 중앙 진실 소스가 필요합니다. ArchMCP를 HTTP/SSE로 호스팅하면 아키텍처 업데이트와 새로운 API 스키마가 로컬 리포지토리 클론 없이 모든 사람에게 즉시 제공됩니다.

2. 왜 무거운 벡터 데이터베이스 대신 인메모리 그래프 인덱싱인가?

많은 AI 도구들이 즉시 무거운 벡터 데이터베이스(Pinecone이나 Milvus 같은)로 뛰어듭니다. 구조화된 아키텍처 메타데이터(API 라우트, 데이터베이스 테이블, 서비스 종속성)의 경우 그래프 탐색과 빠른 어휘 토큰 매칭이 다음과 같은 장점을 제공합니다:

  • 결정적(Deterministic): /api/v1/auth/login 같은 라우트나 users 같은 테이블에 대한 정확한 매칭.

  • 제로 오버헤드: 약 38MB의 RAM으로 실행되며 외부 API 키나 GPU 요구 사항이 없습니다.

  • 매우 빠름: 2ms 미만의 응답 시간.

3. 고려한 트레이드오프

접근 방식

장점

단점

결정

로컬 CLI (stdio)

한 사람에게는 간단함.

모든 사람이 모든 리포지토리를 로컬에 클론해야 함; 중앙 업데이트 불가.

건너뜀

커스텀 REST API

친숙한 웹 엔드포인트.

모든 IDE에 대해 커스텀 플러그인을 작성하고 유지 관리해야 함.

건너뜀 (MCP가 공개 표준임)

무거운 벡터 DB

의미론적 검색.

느린 콜드 스타트, 높은 비용, 임베딩 인프라 필요.

보류 간단한 인메모리 그래프 인덱스용

SSE 기반 원격 MCP

중앙 집중식, 즉시 동기화, 인증 지원, 모든 주요 AI 도구와 호환.

경량 서버 실행 필요.

채택


📊 성능 벤치마크 및 토큰 경제성

리포지토리 컨텍스트를 덤프하여 AI 어시스턴트에게 마이크로서비스 작업을 분석하도록 요청하는 것과 ArchMCP에 쿼리하는 것의 차이를 측정했습니다:

벤치마크 지표

전체 코드베이스 프롬프팅

ArchMCP 쿼리 (실시간)

효율성 향상

토큰 소비량

약 140,000 ~ 180,000 토큰

약 120 ~ 380 토큰

> 99.6% 절감

실행 지연 시간

해당 없음 (전체 파일 스캔 / 수동)

약 1.8 ms ~ 16 ms

서브초 실시간

메모리 사용량

약 500 MB (로컬 클론 + 인덱서)

약 38 MB

> 90% RAM 절감

테스트 스위트

해당 없음

18/18 통과, 1.5초 미만

즉시 검증

💡 실시간 검증: 기본 제공되는 인터랙티브 대시보드 샌드박스를 사용하여 언제든지 이러한 성능 지표를 실시간으로 테스트하고 관찰할 수 있습니다. 이 대시보드는 모든 요청에 대해 쿼리 지연 시간과 토큰 절감량을 계산합니다.


🔍 구축 과정에서 발견한 놀라움과 발견점

Python으로 원격 MCP 서버를 구축하면서 몇 가지 흥미로운 기술적 세부 사항이 드러났습니다:

  1. 타입 힌트가 AI 스키마가 된다: 공식 Python MCP SDK는 Python 타입 어노테이션과 독스트링을 자동으로 읽어 LLM이 도구를 선택할 때 사용하는 JSON-Schema 정의를 생성합니다. 좋은 독스트링은 말 그대로 AI를 더 똑똑하게 만듭니다.

  2. DNS 리바인딩 가드: MCP 2.0 프로토콜은 들어오는 Host 헤더를 자동으로 검증하여 내부 개발자 네트워크를 브라우저 기반 DNS 공격으로부터 보호합니다.

  3. 2단계 SSE 핸드셰이크: AI 클라이언트가 GET /sse에 연결하면 서버는 이벤트 스트림을 열고 고유한 세션 콜백 URL(/messages/?session_id=...)을 반환합니다. 이후 모든 JSON-RPC 도구 호출은 이 세션으로 전송됩니다.


🖥️ 라이브 브라우저 시각화 도구 및 샌드박스

ArchMCP에는 http://localhost:8000/dashboard(또는 /)에서 제공되는 임베디드 반응형 웹 대시보드가 포함되어 있습니다:

ArchMCP 인터랙티브 대시보드 및 라이브 샌드박스

  • 인터랙티브 토폴로지: 서비스 카드(auth-service, order-service, payment-service)를 클릭하여 해당 서비스의 API, 소유한 데이터베이스 테이블, 종속성 매핑을 확인합니다.

  • 라이브 도구 샌드박스: 모든 MCP 도구를 실시간으로 테스트하고 JSON-RPC 요청/응답과 함께 실시간 토큰 절감량 및 지연 시간 지표를 확인합니다.


⌨️ 개발자 CLI

ArchMCP에는 편리한 명령줄 도구가 포함되어 있습니다:

# 1. Start the Remote Server
archmcp run

# 2. Explore the Catalog in your Terminal
archmcp explore

# 3. Calculate Change Blast Radius
archmcp blast-radius auth-service

# 4. Import a live OpenAPI / Swagger Specification
archmcp import-openapi https://petstore.swagger.io/v2/swagger.json --owner "Commerce Team"

🔌 AI 어시스턴트 연결하기

ArchMCP가 실행 중이면(예: http://127.0.0.1:8000/sse), 몇 초 만에 AI 도구를 구성할 수 있습니다:

Google Antigravity IDE

.agents/mcp_config.json에 추가:

{
  "mcpServers": {
    "archmcp": {
      "url": "http://127.0.0.1:8000/sse",
      "headers": {
        "Authorization": "Bearer dev-token-secret-123"
      }
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "archmcp": {
      "url": "http://127.0.0.1:8000/sse",
      "headers": {
        "Authorization": "Bearer dev-token-secret-123"
      }
    }
  }
}

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "archmcp": {
      "url": "http://127.0.0.1:8000/sse?token=dev-token-secret-123"
    }
  }
}

🚀 3단계 빠른 시작

# 1. Clone & Install
git clone https://github.com/ShubhamScript/archmcp.git
cd archmcp
pip install -e .[dev]

# 2. Run Tests
pytest -v

# 3. Start Server
archmcp run

브라우저에서 http://localhost:8000/dashboard 를 열어 아키텍처를 인터랙티브하게 탐색하세요.


🔮 향후 로드맵

대규모 엔터프라이즈에서 ArchMCP를 500개 이상의 마이크로서비스로 확장한다면:

  1. 의미론적 개념 검색: 로컬 임베딩과 함께 pgvector 또는 sqlite-vec을 추가하여 개발자가 개념적 질문("정기 결제는 어디에 있지?")을 할 수 있도록 합니다.

  2. Backstage 통합: Spotify의 Backstage catalog-info.yaml에서 자동 동기화.

  3. Redis 이벤트 버스: 수평 확장된 컨테이너 복제본 간 활성 SSE 세션 동기화.

  4. Git 웹훅: PR이 병합될 때마다 스키마를 자동 업데이트.


📂 프로젝트 구조

archmcp/
├── README.md                      # Project guide & architecture story
├── pyproject.toml                 # Dependencies, CLI scripts, and build config
├── Dockerfile                     # Container build instructions
├── docker-compose.yml             # Container orchestration
├── data/
│   └── repositories.yaml          # Sample microservices catalog
├── src/
│   └── archmcp/
│       ├── main.py                # Server bootstrap
│       ├── cli.py                 # Developer CLI (run, explore, blast-radius, import-openapi)
│       ├── config/settings.py     # Environment settings
│       ├── auth/                  # Bearer token verification & ASGI middleware
│       ├── mcp/                   # Tools, Resources, Prompts, and SSE route handlers
│       ├── services/              # Blast radius, graph traversal, and search logic
│       ├── ingestion/             # OpenAPI importer, markdown parser, dependency scanner
│       ├── storage/               # In-memory database & token search index
│       ├── web/                   # Embedded visualizer and live testing playground
│       └── models/                # Pydantic schemas (Architecture, BlastRadius, Services)
└── tests/                         # 18 unit & integration tests

📄 라이선스

MIT 라이선스. 오픈소스 및 상업적 사용에 무료입니다.

-
license - not tested
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 Connectors

  • Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).

  • MCP server for AI access to Swagger by SmartBear.

  • MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.

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/ShubhamScript/archmcp'

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