Skip to main content
Glama
Warmplane

warmplane

Official
by Warmplane

Warmplane

Latest Release crates.io docs.rs License: MIT Rust Guideline Checks Security Audit

보안 통제: WORM + HMAC audit HITL + policy OAuth2 + PKCE Secret redaction SIEM + OTLP

MCP 세션을 컴팩트한 capability/resource/prompt 파사드로 웜 상태로 유지하는 로컬 컨트롤 플레인.

v0.25.2 — 변경 로그 · 사용자 가이드 · 성능 · 백서 · OpenAPI

Warmplane은 하나의 로컬 프로세스 뒤에서 여러 업스트림 MCP 서버를 실행하고, 해당 세션을 지속적으로 유지하며, HTTP, CLI 및 MCP 네이티브 클라이언트를 통해 접근할 수 있는 컴팩트하고 정책 인식형 도구·리소스·프롬프트 표면을 노출합니다.


빠른 시작

1. 설치

Homebrew 사용 (macOS & Linux):

brew tap warmplane/tap
brew install warmplane

또는 Cargo 사용:

cargo install warmplane

# Optional: with local ONNX vector embeddings (FastEmbed)
cargo install warmplane --features semantic-search

또는 소스에서 빌드:

git clone https://github.com/Warmplane/warmplane.git
cd warmplane
cargo install --path . --features semantic-search

2. 업스트림 서버 구성

서버를 대화형으로 관리하거나 기존 도구에서 가져오기:

# Interactive setup wizard
warmplane server add

# Or add non-interactively
warmplane server add filesystem --command npx --arg "-y" --arg "@modelcontextprotocol/server-filesystem" --arg "/tmp"
warmplane server add context7 --url "https://mcp.context7.ai/sse" --bearer-env "CONTEXT7_API_KEY"

# Or import directly from Claude Desktop / Cursor
warmplane config import

또는 mcp_servers.json을 직접 생성:

{
  "port": 9090,
  "toolTimeoutMs": 15000,
  "capabilityAliases": { "sqlite.read_query": "db.query" },
  "resourceAliases":  { "filesystem.file:///tmp/readme.txt": "fs.readme" },
  "promptAliases":    { "github.code_review": "prompt.code-review" },
  "policy": {
    "allow": ["db.*", "fs.*", "prompt.*"],
    "deny":  ["fs.secret"],
    "redactKeys": ["token", "api_key", "password"]
  },
  "profiles": {
    "coding": {
      "servers": ["filesystem", "sqlite"],
      "description": "Local coding and data inspection tools"
    }
  },
  "mcpServers": {
    "sqlite":     { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sqlite", "./test.db"] },
    "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] }
  }
}

3. 검증 후 시작

warmplane server list
warmplane validate-config --config mcp_servers.json
warmplane daemon --config mcp_servers.json

Related MCP server: mcp-gateway

실행 모드

세 가지 모드는 모두 동일한 백엔드 상태, 별칭, 정책 검사 및 시간 초과 동작을 공유합니다.

HTTP 데몬

warmplane daemon --config mcp_servers.json
# Serves /v1/... on the configured port (default 9090)

주요 엔드포인트:

메서드

경로

설명

GET

/v1/capabilities

컴팩트 capability 인덱스

POST

/v1/capabilities/search

하이브리드 어휘 + 의미 검색

POST

/v1/tools/call

정규화된 실행 엔벨로프(멱등성 키, _jsonpath, _limit_lines, _truncate_bytes 지원)

POST

/v1/tools/batch_call

$step.field 참조 보간을 사용한 체인 방식 다단계 실행

GET

/v1/idempotency/records

캐시된 멱등성 실행 레코드 및 재실행 횟수 나열

GET

/v1/idempotency/records/:key

단일 캐시된 멱등성 레코드 검사

GET

/v1/resources

리소스 인덱스

POST

/v1/resources/read

리소스 읽기

GET

/v1/prompts

프롬프트 인덱스

POST

/v1/prompts/get

프롬프트 렌더링

GET

/v1/catalog/events

카탈로그 변경 이벤트 피드

POST

/v1/operations/:id/cancel

진행 중인 작업 취소

MCP 서버 (stdio)

warmplane mcp-server --config mcp_servers.json

이 프로세스를 모든 MCP 네이티브 클라이언트에 연결하세요. 네이티브 resources/* 및 prompts/* 메서드와 함께 경량 파사드 도구(capabilities_list, capability_search, capability_describe, capability_call, capabilities_batch_call, resource_read, prompt_get, …)를 노출합니다.

Claude Desktop / Cursor 구성:

{
  "mcpServers": {
    "warmplane": {
      "command": "warmplane",
      "args": ["mcp-server", "--config", "mcp_servers.json"]
    }
  }
}

MCP 서버 (HTTP/SSE)

동일한 파사드를 Streamable HTTP/SSE로 노출하므로 원격 클라이언트(CI 파이프라인, 다중 호스트 에이전트 클러스터, 원격 데스크톱 클라이언트)는 로컬 프로세스 없이 연결할 수 있습니다:

# Local-only (default, no auth required)
warmplane mcp-http-server --config mcp_servers.json

# Network-accessible (requires authToken in config)
warmplane mcp-http-server --config mcp_servers.json --bind 0.0.0.0 --port 9191

# Profile-restricted
warmplane mcp-http-server --config mcp_servers.json --profile coding

모든 MCP HTTP 클라이언트에서 연결:

{
  "mcpServers": {
    "warmplane": {
      "url": "http://localhost:9191/mcp"
    }
  }
}

또는 mcp_servers.json에 mcpHttpServer 블록을 추가하면 데몬이 두 서버를 하나의 프로세스에서 공동 호스팅합니다:

{
  "mcpHttpServer": { "port": 9191 },
  "mcpServers": { ... }
}

전체 구성 참조는 사용자 가이드 §4.7을 참조하세요.

CLI 구성 및 운영

# Interactive server setup wizard
warmplane server add

# Import settings from Claude Desktop or Cursor
warmplane config import

# Hot-reload in-memory workers from mcp_servers.json without restarting
warmplane reload

# Inspect & test servers
warmplane server list
warmplane server test github

# Ecosystem config import (Claude Desktop, Cursor, Zed)
warmplane config import

# Aliases and Policies
warmplane config alias set tool git-commit github.create_commit
warmplane config policy allow "github.*" "fetch.*"

# Capability and Execution CLI (supports --profile <name>)
warmplane list-capabilities --profile coding
warmplane search-capabilities "triage logs" --limit 5 --profile coding
warmplane describe-capability db.query --profile coding

warmplane call-capability db.query \
  --params '{"query":"SELECT 1"}' \
  --request-id req-101 --actor-id user-7 \
  --idempotency-key op-20-run-1 \
  --profile coding

warmplane read-resource fs.readme --profile coding
warmplane get-prompt prompt.code-review --arguments '{"code":"fn main() {}"}' --profile coding

warmplane list-catalog-events --after evt_3
warmplane cancel-operation req-101

성능 하이라이트

Warmplane은 순수 Rust 제로비용 추상화로 설계되어 에이전트 루프를 빠르게 유지합니다:

  • 50.4 ns ETag 캐시 검증 (If-None-Match $\rightarrow$ 304 Not Modified)

  • 159.8 ns 멱등성 캐시 적중 중복 제거

  • 1.58 µs SHA-256 증분 카탈로그 버전 해싱 ($N=10$)

  • 15.9 µs 필터링된 하이브리드 capability 검색 ($N=50$)

  • 372.1 µs 1,000개 도구 대상 인메모리 제로 할당 어휘 태그 검색

👉 전체 벤치마크 및 프로파일링 방법론은 docs/PERFORMANCE.md를 참조하세요.


기능 개요

기능

도입 버전

요약

SEP-2663 Tasks Extension & Unified HITL

v0.24.0

공식 io.modelcontextprotocol/tasks 지원, 원자적 상태 머신, 비동기 장기 실행 도구 실행(202 Accepted + resultType: "task"), 협력적 취소(POST /v1/tasks/:id/cancel), TTL 만료 관리, 통합 HITL(Human-in-the-Loop) 일시 중지 및 인자 해석

Exactly-Once Idempotency & Replay Ledger

v0.23.0

결정적 자동 키 생성(idk_<sha256>), X-Warmplane-Deduplicated: true 헤더 캐싱, 재실행 횟수 추적, WORM 감사 추적 연결(idempotency_key, is_replay), /v1/idempotency/records 검사 API

Embedded Rust Library Engine

v0.23.0

직접적인 인프로세스 라이브러리 인터페이스(EmbeddedWarmplane, ControlPlaneHandle), 강력한 타입의 응답 엔벨로프(Envelope<T>), 직접 tool/resource/prompt 실행, 호출자의 Tokio 런타임에서의 graceful 취소

MCP HTTP/SSE Server Mode

v0.22.0

원격 네트워크 클라이언트용 Streamable HTTP/SSE MCP 서버(mcp-http-server); mcpHttpServer 구성 블록을 통한 데몬 공동 호스팅; 프로필 제한, 루프백이 아닌 바인드에 대한 인증 강제, graceful 공유 상태 종료

Signal Handling & Graceful Teardown

v0.21.0

즉각적인 신호 취소(CancellationToken), 즉각적인 SSE 스트림 종료, 깨끗한 stdio 자식 프로세스 고아 방지(kill_on_drop), 제한된 드레인 안전 시간 초과

3. 실행 및 연결

# Start HTTP daemon & Web Control Deck on http://127.0.0.1:9090
warmplane daemon

# Expose warmplane as a standard stdio MCP facade to Claude Desktop or Cursor
warmplane mcp-server

핵심 기능

기능

버전

설명

Control Deck Tasks & HITL UI

v0.25.0

라이브 Tasks & Approvals 허브, MRTR 입력 해석 폼, Playground 비동기 토글, 임베디드 태스크 API

SEP-2663 Tasks Extension

v0.24.0

비차단 io.modelcontextprotocol/tasks 기능, 통합 HITL 상태 머신, REST 및 CLI 명령

In-Process Embedded Rust Engine

v0.23.0

제로 오버헤드 라이브러리 통합을 위한 EmbeddedWarmplane 및 ControlPlaneHandle

Streamable HTTP/SSE MCP Transport

v0.22.0

원격 에이전트 연결을 위한 동시 호스팅 /mcp/sse MCP 전송

Named Server Constellations

v0.21.0

범위 지정 ETag 파티셔닝 및 stdio 필터링을 지원하는 프로필 그룹화(profiles)

Multi-Tenant RBAC

v0.20.0

역할 기반 토큰 액세스, 결정적 카탈로그 파티셔닝, 테넌트 컨텍스트 전파

Client-Delegated MCP Sampling

v0.19.0

티켓 추적 및 롱폴링을 지원하는 역방향 RPC 샘플링(sampling/createMessage)

Persistent State Subsystem

v0.18.0

승인, 멱등성 및 OAuth2 토큰을 위한 원자적 재시작 내성 디스크 저장소(AtomicFile<T>)

Graceful Shutdown & Signals

v0.18.0

강력한 SIGINT/SIGTERM 처리, 비동기 워커 플러시, 자식 프로세스 고아 방지

MCP Resource & Prompt Studio

v0.17.0

360° 리소스 탐색기, 동적 폼을 지원하는 프롬프트 템플릿 렌더러, SSE 동기화

Multi-Step Batch Pipelines

v0.17.0

참조 매개변수 보간을 지원하는 비주얼 파이프라인 편집기(POST /v1/tools/batch_call)

Enterprise Security & Auth

v0.16.0

토큰 기반 미들웨어 보호, WORM 감사 HMAC 검증, 비밀 마스킹

Fault Tolerance & Supervision

v0.15.0

저하된 시작, 서버별 서킷 브레이커, 지수 백오프 재시작 감독

Agent Enrichment Suite

v0.14.0

파사드 검색, 컨텍스트 증류(_jsonpath/_limit_lines), 다중 단계 배치 실행

HITL Approval Engine

v0.13.0

운영자 게이트 승인 엔진, 일시 중단, 인수 편집, HMAC 웹훅 디스패치

WORM Audit & SIEM

v0.12.0

추가 전용 SHA-256 해시 체인 감사 로깅, 검증 API, Splunk/Webhook SIEM 내보내기

Control Deck Web UI

v0.11.0

서버를 위한 독립형 임베디드 웹 대시보드, 테스트 플레이그라운드, 정책 및 텔레메트리

Dynamic Hot-Reloading

v0.11.0

무중단 업스트림 마운트/언마운트, 명시적 warmplane reload 및 /v1/config/reload


변경 로그

v0.25.2 — MCPB 번들 패키징 및 공식 MCP 레지스트리 파이프라인

  • MCPB 배포 형식(packaging/mcpb/, .github/workflows/release-artifacts.yml): 독립 실행형 바이너리, 부트스트랩 구성, 표준화된 매니페스트(manifest_version: "0.3")가 포함된 플랫폼별 Model Context Protocol 번들(.mcpb)의 자동화된 빌드 및 패키징을 추가했습니다.

  • 공식 MCP 레지스트리 메타데이터(server.json): 릴리스 워크플로는 이제 공식 server.schema.json 사양(io.github.warmplane/warmplane)을 준수하는 정식 레지스트리 메타데이터를 다중 아키텍처 SHA-256 패키지 다이제스트와 함께 자동 생성합니다.

  • Homebrew Tap(Warmplane/homebrew-tap): 사전 빌드된 macOS 및 Linux 포뮬러를 사용하는 공식 tap 배포를 구성했습니다(brew tap warmplane/tap && brew install warmplane).

v0.25.1 — 비동기 태스크 완료 상태 머신 수정

  • 비동기 태스크 종료 처리(src/engine/mod.rs, src/http_v1/execute.rs): 비동기 기능 실행(async_task: true 또는 Prefer: respond-async) 및 HITL(Human-in-the-Loop) 입력 응답 후 재개된 태스크가 TaskStatus::Working 상태에 무기한 남아 있던 회귀 문제를 해결했습니다. 이제 백그라운드 워커는 최종 상태(result가 포함된 TaskStatus::Completed 또는 구조화된 오류가 포함된 TaskStatus::Failed)를 TaskRegistry에 직접 안정적으로 기록합니다.

  • 임베디드 태스크 수명 주기 테스트(tests/embedded_tests.rs, tests/tasks_tests.rs): 승인 제출 및 직접 비동기 호출 후 get_task와 list_tasks가 업스트림 페이로드와 함께 최종 completed 상태를 관찰하는지 검증하는 포괄적인 자동화 통합 테스트를 추가했습니다.

v0.25.0 — Control Deck Tasks & HITL UI, 프로세스 내 임베디드 Task API

  • Control Deck Tasks & Approvals Hub(ui/src/components/tasks.ts): 검토 큐를 라이브 상태 KPI(input_required, working, completed, cancelled/failed), 인라인 MRTR 입력 해석 폼(불리언, JSON 편집기, 텍스트 필드)이 포함된 대화형 액션 카드, TTL 카운트다운 타이머, 협력적 취소 컨트롤을 갖춘 통합 Tasks & Approvals 대시보드(data-tab="tasks")로 업그레이드했습니다.

  • MCP Playground 비동기 실행 모드: 도구 테스트 플레이그라운드에 "⚡ Async Task Mode" 토글을 추가하고, Tasks & Approvals 검토 덱으로 1클릭 이동할 수 있는 대화형 202 Accepted 태스크 카드 미리보기를 추가했습니다.

  • 임베디드 Rust 태스크 관리 API(ControlPlaneHandle): 프로세스 내 ControlPlaneHandle에 직접 태스크 관리 메서드(list_tasks, get_task, update_task, cancel_task)를 노출하여, 임베딩 애플리케이션이 HTTP 또는 JSON-RPC 직렬화 오버헤드 없이 비동기 SEP-2663 태스크를 관리할 수 있게 했습니다.

  • Overview Cockpit 및 배지 통합: Overview Cockpit에 "Tasks & HITL State" 텔레메트리 카드를 추가하고 실시간 사이드바 배지를 미해결 input_required 태스크에 연결했습니다.

v0.24.0 — SEP-2663 Tasks 확장, 통합 HITL 실행 및 MCP 로드맵 정렬

  • SEP-2663 Tasks 확장 구현(src/tasks.rs): 원자적 영구 저장소(tasks.json), 안전한 TTL 만료 감지, 원샷 입력 응답 채널(TaskWaitSender / TaskWaitReceiver)을 사용하여 공식 io.modelcontextprotocol/tasks 기능을 구현했습니다.

  • 통합 HITL 승인 및 비동기 태스크 상태 머신: HITL(Human-in-the-Loop) 승인 워크플로와 비동기 도구 실행을 SEP-2663 수명 주기에 직접 통합했습니다. 운영자 게이트 승인이 필요하거나 async_task: true / Prefer: respond-async로 요청된 도구 실행은 MRTR inputRequests를 인라인하여 resultType: "task" 및 status: "input_required"와 함께 202 Accepted를 반환합니다.

  • HTTP REST 태스크 API(/v1/tasks/*): 태스크 검사 및 제어를 위한 포괄적인 REST 엔드포인트를 추가했습니다: GET /v1/tasks(목록), GET /v1/tasks/:id(상태/결과 폴링), POST /v1/tasks/:id/update(워커를 깨우기 위한 inputResponses 제출), POST /v1/tasks/:id/cancel(협력적 취소).

  • MCP 파사드 서버 통합: 직접적인 에이전트 오케스트레이션을 위해 MCP 파사드 서버에 task_get, task_update, task_cancel 도구를 노출했습니다.

  • CLI Tasks 하위 명령 및 비동기 실행 플래그: warmplane tasks list, warmplane tasks get <id>, warmplane tasks update <id> -r '<json>', warmplane tasks cancel <id> 및 --async-task 플래그를 warmplane call-capability에 추가했습니다.

  • MCP 프로토콜 로드맵 전략 분석: 공식 MCP 로드맵과 무상태 전송, 세션리스 라우팅, 점진적 기능 검색에 걸친 Warmplane의 아키텍처 정렬을 분석한 docs/MCP_ROADMAP_REPORT.md를 게시했습니다.

v0.23.0 — 임베디드 Rust 엔진, 프로세스 내 Control Plane 및 파사드 어댑터 리팩터링

  • 프로세스 내 임베디드 Rust 라이브러리 엔진(EmbeddedWarmplane, ControlPlaneHandle): HTTP, 데몬 자식 프로세스 또는 JSON-RPC 직렬화 오버헤드 없이 Warmplane을 순수 프로세스 내 라이브러리로 노출했습니다. 호출자는 EmbeddedWarmplane::start(config) 또는 EmbeddedWarmplane::start_from_path(path)를 통해 자체 Tokio 런타임에서 엔진을 직접 실행하고, 타입화된 ControlPlaneHandle 메서드(list_capabilities, describe_capability, search_capabilities, call_capability, batch_call, read_resource, get_prompt, health_status)로 상호 작용합니다.

  • 강력한 타입의 제네릭 엔벨로프 및 오류 모델: 프로그램 방식 오케스트레이션을 위해 구조화된 진단 정보(request_id, trace_id, retry, operator)를 유지하면서 warmplane::engine::types에 Envelope<T>, WarmplaneError, CapabilitySummary, CapabilityDetail, ExecutionOptions, ReadResourceOptions, GetPromptOptions, EngineHealthStatus를 추가했습니다.

  • MCP Stdio 서버 파사드 어댑터 리팩터링: 모든 도구 호출 실행, 검색, 설명, 배치 실행, 리소스/프롬프트 디스패치를 ControlPlaneHandle에 직접 위임하도록 mcp_server.rs를 리팩터링하여 중복 로직을 제거하고 실행 파이프라인을 통합했습니다.

  • 임베디드 엔진 통합 테스트 스위트: 임베디드 수명 주기 시작, 저하된 서버 처리, 상태 점검, 정상 취소를 다루는 전용 통합 테스트를 tests/embedded_tests.rs에 추가했습니다.

v0.22.0 — 스트리밍 가능한 HTTP/SSE MCP 전송, 대화형 Playground 및 UI 개선

  • 스트리밍 가능한 HTTP/SSE MCP 서버 전송(mcp-http-server): 독립형 및 데몬 동시 호스팅 HTTP/SSE MCP 서버 엔드포인트(/mcp/sse, /mcp/messages)를 구축하여 원격 AI 에이전트와 IDE(Cursor, Windsurf, Claude Desktop)가 자동 keep-alive와 클라이언트 드리프트 없이 표준 HTTP/SSE 네트워크를 통해 연결할 수 있게 했습니다.

  • 데몬 동시 호스팅 및 구성(mcpHttpServer): 코어 /v1 HTTP 데몬과 함께 HTTP/SSE MCP 서버 인스턴스를 자동으로 백그라운드 초기화할 수 있는 일급 구성 지원(mcpHttpServer)을 추가했습니다.

  • 프로필 제한 및 바인딩 인증 게이트: MCP 서버 전송에 프로필 제한(profile)을 통합하여 원격 클라이언트에 노출되는 도구와 리소스를 엄격히 격리했습니다. 공용 비루프백 네트워크 인터페이스(0.0.0.0 / 외부 IP)에 바인딩할 때 베어러 토큰 인증을 자동으로 적용했습니다.

  • 대화형 MCP Playground 사용성 개선: Web Control Deck MCP Playground에 샘플 템플릿 주입, 동적 형식 전환, 스키마 기반 인수 생성, 실시간 매개변수 검증을 추가했습니다.

  • UI 전환, 충돌 검사 및 마무리 작업: 대시보드 탭 전체의 페이지 헤더 중복을 제거하고, 버터처럼 부드러운 CSS cubic-bezier 전환을 도입했으며, prefers-reduced-motion 접근성 지원이 포함된 애니메이션 모달 배경과 자동 고유 서버 ID 파생을 통한 충돌 가드를 추가했습니다.

v0.21.0 — Named Server Constellations (Profiles), 신호 수명 주기 및 통합자 생태계

  • 명명된 서버 컨스텔레이션(프로필): 업스트림 MCP 서버 중 작업 관련 하위 집합을 명명된 컨스텔레이션(예: coding, research, data_science)으로 그룹화할 수 있는 일급 프로필 지원(ProfileConfig)이 추가되었습니다.

  • 동적 프로필 선택 및 범위별 ETag 파티셔닝: X-Warmplane-Profile 헤더와 ?profile= 쿼리 매개변수를 통한 요청별 프로필 스코프 지정을 지원했습니다. 카탈로그 엔드포인트(/v1/capabilities, /v1/resources, /v1/prompts) 및 검색(/v1/capabilities/search)은 활성 프로필 외부의 항목을 동적으로 정리하고 결정적 프로필 파티셔닝 ETag(sha256:...-p:<profile_id>)를 유지합니다.

  • MCP 파사드 Stdio 프로필 필터링: warmplane mcp-server 및 warmplane list-capabilities에 --profile <name> CLI 옵션을 추가하여 에이전트 호스트에 엄격하게 범위가 지정된 MCP 도구 및 리소스 표면을 제공합니다.

  • Web Control Deck 프로필 허브: Web UI 대시보드에 대화형 시각적 프로필 관리자를 추가하여 1클릭 활성 컨스텔레이션 전환, 서버 토글, 실시간 카탈로그 필터링을 지원합니다.

  • 신호 처리 및 프로세스 종료 강화: SIGINT(Ctrl-C)/SIGTERM에 즉각적인 tokio_util::sync::CancellationToken 디스패치를 통합하고, SSE 스트림 드레이닝이 차단되지 않게 했으며, kill_on_drop(true)를 통한 자식 프로세스 고아 방지를 추가하고, 3초 제한 안전 종료 시간 초과를 적용했습니다.

  • 개발자 및 통합자 생태계 가이드: 공식 Rust Integrators Guide, TypeScript Integrators Guide, Idempotency Architecture Editorial을 게시했습니다.

v0.20.0 — 멀티 테넌트 RBAC 및 결정적 카탈로그 파티셔닝

  • 멀티 테넌트 RBAC 엔진(src/rbac): 정적 API 토큰, 구성의 토큰-역할 매핑(rbac.tokens), 구성 가능한 비밀 키(rbac.jwt_secret)를 사용한 암호화 HMAC-SHA256 대칭 JWT 서명 검증을 지원하는 역할 기반 접근 제어 엔진을 구축했습니다.

  • 결정적 카탈로그 파티셔닝 및 범위 정리: /v1/capabilities, /v1/resources, /v1/prompts, /v1/capabilities/search를 재구성하여 호출자 역할 및 유효 정책에 따라 항목을 동적으로 필터링합니다. 권한이 없는 항목은 카탈로그 목록 및 검색 쿼리에서 완전히 표시되지 않습니다.

  • 테넌트 컨텍스트 주입 및 부인 방지 감사: RBAC 가드 미들웨어(src/rbac/middleware.rs)를 통해 확인된 TenantContext(tenant_id, role, actor_id, grant_id, effective_policy)를 요청 확장에 주입했습니다. 검증된 테넌트/액터 메타데이터를 WORM 감사 이벤트에 자동으로 바인딩했습니다.

  • 역할 정책 재정의 및 HITL 위임: 기본 시스템 정책을 재정의하거나 교차하는 사용자 정의 allow, deny, require_approval, redact_keys 규칙을 포함한 세분화된 역할 정의(RolePolicyConfig)를 지원했습니다.

  • 통합 테스트 스위트: 토큰 인증, 검색 필터링, 카탈로그 격리, 정책 경계 강제, 멀티 테넌트 감사 검증을 다루는 전용 RBAC 통합 테스트(tests/rbac_integration.rs)를 추가했습니다.

v0.19.0 — 클라이언트 위임 MCP 샘플링, HTTP/SSE 슈퍼바이저 루프 및 강화

  • 클라이언트 위임 MCP 샘플링(sampling/createMessage): 클라이언트 위임 LLM 완성 역방향 RPC 처리(src/sampling.rs)를 구현했습니다. 업스트림 서버 또는 에이전트가 샘플링 요청을 제출하면 추적 티켓(samp_<timestamp>_<seq>)이 생성되고, 동기식 롱폴링 또는 비동기 수명주기 엔드포인트(POST /v1/sampling/create_message, GET /v1/sampling/requests, GET /v1/sampling/requests/:id, POST /v1/sampling/requests/:id/respond)가 제공됩니다.

  • 영구 샘플링 상태: 자동 만료 수확 작업과 함께 AtomicFile<HashMap<String, PendingSamplingRequest>>를 통한 원자적이고 재시작에 강한 디스크 저장소(sampling.json)를 추가했습니다.

  • 자가 복구 스트리밍 HTTP/SSE 슈퍼바이저: 자동 재연결 백오프, 카탈로그 조정, 저하된 부팅 상태 보고와 함께 원격 HTTP/SSE MCP 서버를 슈퍼바이저 루프에 통합했습니다.

  • 보안 및 DoS 강화: 의미 벡터 검색의 후보 capability 임베딩을 MAX_VECTOR_SEARCH_CANDIDATES = 250으로 제한하고, 감사 내보내기 쿼리를 MAX_IN_MEMORY_AUDIT_EVENTS(20,000)로 제한했으며, OAuth 프록시 요청에 대해 Host 헤더 및 루프백 Origin 검사를 적용했습니다.

  • CI 게이팅 및 TypeScript 타입체킹: Web UI CI 파이프라인에 자동화된 TypeScript 타입체킹(tsc --noEmit)을 추가하고 중복 실행을 없애기 위해 푸시 트리거를 main으로 제한했습니다.

  • 실용적 Rust 컴플라이언스: 표준 컴플라이언스 헤더(// Rust guideline compliant YYYY-MM-DD)를 사용하여 전체 51개 소스 파일에서 100% 준수를 달성했습니다.

v0.18.0 — 영구 상태 하위 시스템, 우아한 종료, CI UI 자동화 및 E2E 테스트 스위트

  • 영구 상태 하위 시스템: HITL 대기 승인(approvals.json), 멱등 실행 기록(idempotency.json), OAuth2 토큰(oauth_tokens.json), 카탈로그 변경 이벤트(catalog_events.json)를 위한 원자적이고 재시작에 강한 디스크 저장소(AtomicFile<T> 및 StateDirectory)를 추가했습니다. McpConfig에 state 블록과 warmplane config state show/set CLI 명령을 추가했습니다.

  • 우아한 신호 처리 및 하위 시스템 종료: Unix와 Windows에서 강력한 SIGINT(Ctrl+C) 및 SIGTERM 신호 캡처를 추가하고, 우아한 HTTP 서버 드레이닝, 비동기 감사 워커 플러시(AuditWorkerMsg::FlushAndShutdown), 종료 시 stdio 하위 프로세스의 깨끗한 종료를 통합했습니다.

  • 실용적 Rust 컴플라이언스: 표준 컴플라이언스 헤더(// Rust guideline compliant YYYY-MM-DD)를 사용하여 전체 51개 소스 파일에서 100% 준수를 달성했습니다.

  • CI 자동화 Web UI 빌드 및 드리프트 게이트: GitHub Actions CI(ci.yml) 및 릴리스 파이프라인(release-artifacts.yml)에 Bun을 통합하고 자동화된 빌드 단계와 엄격한 git diff --exit-code ui/dist/index.html 드리프트 감지를 추가했습니다.

  • 포괄적인 엔드투엔드 통합 스위트: stdio MCP 프로토콜 핸드셰이크, 실시간 TCP SSE 스트리밍, 구성 핫 리로드, 자동 401 토큰 갱신을 포함한 목 OAuth2 RFC 8414 공급자 왕복, 슈퍼바이저 복구를 실행하는 전용 E2E 테스트 하네스(tests/e2e_tests.rs)를 구현했습니다.

v0.17.0 — 360° MCP 탐색기, 시각적 배치 파이프라인 빌더 및 WORM 감사 페이지네이션

  • WORM 감사 다중 필드 검색 및 페이지네이션: 11개 메타데이터 필드에 대한 대소문자 구분 없는 부분 문자열 검색, 결과 상태 및 서버 필터, 오프셋/한도 페이지네이션 슬라이싱(/v1/audit/events), 상황 인식 CSV 및 JSONL 내보내기 다운로드(/v1/audit/export)를 추가했습니다.

  • MCP 리소스 탐색기 및 실시간 콘텐츠 리더: 프로토콜 스킴 배지(file://, postgres://, github://, memory://, sqlite:// 등), 메타데이터/MIME 뷰어, 컨텍스트 증류(_jsonpath, _limit_lines, _truncate_bytes)를 지원하는 실시간 콘텐츠 리더를 갖춘 360° 리소스 검색 브라우저를 추가했습니다.

  • MCP 프롬프트 템플릿 스튜디오: REQUIRED 검증 배지와 함께 동적 프롬프트 템플릿 탐색 및 인수 양식 생성을 추가하고, 확인된 시스템/사용자 프롬프트 봉투(/v1/prompts/get)를 렌더링합니다.

  • 진행 중 작업 취소: 실시간 실행 타이머와 즉각적인 협조적 중단(POST /v1/operations/:id/cancel)을 갖춘 대화형 UI 실행 취소 컨트롤을 추가했습니다.

  • 시각적 다단계 배치 파이프라인 빌더: 매개변수 변수 보간(${steps[0].result.id}) 및 노드별 내결함성(POST /v1/tools/batch_call)을 갖춘 도구 연결용 대화형 모달 파이프라인 편집기를 추가했습니다.

  • 실시간 SSE 상태 동기화: Control Deck의 리소스, 프롬프트, 카탈로그 피드를 자동으로 새로 고치도록 /v1/resources/updates SSE 스트림을 연결했습니다.

v0.16.0 — 엔터프라이즈 보안 강화, 감사 암호화 무결성 및 수명주기 복원력

  • API 토큰 인증 및 미들웨어 가드: Bearer/X-Warmplane-Key 인증으로 데몬 엔드포인트를 안전하게 보호하기 위해 --auth-token CLI 매개변수, McpConfig.auth_token 구성 필드, WARMPLANE_AUTH_TOKEN 환경 변수 지원을 추가했습니다.

  • OAuth 프록시 보안 및 비밀 마스킹: Host 검증 및 교차 출처 브라우저 차단으로 OAuth 프록시 리스너를 강화하고, 로그 출력에서 state 및 PKCE code_challenge 비밀을 마스킹했습니다.

  • 암호화 WORM 감사 무결성 및 HMAC 서명: 해시 체인 다이제스트에 전체 20개 영구 메타데이터 필드(work_item_id, client_ip, resource_uri, execution_latency_us, error_message)를 포함했습니다. 외부 암호화 앵커링을 위한 HMAC-SHA256 키 기반 다이제스트 계산과 체크포인트 생성을 추가했습니다.

  • 비밀 정화 및 편집: 기본 제공 민감 키 목록(token, secret, password, key, authorization 등)을 사용한 대소문자 구분 없는 편집 매칭을 강화했습니다. 외부 HITL 웹훅 이벤트가 sanitized_args만 전송하도록 제한하고, CLI 명령에서 출력하기 전에 비밀을 정화했습니다.

  • 슈퍼바이저 및 서킷 브레이커 조정: 슈퍼바이저 재연결 성공 시 서킷 브레이커를 자동으로 리셋하고, HalfOpen 서킷 브레이커 상태에 단일-플라이트 프로브 제한을 추가했으며, 60초 슬라이딩 윈도우 재시작 백오프를 구현했습니다. 카탈로그 조정 중 제거된 항목을 정리하고, 서버 마운트 해제 시 서킷 브레이커를 정리했습니다.

  • 리소스 상한 및 안전 제어: MAX_BATCH_STEPS = 50 및 DEFAULT_BATCH_TIMEOUT_MS = 60_000 실행 예산을 적용했습니다. 와일드카드 JSONPath 출력 확장을 10,000개 항목으로, 검색 결과를 100개로 제한했습니다. 알 수 없는 작업 취소에 대해 POLICY_DENIED(HTTP 403) 및 404를 반환하고, 수식 주입에 대비해 CSV 감사 내보내기를 정화했습니다.

  • CI 품질 게이트 및 종속성 감사: GitHub Actions CI에 네이티브 cargo-audit 스캔을 통합하고, 보고된 모든 보안 권고를 해결하도록 종속성을 업데이트했습니다.

  • CLI 버전 플래그: warmplane 바이너리 파서에서 표준 --version 및 -V 플래그를 활성화했습니다.

v0.15.0 — 내결함성, 부팅 복원력 및 Control Deck 기능 패리티

  • 부팅 복원력 및 저하된 시작: 업스트림 서버(예: Docker, 원격 SSE 엔드포인트, 구성되지 않은 도구)가 실패하거나 시간 초과되면 데몬이 정상적으로 부팅됩니다. 실패한 서버는 데몬을 중단시키거나 다른 정상 업스트림을 차단하지 않고 degraded로 표시됩니다.

  • 프로세스 슈퍼바이저 및 서킷 브레이커: 상태 추적(CLOSED, OPEN, HALF-OPEN)과 지수 백오프 재시작 감독을 갖춘 서버별 및 전역 서킷 브레이커(failureThreshold, cooldownMs, autoRestart, maxRestarts)를 제공합니다.

  • 완전한 Web UI 기능 패리티:

    • 서버 허브: 서버 카드 편집 워크플로(✏️ Edit), 실시간 서킷 브레이커 텔레메트리 배지, 서버 복원력 표시기.

    • 템플릿 마법사: 1클릭 큐레이팅 서버 설정 내부에 직접 포함된 내결함성 및 슈퍼바이저 구성 아코디언.

    • 대화형 플레이그라운드: 컨텍스트 증류 컨트롤(_jsonpath, _limit_lines, _truncate_bytes) 및 실행 지연 시간 측정.

    • 실시간 상태 표시 점(connected 🟢, degraded 🟡, error 🔴)이 있는 반응형 Bento-Grid 개요 카드.

  • CLI 복원력 구성: 헤드리스 서킷 브레이커 관리를 위한 warmplane config resilience set 및 warmplane config resilience show.

v0.14.0 — 에이전트 강화 스위트: 파사드 검색, 컨텍스트 증류 및 다단계 배치

  • MCP 파사드 하이브리드 검색: 키워드, 태그, 서버 ID, 실행 모드 필터를 갖춘 capability_search 도구를 MCP stdio 파사드에 노출했습니다.

  • 컨텍스트 증류 및 잘라내기: LLM 컨텍스트 창을 과도한 출력으로부터 보호하기 위해 /v1/tools/call 및 capability_call에 _jsonpath, _limit_lines, _truncate_bytes 수정자를 추가했습니다.

  • 다단계 체인 배치 호출: $step.field 참조 보간을 통한 단일 왕복 종속 도구 실행을 위해 POST /v1/tools/batch_call 및 capabilities_batch_call을 추가했습니다.

v0.13.0 — HITL(Human-in-the-Loop) 승인 엔진 및 서명된 웹훅

  • 승인 인터셉터: 민감한 기능 호출에 대한 정책 기반 일시 중지(requireApproval).

  • 운영자 REST API: 목록(/v1/approvals), 조회, 수정된 인수로 승인(/v1/approvals/:id/approve) 또는 거부(/v1/approvals/:id/reject)를 위한 엔드포인트를 제공합니다.

  • 서명된 HMAC 웹훅: 승인 수명 주기 이벤트에 대한 SHA-256 HMAC 서명 헤더가 포함된 실시간 웹훅 전송.

  • 구성 가능한 TTL 만료: 구조화된 취소 봉투를 반환하는 자동 타임아웃 만료(approvalTimeoutSecs).

v0.12.0 — 암호화 WORM 감사 로그 및 SIEM 스트리밍

  • 도구 실행 및 HITL 결정 이벤트에 대한 추가 전용 선형 SHA-256 해시 체이닝.

  • 감사 검증 및 내보내기 엔드포인트(/v1/audit/...), Splunk HEC 및 일반 웹훅 수집.

v0.11.0 — Control Deck 웹 UI 및 동적 업스트림 핫 리로드

  • Control Deck 웹 UI: /ui 및 /에 임베디드된 의존성 없는 웹 대시보드로, 실시간 텔레메트리, 서버 관리자, 대화형 도구 플레이그라운드, 정책/마스킹(redaction) 관리자, 별칭 레지스트리를 제공합니다.

  • 무중단 동적 업스트림 마운팅: 데몬 프로세스를 재시작하지 않고 REST/UI/CLI를 통해 stdio, HTTP, OAuth2 업스트림 워커를 동적으로 마운트 및 언마운트합니다.

  • 동적 카탈로그 및 ETag: 자동 SHA256 ETag 재계산과 서버 변경 시 SSE 리소스 알림을 포함하는 동시성 안전 상태 관리.

  • 명시적 설정 핫 리로드: mcp_servers.json의 수동 편집에 맞게 인메모리 워커를 깔끔하게 조정하는 warmplane reload CLI 명령과 POST /v1/config/reload 엔드포인트를 추가했습니다.

v0.10.0 — CLI 설정 관리 및 생태계 임포터

  • 대화형 inquire 마법사와 플래그 기반 헤드리스 자동화를 갖춘 warmplane server(add, remove, list, get, test) 명령을 추가했습니다.

  • 안전하고 트랜잭션 방식의 설정 변경을 위해 warmplane config(init, show, import, alias, policy)를 추가했습니다.

  • Claude Desktop, Cursor, Zed 설정에서 자동 검색 및 가져오기를 추가했습니다.

  • JSON 손상을 방지하는 원자적 설정 파일 쓰기(fs::rename)를 추가했습니다.

v0.9.0 — MCP 2026-07-28 스펙 준수, MRTR 및 구독

  • 공식 MCP Rust SDK rmcp 3.1.2 및 reqwest 0.13으로 업그레이드했습니다.

  • "2025-11-25"에 대한 하위 호환성을 유지하면서 기본 프로토콜 버전을 "2026-07-28"로 설정했습니다.

  • HTTP REST, stdio 파사드, 업스트림 워커 전반에 다중 왕복 요청(MRTR) 지원(input_responses 및 request_state)을 추가했습니다.

  • 캐시 힌트(ttl_ms: 300000, cache_scope: "public")와 카탈로그 목록의 결정적 알파벳순 정렬을 추가했습니다.

  • 실시간 알림을 위해 stdio 파사드에 subscriptions_listen 도구를 추가하고 /v1/resources/updates SSE 스트림을 추가했습니다.

  • OAuth 2.0 흐름에 대해 RFC 9207 / SEP-2468 iss 콜백 검증을 확인했습니다.

v0.8.0 — 의미론적 벡터 임베딩 및 FastEmbed ONNX 파이프라인

  • 선택적 --features semantic-search에서 조밀 코사인 벡터 유사도를 갖춘 FastEmbed ONNX 임베딩 파이프라인을 통합했습니다.

  • BM25 키워드 매칭과 조밀 벡터 검색을 결합한 하이브리드 상호 순위 융합.

v0.7.0 — 실용적 Rust 현대화 및 빌더 패턴

Microsoft의 Pragmatic Rust Guidelines(AGENTS.md)를 전면 채택했습니다. 핵심 상태(AppStateBuilder), 검색 필터(SearchFilterBuilder), 요청 컨텍스트(RequestContextBuilder)에 Builder Pattern(M-INIT-BUILDER)을 구현했습니다. 오류 안전성(M-PANIC-IS-STOP), 구조화 로깅(M-LOG-STRUCTURED), 표준 문서화(M-CANONICAL-DOCS), 유연한 트레이트 상호 운용(M-IMPL-ASREF)을 강화했습니다.

v0.6.0 — 멱등성, 취소 및 재시도 메타데이터

동시 도구 호출을 중복 제거하려면 Idempotency-Key / X-Idempotency-Key를 전달하세요. 취소 엔드포인트 또는 CLI를 통해 진행 중인 요청을 중단할 수 있습니다. 이제 모든 응답 봉투에는 오케스트레이터를 인식하는 재시도 로직을 위한 구조화된 "retry" 메타데이터(classification + state)가 포함됩니다.

v0.5.0 — 요청 컨텍스트 및 상관관계

구조화된 RequestContext(operation_id, work_item_id, actor_id, grant_id)가 모든 실행 봉투와 추적 스팬에 전달됩니다. HTTP 헤더 폴백(X-Request-ID, X-Operation-ID, X-Actor-ID, X-Grant-ID).

v0.4.0 — 카탈로그 버전 관리 및 캐시 검증

SHA-256 카탈로그 버전. 모든 카탈로그 읽기에 ETag 헤더, 304 Not Modified를 반환하는 If-None-Match 조건부 요청. 커서 기반 페이지네이션이 있는 GET /v1/catalog/events 변경 피드.

v0.3.0 — 하이브리드 검색

BM25 점수화, 선택적 FastEmbed 벡터 임베딩, 태그/서버 ID 필터, 순위가 매겨진 결과를 제공하는 POST /v1/capabilities/search. BM25 점수화, 선택적 FastEmbed 벡터 임베딩, 태그/서버 ID 필터, 순위가 매겨진 결과를 제공하는 POST /v1/capabilities/search.


문서

문서

설명

docs/USER-GUIDE.md

전체 사용 가이드: 설정, 모드, 모든 CLI 명령, 인증, 정책

docs/PERFORMANCE.md

벤치마크 방법론, 지연 시간 백분위수, 프로파일링 결과

docs/openapi.yaml

OpenAPI 3.1 스펙

docs/config.schema.json

mcp_servers.json용 JSON Schema

docs/OBSERVABILITY.md

구조화 로그, OTLP 설정, 추적 상관관계

docs/INSTALL.md

빌드 변형, 배포 참고 사항

docs/DEPLOYMENT.md

프로덕션 배포 런북

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables unified access to multiple MCP backend servers through one local daemon, with curated per-client tool profiles, allow/deny policies, audit logging, and drift protection.
    32 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Aggregates many MCP servers behind one local endpoint with namespaced tools, profiles, policy, budgets, audit logs, and a dashboard over stdio or HTTP.
    32 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables connecting to and managing multiple backend MCP resource servers while routing tool and resource requests to the appropriate server and exposing their combined capabilities through a unified SSE, Streamable HTTP, or Stdio interface.
    105 npm
    MIT