Skip to content

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:dev

Production Mode

shell
java -jar target/quarkus-app/quarkus-run.jar

Container

shell
podman run -p 8080:8080 quay.io/wanaku/wanaku-barn-backend:latest

Configuration

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=true

API 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