Keystone MCP Server

Keystone MCP Server

Enables construction professionals to query project documents with conflict-aware RAG, detect contradictions, and trace change impacts through any MCP client.

Category
访问服务器

README

<div align="center">

🏛️ Keystone

AEC Project & Document Intelligence Platform

Construction documents constantly contradict each other — one spec says 30 MPa concrete, a drawing says 25. Keystone is the lighttable that catches it. It reads across every spec, drawing, and RFI to surface contradictions other tools hide, and maps the blast radius of every revision before it reaches the site.

TypeScript · Next.js 14 · tRPC · Prisma · PostgreSQL + pgvector · Tailwind · Docker · MCP

</div>

<div align="center">

Impact graph — blast radius

<sub>The impact graph: revise a document and the blast radius propagates outward — affected drawings and RFIs in amber, the contradiction in red.</sub>

Conflict-aware answer

<sub>Ask across the project and Keystone returns the contradiction (30 MPa vs 25 MPa) with both sources — not a single confident answer.</sub>

</div>


The idea

Most AEC document tools are passive file cabinets with a search box. On a real project, dozens of people work off the same documents, and two things constantly go wrong:

  1. Documents contradict each other and nobody notices until it's expensive.
  2. A revision quietly makes other documents stale — and no one gets told.

Generic RAG makes #1 worse: it returns one confident answer from the top-matching chunk, even when another document disagrees. Keystone does two things differently.

1. Conflict-aware RAG

Ask "what concrete strength is required?" and instead of one answer, Keystone retrieves the evidence, clusters the claims, and — if sources disagree — returns the contradiction:

⚠️ Conflict — 03 30 00 (Rev C) says 30 MPa, S-201 (Rev A) says 25 MPa.

In construction, the disagreement is the answer worth knowing.

2. Change-impact graph ("blast radius")

Every document references others (S-201 → "per Spec 03 30 00"). Keystone extracts those references into a dependency graph. Revise one document and it traces the blast radius — every drawing and RFI downstream that just became suspect — and animates it outward from the epicentre.

Both are tractable because AEC documents use rigid identifiers (CSI MasterFormat codes like 03 30 00, sheet numbers like S-201), so reference extraction is deterministic, not guesswork.


Stack

Layer Tech
Frontend Next.js 14 (App Router), React 18, TypeScript, Tailwind CSS
API tRPC (end-to-end typesafe), Zod
Data Prisma ORM, PostgreSQL 16 + pgvector
Auth NextAuth (credentials + JWT), bcrypt, multi-tenant RBAC
AI RAG over pgvector embeddings; conflict-aware retrieval; MCP server
DevOps Docker, GitHub Actions CI, DigitalOcean App Platform

Runs with zero API keys — a deterministic local embedder backs the AI layer out of the box. Set OPENAI_API_KEY (or any OpenAI-compatible base URL) to swap in a real provider.


Quick start

npm install
cp .env.example .env          # defaults work for local Docker
npm run db:up                 # Postgres + pgvector in Docker
npm run db:migrate            # create schema
npm run db:seed               # demo project with a planted conflict
npm run dev                   # http://localhost:3000

Sign in with the seeded account: demo@keystone.dev / password123, then open Riverside Hospital — Phase 2.


Features

  • Multi-tenant workspaces — organizations, members, role-based access (Owner / Architect / Engineer / Contractor / Client)
  • Documents — drawings, specs, and RFIs; chunked, embedded into pgvector, cross-referenced into a graph
  • Impact graph — interactive blast-radius visualization; click any document to trace what it affects
  • Conflict detection — flags graph-adjacent documents that assert different values for the same unit
  • Ask your project — conflict-aware Q&A with citations
  • MCP server — exposes project tools (ask_project, search_documents, list_conflicts, …) to any MCP client

MCP

npm run mcp        # stdio server for Claude Desktop / MCP clients
npm run mcp:test   # in-process smoke test

See mcp/README.md for the Claude Desktop config.


Deploy

  • CI — .github/workflows/ci.yml runs typecheck, lint, and build on every push.
  • Docker — docker build -t keystone . produces a standalone production image.
  • DigitalOcean — doctl apps create --spec .do/app.yaml provisions the web service + managed Postgres and runs prisma migrate deploy as a pre-deploy job. (Enable the vector extension on the managed database.)

Project structure

src/
  app/                 # routes: landing, auth, /app dashboard, /app/projects/[id]
  components/          # providers, auth shell, workspace (impact graph, ask, conflicts)
  server/
    routers/           # tRPC routers: auth, projects, documents, conflicts, ai
    services/          # ingest, conflict detection, conflict-aware ask
    lib/               # access control (RBAC)
  lib/                 # db, ai (embeddings + LLM), chunking, reference extraction, claims
prisma/                # schema + seed
mcp/                   # Model Context Protocol server
design/                # the "Lighttable" interactive prototype

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选