kiln
An MCP server that provides coding agents with fully-contextualized work orders from a knowledge graph, enabling them to retrieve and update work order status.
README
Kiln
An AI-native SDLC tool that keeps a knowledge graph linking
intent → requirement → blueprint → work order, and hands coding agents
fully-contextualized work orders over MCP. A coding agent calls get_work_order
and receives the whole chain — plus lineage up to root intent — in a single call,
then reports status back to the same store the human works in.
The system is a set of TypeScript packages (core, agents, mcp-server, cli)
plus a Tauri + React desktop app (apps/desktop). See docs/ for the
design (PRD, blueprint, CONNECTING, authoring-methodology).
Requirements
- Node 22.5+ (uses the built-in
node:sqlite). On Node 22.x this needs the--experimental-sqliteflag; the test runner and package scripts set it for you. On Node 24+node:sqliteis stable and the flag is unnecessary. - pnpm.
Quickstart
pnpm install
pnpm -r build
pnpm -r test
# Seed a demo chain (artifact → requirement → blueprint → ready work order)
# The store defaults to ~/.kiln/kiln.db everywhere (CLI, MCP server, desktop app);
# set KILN_DB_PATH to an absolute path to use a different file.
pnpm -C packages/mcp-server seed
# Serve it to coding agents over MCP
KILN_MCP_TOKEN=choose-a-secret pnpm -C packages/mcp-server start
Then register with Claude Code and run the loop — full steps in
docs/CONNECTING.md.
Layout
packages/core/src/
├─ domain/ types.ts · edits.ts (EditOp/Suggestion) · schemas.ts (Zod input)
├─ db/ connect.ts (node:sqlite, lazy-loaded; pragmas, schema DDL)
├─ store/ store.ts (interface) · sqlite-store.ts (impl) · *.test.ts
├─ graph/ context.ts (context assembly) · tree.ts (featureTree) · *.test.ts
├─ edits/ apply.ts (applyOp/applySuggestion + revisions) · *.test.ts
├─ transitions.ts work-order status lifecycle (shared by MCP bridge + app)
└─ errors.ts
packages/mcp-server/src/
├─ index.ts CLI entry (env config, HTTP listener)
├─ server.ts streamable-HTTP wiring + bearer-auth gate
├─ tools.ts the three MCP tools over Store
├─ auth.ts bearer-token check (constant-time)
├─ seed.ts demo-chain seeder (also a CLI)
└─ *.test.ts
The one thing this proves
A coding agent can call get_work_order and receive the whole
work_order --implements--> blueprint --details--> requirement --references--> artifact
chain in a single MCP call, then report status back to the same store the human works in.
Missing links yield typed partials, never throws.
Design notes
- Everything goes through
Store. No consumer imports the driver or writes SQL — all dialect-specific SQL (FTS5, the recursive CTE) is confined toSqliteStore. That's what keeps a futurePostgresStore(for the hosted tier) a drop-in. The MCP server obeys the same rule: it only sees theStoreinterface. - Two processes, one file. The app and the MCP server share the SQLite file; WAL +
busy_timeoutmake that safe. - Driver choice. The scaffold uses Node's built-in
node:sqlite(zero native build).better-sqlite3is a drop-in alternative — same API shape — if you prefer no experimental flag; the swap is confined todb/connect.ts. - Status lifecycle is enforced server-side:
draft→ready→in_progress→done, plusany→cancelled. Invalid transitions return a tool error listing the allowed next states. - IDs are
crypto.randomUUID(). Swap for ULID if you want lexicographically sortable ids. - Structured edits are modeled (
EditOp/Suggestion) and applied viaapplySuggestion(core/src/edits): accepted ops apply atomically and append a revision. Anchors must match exactly once; an empty insert anchor appends.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.