Skip to main content
Glama
yorikhu
by yorikhu

Phloem

Phloem is an enterprise-grade, self-hosted knowledge base platform built on RAGFlow. It wraps the engine with a typed Node.js API gateway and MCP server for seamless Agent integration.

Phloem (韧皮部) — the vascular tissue that transports nutrients through a plant. Knowledge should flow the same way.

Why Phloem

  • Self-hosted — your documents, your infrastructure, your control. No data leaves your environment.

  • Agent-ready — expose your knowledge base via REST API or MCP server, so AI agents get grounded, retrieval-augmented answers.

  • Typed end-to-end — one OpenAPI contract drives gateway routes, client SDK, and mock layers. Fewer integration surprises.

  • Swappable backend — an adapter layer isolates RAGFlow; swap or upgrade the engine without touching business code.

  • Extensible — a registry of extension points (middleware, routes, MCP tools, web modules) designed for plugin-style customization without forking.

Related MCP server: Qurio MCP Server

Architecture

┌────────────┐   REST    ┌─────────────┐            ┌──────────────┐
│  Web UI    │──────────▶│   Gateway   │──adapter──▶│   RAGFlow    │
│  (Next.js) │           │  (NestJS)   │            │  (submodule) │
└────────────┘           └──────┬──────┘            └──────────────┘
                                │
                         ┌──────┴──────┐
                         │ MCP Server  │  ◀── Claude Desktop, Cursor, custom agents
                         └─────────────┘

Packages

Package

Description

@phloem/shared

Types, Zod schemas, API contracts

@phloem/gateway

NestJS (Fastify) API gateway with adapter layer

@phloem/mcp

MCP server exposing knowledge tools

@phloem/web

Next.js 15 App Router console, static export

@phloem/eslint-config

Shared ESLint flat config

Getting Started

Prerequisites

  • Node.js ≥ 22

  • pnpm ≥ 9

  • Docker (for RAGFlow backend)

Install

git clone --recurse-submodules https://github.com/phytul/phloem.git
cd phloem
pnpm install
cp deploy/docker/.env.example deploy/docker/.env

Run (dev)

# Gateway
pnpm --filter @phloem/gateway dev

# Web console (Next.js dev server, port 5273)
pnpm --filter @phloem/web dev

Run (with RAGFlow)

# Build and start RAGFlow (Lite profile, Infinity engine)
docker compose -f deploy/docker/docker-compose.yml -f deploy/docker/docker-compose.lite.yml up -d

pnpm --filter @phloem/gateway dev
pnpm --filter @phloem/web dev

Verify

curl http://localhost:3000/healthz

API

The REST contract is the single source of truth: openapi.yaml.

Core resources:

  • POST /v1/retrieval — hybrid retrieval across datasets

  • GET/POST /v1/datasets — knowledge base management

  • POST /v1/datasets/{id}/documents — document upload

  • GET /healthz — liveness probe

MCP Tools

Tool

Description

retrieve_knowledge

Hybrid retrieval across knowledge bases

list_datasets

List available knowledge bases

Development

pnpm run build        # build all packages
pnpm run typecheck    # strict TS check across the monorepo
pnpm run lint         # ESLint + Prettier

Commits follow Conventional Commits. Hooks (lint-staged + commitlint) enforce this automatically.

License

Apache-2.0

  • RAGFlow — the underlying engine

  • MCP — Model Context Protocol

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI agents to query a local knowledge graph built from document collections using hybrid search (BM25 + vector fusion) and entity-relationship extraction. Supports privacy-first, offline operation with tools for semantic search, entity graph exploration, and corpus statistics.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI coding assistants to search and retrieve information from a locally ingested knowledge base using hybrid search, grounded in user-curated documentation.
    17
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes knowledge base retrieval tools for AI agents via the Model Context Protocol, enabling hybrid search across datasets and dataset listing.
    3 npm
    Apache 2.0