kiln

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.

Category
Visit Server

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-sqlite flag; the test runner and package scripts set it for you. On Node 24+ node:sqlite is 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 to SqliteStore. That's what keeps a future PostgresStore (for the hosted tier) a drop-in. The MCP server obeys the same rule: it only sees the Store interface.
  • Two processes, one file. The app and the MCP server share the SQLite file; WAL + busy_timeout make that safe.
  • Driver choice. The scaffold uses Node's built-in node:sqlite (zero native build). better-sqlite3 is a drop-in alternative — same API shape — if you prefer no experimental flag; the swap is confined to db/connect.ts.
  • Status lifecycle is enforced server-side: draft→ready→in_progress→done, plus any→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 via applySuggestion (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

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured