Skip to content

rajeevramani/flowplane

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

198 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flowplane

CI Release License: MIT Rust

Flowplane — an API gateway built for humans and AI agents.

Publish your APIs once. Get governance (auth, rate limits, audit), a REST proxy, schema learning that infers OpenAPI from live traffic, and an MCP server so LLMs can call your APIs as tools. Drive it from a CLI, REST API, web UI, or 70 MCP tools.

Quick Start

git clone https://github.com/rajeevramani/flowplane.git
cd flowplane && make install     # builds + installs flowplane and flowplane-agent
cd ~                              # init works from any directory
flowplane init                    # full demo stack: PG + CP + Envoy + httpbin
flowplane expose http://httpbin:80 --name demo
curl http://localhost:10001/get

flowplane init brings up the full demo stack — control plane, gateway data plane, and a test backend — in containers. Images are pulled from GHCR (no local source build required). flowplane expose registers an upstream and provisions everything required to route to it — cluster, route config, listener — in one command. The new endpoint is reachable on localhost:10001.

{
  "headers": {
    "X-Envoy-Expected-Rq-Timeout-Ms": "15000",
    "...": "..."
  },
  "url": "http://localhost:10001/get"
}
flowplane status    # 1 listener, 1 cluster, 0 filters
flowplane list      # demo → port 10001
flowplane down      # stop everything

Two binaries: flowplane (control plane + CLI) and flowplane-agent (sidecar that watches the gateway data plane for warming failures and reports them back). make install is a wrapper around two cargo install --path invocations — required because cargo install doesn't follow workspace default-members.

Breaking change (v0.2.3+): FLOWPLANE_DEV_DISABLE_AGENT is no longer honored — the agent is required and always spawns. Remove the var from your shell rc or CI environment if set.

Architecture

graph LR
    Caller[Developer / Service / AI Agent] -->|REST API / MCP| FP[Flowplane]
    FP -->|gRPC xDS| Envoy[Envoy data plane]
    Envoy -->|HTTP| US[Upstream Services]
Loading

Flowplane stores gateway configuration (clusters, routes, listeners, filters) in PostgreSQL and pushes it to the data plane over xDS. The data plane is Envoy.

Key Features

  • MCP front door — 70 MCP tools spanning gateway management (cp_*) and ops/diagnostics (ops_*) so AI agents can deploy, configure, and troubleshoot end-to-end. An MCP HTTP filter inspects and validates JSON-RPC 2.0 and SSE traffic to upstream MCP servers.
  • API schema learning — capture live traffic, infer JSON schemas with confidence scoring, export as OpenAPI 3.1 with enum detection, path normalization, and domain-model deduplication.
  • 10 HTTP filters — JWT auth, OAuth2, CORS, local rate limit, header mutation, ext authz, RBAC, response compression, custom response, and MCP traffic validation. Per-route overrides supported. (An 11th type, external/distributed rate_limit, is reserved for a future release.)
  • Multi-tenant — org / team hierarchy with Zitadel-backed OIDC + RBAC. A single enforcement point governs REST, MCP control plane, and MCP gateway calls.
  • xDS data plane — ADS-based xDS multiplexing LDS, RDS, CDS, EDS, and SDS over a single gRPC stream. Access Log Service and ExtProc are exposed as separate gRPC services.
  • REST API + Web UI — JSON API and SvelteKit dashboard on port 8080.

Documentation

Topic Link
Full walkthrough Getting Started
Production deployment Deployment
Learn APIs from traffic Learning Quickstart
CLI commands CLI Reference
Filter configuration Filters
MCP tools MCP Integration

Demo (prod-mode local evaluation)

make demo HTTPBIN=1           # CP + Envoy + agent + httpbin (one button)
make seed                     # create demo org / users / teams
flowplane auth login          # OIDC login

make demo is an evaluation harness, not a production deployment template. See docs/production.md for the production operator contract and Quickstart for details.

Claude Code Skills

This repo ships with Claude Code skills in .claude/skills/ that give AI assistants deep context about the codebase. They load automatically when Claude Code detects a matching task.

For operating Flowplane (CLI use, MCP-driven configuration, ops):

Skill Covers
flowplane-api 70 MCP tools, learning sessions, filter attach/detach, routing workflows
flowplane-cli CLI command reference with flags, syntax, and examples
flowplane-ops Boot recipes, diagnostic MCP tools, troubleshooting playbooks
flowplane-secrets SDS secrets, encryption keys, filter integration

For developing on Flowplane:

Skill Covers
flowplane-dev Architecture, domain model, auth modes, boot lifecycle, filter system
flowplane-testing Test layers, E2E framework, anti-patterns
flowplane-skill-maintainer Keep skills in sync with the code as it evolves

Skills are tracked in git so they stay in sync with the code. The .claude/ directory is otherwise gitignored (settings, memory, and tasks remain private).

Requirements

  • Docker or Podman
  • Rust 1.92+

License

MIT — see LICENSE.