Wanaku 0.1.1: MCP를 통해 AI 에이전트에 Apache Camel 통합 기능 제공
요약
Wanaku 0.1.1은 MCP를 통해 Apache Camel의 통합 기능을 AI 에이전트에게 제공하는 오픈 소스 라우터 플랫폼입니다. 서비스 카탈로그와 템플릿을 도입하여 AI가 엔터프라이즈 시스템의 다양한 프로토콜과 데이터를 네이티브 도구처럼 활용할 수 있게 합니다.
핵심 포인트
- MCP를 활용해 Apache Camel의 통합 기능을 AI 에이전트 도구로 변환
- 서비스 카탈로그를 통해 Camel 라우트와 MCP 도구 정의를 패키징
- 엔터프라이즈 시스템과 AI 사이의 스마트한 중개자 역할 수행
- CLI 명령어를 통한 간편한 로컬 실행 및 관리 UI 제공
저희는 Wanaku 0.1.1 출시를 발표하게 되어 매우 기쁩니다. 이는 Apache Camel의 강력한 통합 기능이 Model Context Protocol (MCP)를 통해 AI 에이전트에게 어떻게 원활하게 노출될 수 있는지를 보여주는 중요한 이정표입니다. 이번 릴리스에서는 **Service Catalogs (서비스 카탈로그)**와 **Service Templates (서비스 템플릿)**를 도입하였으며, 이는 Apache Camel을 통합 런타임 (integration runtime)으로 활용하여 AI와 엔터프라이즈 시스템 사이의 간극을 메우는 기능입니다.
Wanaku란 무엇인가?
Wanaku는 AI 에이전트와 통합 기능 사이에서 스마트한 중개자 역할을 하는 오픈 소스 MCP 라우터(router) 및 기능 관리 플랫폼입니다. AI 시스템이 통합된 MCP 인터페이스를 통해 엔터프라이즈 통합 기능을 마치 네이티브 도구인 것처럼 발견하고 호출할 수 있게 해주는 게이트웨이라고 생각하면 됩니다.
Wanaku는 설계상 런타임에 구애받지 않지만, Apache Camel은 네이티브이자 퍼스트 클래스(first-class) 통합 런타임으로서, AI 에이전트를 수백 개의 엔터프라이즈 시스템, 프로토콜 및 데이터 형식에 연결할 수 있는 견고하고 검증된 기반을 제공합니다.
시작하는 방법은 단 하나의 명령어로 충분합니다. CLI를 다운로드한 후, 다음을 실행하기만 하면 됩니다:
wanaku start local
이 명령은 컨테이너, 클라우드 계정, 설정 파일 없이도 사용자의 로컬 머신에서 Wanaku 라우터와 관리 UI를 실행합니다. 이제 몇 초 만에 Service Catalogs를 생성하고 배포할 준비가 되었습니다.
Service Catalogs: Camel 라우트를 AI 도구로 패키징하기
Wanaku 0.1.1의 핵심은 Service Catalog (서비스 카탈로그) 개념입니다. 이는 Apache Camel 라우트, MCP 도구 정의(tool definitions), 그리고 의존성(dependencies)을 하나의 배포 가능한 패키지로 묶는 방식입니다. 이를 통해 Apache Camel의 여러 강점을 AI 에이전트에 직접 전달합니다:
- Camel routes (Camel 라우트): YAML 기반 라우트 정의를 사용하여 통합 로직을 정의합니다.
- Wanaku rules (Wanaku 규칙): 라우트 ID를 MCP 도구 정의에 매핑하여, AI 에이전트가 각 라우트를 발견하고 호출하는 데 필요한 메타데이터를 추가합니다.
- Maven dependencies (Maven 의존성): 필요한 Camel 컴포넌트와 라이브러리를 선언합니다.
무료 Open Library API를 호출하는 도서 검색 예제를 사용하여 서비스 카탈로그(Service Catalog)가 어떻게 구성되는지 살펴보겠습니다:
demo-catalog/
├── index.properties # 카탈로그 매니페스트 (Catalog manifest)
└── books/
...
Apache Camel 기반 (The Apache Camel Foundation)
books.camel.yaml 파일에는 표준 Apache Camel 라우트(route) 정의가 포함되어 있습니다:
- route:
id: get-book-by-isbn
description: ISBN으로 도서 정보 조회
...
이것은 순수한 Camel 코드이며, 여기에는 AI 특화 기능이 전혀 없습니다. 이 라우트들은 트리거를 위한 Camel의 direct 컴포넌트와 외부 API 호출을 위한 http 컴포넌트를 활용합니다. 핵심적인 장점은 대부분의 Camel 라우트가 최소한의 수정만으로 AI 도구(AI tools)가 될 수 있다는 점입니다. 일반적으로 direct: 엔드포인트를 노출하고 wanaku-rules 매핑을 추가하는 것만으로 충분합니다.
팁: YAML을 직접 편집하는 대신 Kaoto 또는 Camel Karavan과 같은 시각적 에디터를 사용하여 Camel 라우트를 설계하고 편집할 수 있습니다.
라우트 ID에서 AI 도구로 (From Route ID to AI Tool)
Wanaku의 CLI는 라우트 ID로부터 MCP 도구 정의를 생성합니다:
wanaku service expose --path=demo-catalog
이 명령은 각 Camel 라우트 파일을 스캔하여 그에 상응하는 wanaku-rules.yaml을 생성합니다:
# 도서(books)를 위한 자동 생성된 Wanaku 규칙
# 'wanaku service expose'에 의해 생성됨
mcp:
...
각 도구 정의에 있는 wanaku_body 속성에 주목하십시오. 이는 AI 에이전트의 입력을 파라미터나 헤더로 전달하는 대신, Camel 데이터 교환(data exchange)의 바디(body)에 직접 배치하도록 Wanaku에 지시하는 특수 인자입니다. 덕분에 위의 라우트들이 toD URI 및 로그 메시지에서 ${body}를 참조할 수 있습니다.
이제 AI 에이전트는 get-book-by-isbn 및 search-books를 사용 가능한 도구로 인식하고 MCP 프로토콜을 통해 이를 호출할 수 있습니다. 내부적으로 Wanaku는 각 요청을 해당하는 Camel direct: 엔드포인트로 라우팅하고, 라우트를 실행한 뒤 결과를 반환합니다.
Camel의 컴포넌트 생태계 활용 (Leveraging Camel's Component Ecosystem)
Apache Camel의 가장 큰 강점 중 하나는 HTTP와 데이터베이스부터 메시징 시스템, 클라우드 서비스, IoT 프로토콜에 이르기까지 모든 것을 아우르는 **400개 이상의 컴포넌트 (components)**를 보유하고 있다는 점입니다. 서비스 카탈로그 (Service Catalogs)는 이 전체 생태계를 AI 에이전트가 사용할 수 있도록 만들어 줍니다.
예를 들어, 도서 검색 카탈로그는 books.dependencies.txt에 다음과 같이 의존성을 선언합니다:
org.apache.camel:camel-http:4.18.2
org.apache.camel:camel-jackson:4.18.2
이러한 선언적 접근 방식은 카탈로그를 배포하는 즉시, Wanaku가 런타임 (runtime)에 필요한 Camel 컴포넌트들을 사용할 수 있도록 보장함을 의미합니다. AI 에이전트는 Camel을 기반으로 작동하는 HTTP 클라이언트, JSON 변환 (JSON transformations) 등을 즉시 사용할 수 있게 됩니다.
서비스 템플릿: 매개변수화된 Camel 통합 (Service Templates: Parameterized Camel Integrations)
서비스 카탈로그를 기반으로, **서비스 템플릿 (Service Templates)**은 **Camel 프로퍼티 플레이스홀더 (Camel Property Placeholders)**를 사용하여 매개변수화 (parameterization) 기능을 도입합니다. 이를 통해 사용자가 YAML이나 Java 코드를 직접 수정하지 않고도 맞춤 설정할 수 있는 재사용 가능한 통합 청사진 (integration blueprints)을 생성할 수 있습니다.
작동 원리: Camel 프로퍼티 플레이스홀더 (Camel Property Placeholders)
서비스 템플릿은 설정 가능한 값을 표시하기 위해 Camel의 네이티브 {{property}} 구문을 사용합니다. 예를 들어, 요청/응답 (request/reply) 메시징을 설정하는 Kafka 템플릿은 다음과 같습니다:
kafka/service.properties:
kafka.brokers={{kafka.brokers}}
kafka.request.topic={{kafka.request.topic}}
kafka.response.topic={{kafka.response.topic}}
...
kafka/kafka.camel.yaml:
- route:
id: kafka-request-reply
description: Send a Kafka request and wait for the correlated reply
...
사용자가 이 템플릿을 인스턴스화 (instantiate)하면, Wanaku는 즉시 배포 가능한 서비스 카탈로그를 생성하고 Apache Camel과 협력하여 해당 플레이스홀더들을 교체합니다. 결과로 생성된 Camel 라우트 (routes)는 수동 편집 없이도 완전히 기능합니다. 사용자는 Wanaku 관리 UI (Admin UI)의 서비스 카탈로그 페이지를 통해 템플릿을 찾아보고 인스턴스화할 수 있습니다.
일반적인 통합을 위한 내장 템플릿
Wanaku 0.1.1은 Apache Camel의 다재다능함을 보여주는 여러 가지 내장 서비스 템플릿을 제공합니다:
- kafka-tool —
camel-kafka를 사용한 수동 상관관계(manual correlation) 기반의 요청/응답(Request/reply) 메시징 - jms-tool —
camel-jms를 사용한 ActiveMQ Artemis 메시징 - github-pullrequest-source-tool —
camel-http및 REST API를 사용한 GitHub PR 데이터 가져오기 - jira-add-comment-tool, jira-add-issue-tool, jira-update-issue-tool —
camel-jira를 사용한 Jira 통합 - mail-sink-tool —
camel-mail을 사용하여 SMTP를 통한 이메일 전송 - rabbitmq-tool —
camel-rabbitmq를 사용한 RabbitMQ 메시징 - telegram-sink-tool —
camel-telegram을 사용하여 Telegram 메시지 전송 - ftp-resource, sftp-resource —
camel-ftp를 사용한 파일 전송 - aws-s3-resource, azure-files-resource —
camel-aws-s3및camel-azure-files를 사용한 클라우드 스토리지 액세스
각 템플릿은 Camel 컴포넌트가 프로토콜 처리, 연결 관리, 오류 복구와 같은 복잡한 작업(heavy lifting)을 어떻게 처리하는지 보여주는 동시에, Wanaku는 그 결과를 깔끔하고 AI 친화적인 도구로 노출합니다.
Camel 통합 기능 (The Camel Integration Capability)
서비스 카탈로그(Service Catalogs)와 템플릿(Templates)은 Camel 경로(routes)를 패키징하는 선언적인 방법을 제공하지만, 이를 실제로 _실행_할 무언가가 필요합니다. 그것이 바로 **Camel 통합 기능 (Camel Integration Capability)**입니다. 이는 AI 에이전트를 대신하여 Camel 경로를 동적으로 로드하고 실행하는 독립형 런타임 서비스입니다.
이 기능은 다음과 같은 역할을 수행합니다:
- Wanaku CLI, REST API 또는 Kubernetes 오퍼레이터(operator)를 통해 배포된 Camel 경로 YAML 파일을 수락합니다.
- 경로를 Camel 컨텍스트(context)로 로드합니다.
- 경로 ID를 MCP 도구로 노출합니다.
- 경로의 생명주기(시작, 중지, 업데이트)를 관리합니다.
Camel 통합 기능은 다음과 같은 기술을 사용하여 구축된 일반 Java 애플리케이션입니다:
- Apache Camel Main — 가볍고 독립적인 Camel 경로 실행을 위해 사용
- Wanaku Capabilities Java SDK — MCP 프로토콜 통합을 위해 사용
서비스 카탈로그를 배포한 후, 별도로 기능 서비스를 시작합니다:
java -jar camel-integration-capability-main-0.1.1-jar-with-dependencies.jar \
--registration-url http://localhost:8080 \
--registration-announce-address localhost \
...
Capability service(기능 서비스)가 Wanaku 라우터에 등록되면, 몇 초 내에 AI 에이전트가 도구(tools)를 사용할 수 있게 됩니다. Camel Integration Capability releases page에서 JAR 파일을 다운로드하세요.
CLI 워크플로우: 초기화부터 배포까지
Wanaku가 로컬에서 실행 중이라면, 서비스 카탈로그 (Service Catalog)를 구축하는 워크플로우는 매우 간단합니다:
# 1단계: 새로운 서비스 카탈로그 초기화
wanaku service init --name=demo-catalog --services=books
...
서비스 템플릿 (Service Templates)의 경우, 재사용 가능한 블루프린트 (blueprints)를 패키징하여 배포할 수도 있습니다:
# 템플릿을 ZIP 아카이브로 패키징
wanaku service package --path=weather-template -o weather-template.zip
...
이 워크플로우는 라우트 (routes)를 정의하고, 패키징하고, 배포하는 익숙한 Camel 개발 경험을 반영하면서도, MCP 툴링 (tooling)이 내장되어 있습니다.
도구 테스트하기
배포가 완료되면 도구가 정상적으로 등록되었는지 확인할 수 있습니다:
wanaku tools list
다음과 같은 출력이 나타나야 합니다:
name namespace type uri labels
get-book-by-isbn default books books://get-book-by-isbn {}
search-books default books books://search-books {}
MCP Inspector를 사용하여 도구를 대화형으로 테스트해 보세요:
npx @modelcontextprotocol/inspector
Kubernetes 네이티브 배포
서비스 카탈로그 (Service Catalogs)는 환경에 구애받지 않습니다. wanaku service deploy를 통해 로컬에 배포하거나, 오퍼레이터 (operator) 및 CRD를 통해 Kubernetes에 배포할 수 있습니다.
운영 환경(production)에서 사용하기 위해, Wanaku에는 서비스 카탈로그를 선언적으로 관리하는 Kubernetes Operator가 포함되어 있습니다:
apiVersion: "wanaku.ai/v1alpha1"
kind: WanakuServiceCatalog
metadata:
...
오퍼레이터는 패키징된 서비스 카탈로그가 포함된 ConfigMap을 읽어 라우터에 자동으로 배포합니다. 이 방식은 GitOps 관행과 일치하며 기존의 Kubernetes 워크플로우와 원활하게 통합됩니다.
서비스 카탈로그와 템플릿이 중요한 이유
Wanaku 0.1.1 이전에는 Camel 라우트 (Camel route)를 AI 에이전트에 노출하기 위해 커스텀 REST API 래퍼 (wrappers), 수동 MCP 도구 정의, 의존성 관리 및 컨테이너 오케스트레이션 (container orchestration)이 필요했습니다. 서비스 카탈로그 (Service Catalogs)는 이를 단일 wanaku service init + wanaku service deploy 워크플로우로 압축합니다. 서비스 템플릿 (Service Templates)은 여기서 더 나아가, 수백 줄의 보일러플레이트 (boilerplate) 코드가 필요한 Kafka 통합을 단 5개의 속성만 가진 양식으로 변환해 줍니다.
이를 통해 AI 에이전트를 위한 Apache Camel의 모든 강력한 기능을 활용할 수 있습니다:
-
Camel의 통합 패턴 (Integration Patterns) — 엔터프라이즈 통합 패턴 (EIPs), 콘텐츠 기반 라우팅 (content-based routing), 데이터 변환 (data transformation), 에러 처리 (error handling) 등이 커스텀 API 래퍼 없이도 AI 에이전트가 모두 접근 가능해집니다.
-
프로토콜 다양성 (Protocol Diversity) — AI 에이전트가 현대적인 REST API를 노출하지 않는 시스템과도 상호작용할 수 있습니다. JT400을 통해 AS/400을 쿼리해야 하나요? FTP 서버를 폴링 (poll)해야 하나요? 레거시 JMS 큐 (queue)에서 데이터를 소비해야 하나요? Camel이 모두 처리합니다.
-
데이터 형식 유연성 (Data Format Flexibility) — Camel의 타입 컨버터 (type converters)와 데이터 형식 (Jackson, JAXB, CSV, Avro) 덕분에 AI 에이전트는 엔터프라이즈 시스템이 기대하는 형식으로 데이터를 소비하고 생성할 수 있습니다.
-
에러 처리 및 회복탄력성 (Error Handling & Resilience) — Camel의 에러 핸들러 (error handlers), 재시도 정책 (retry policies), 데드 레터 채널 (dead letter channels)은 AI 에이전트가 불안정한 외부 시스템과 상호작용할 때도 견고한 통합을 보장합니다.
-
관측 가능성 (Observability) — Camel의 내장 메트릭 (metrics), 로깅 (logging), 트레이싱 (tracing)은 표준 관측 가능성 스택 (Prometheus, Grafana, Jaeger)과 통합되어 AI 기반 통합을 쉽게 모니터링할 수 있게 합니다.
시작하기
지금 바로 Wanaku 0.1.1을 사용해 보세요:
- CLI 다운로드: https://github.com/wanaku-ai/wanaku/releases/
- Wanaku 기초부터 배우기: https://wanaku.ai/docs/demos/ — 로컬 실험부터 클라우드 상의 프로덕션 배포 (production deployment)까지 안내하는 단계별 가이드
- Demo 2.02 — 서비스 카탈로그 (Service Catalogs): 도서 검색 카탈로그를 단계별로 구축 및 배포
- Demo 2.03 — 서비스 템플릿 (Service Templates): 재사용 가능한 통합 청사진 (integration blueprints) 생성 및 인스턴스화
- 서비스 카탈로그 가이드 읽기: 서비스 카탈로그 (Service Catalogs) 문서
- 서비스 템플릿 가이드 읽기: 서비스 템플릿 (Service Templates) 문서
다음 단계는 무엇인가요?
우리는 이제 막 시작했을 뿐입니다. 향후 릴리스에서는 다음 기능들이 추가될 예정입니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기