Wanaku Barn Backend
Overview
The Wanaku Barn backend provides persistence, service catalog management, MCP server registration, and administration APIs for the Wanaku ecosystem.
Note: The primary MCP routing engine is now Wanaku Praxis (Rust). This backend serves as the "Classic Wanaku" component, handling persistence and management operations that Praxis proxies to in hybrid deployments.
Purpose
The backend is responsible for:
- Managing tool and resource registrations (persistence)
- Providing HTTP management API for configuration
- Handling authentication and authorization
- Managing multiple MCP namespaces
- Serving service catalogs and data stores
- Routes tool invocations to appropriate tool services via MCP
- Routes resource read requests to appropriate providers via MCP
Key Features
- MCP Protocol Support: SSE and Streamable HTTP transports
- Multi-Namespace: Support for 10+ isolated namespaces
- MCP Communication: Communication with downstream MCP servers via MCP protocol
- Management API: REST API for configuration
- Web UI: React-based administration interface (Praxis plugin)
- Authentication: OIDC integration via Keycloak
- Service Discovery: Automatic registration and health monitoring of downstream MCP servers
- Data Persistence: Infinispan-based storage for router state
Architecture
Built on:
- Quarkus: Modern Java framework for cloud-native applications
- Quarkus MCP Server Extension: MCP protocol implementation
- MCP: Service communication protocol
- Infinispan: Embedded data grid for persistence
Running
Development Mode
shell
mvn quarkus:devProduction Mode
shell
java -jar target/quarkus-app/quarkus-run.jarContainer
shell
podman run -p 8080:8080 quay.io/wanaku/wanaku-barn-backend:latestConfiguration
Key configuration properties (see Configuration Guide for complete reference):
properties
# HTTP
quarkus.http.port=8080
# Authentication
auth.server=http://localhost:8543
quarkus.oidc.client-id=wanaku-mcp-router
# Persistence
wanaku.persistence.infinispan.base-folder=${wanaku.home}/router/
# MCP
quarkus.mcp.server.traffic-logging.enabled=trueAPI Endpoints
- MCP (SSE):
http://localhost:8080/mcp/sse - MCP (HTTP):
http://localhost:8080/mcp/ - Management API:
http://localhost:8080/api/ - Web UI:
http://localhost:8080/ - Health:
http://localhost:8080/q/health