PPAP Review Workbench
PPAP Review Workbench (MCP App)
Deterministic Supplier Quality Engineer review workbench delivered as a genuine MCP server + MCP App UI for Langdock.
This is not a standalone dashboard. Langdock hosts the conversation and agent reasoning; this project stores structured PPAP case state and renders an interactive review UI via MCP Apps (ui://ppap-review/workbench.html).
What this project is
Role | Responsibility |
Langdock Agent | Document intelligence/reasoning: classify, extract, compare, draft preliminary findings |
PPAP MCP Server | Authoritative state + tools ( |
PPAP MCP App | Interactive SQE review UI rendered inside Langdock |
Human SQE | Final decision authority — no autonomous approve/reject |
There are no LLM API calls inside this MCP project.
Architecture
Supplier PPAP Files
|
v
Langdock PPAP Agent
|
| create_ppap_case
v
PPAP MCP Server
|
| open_ppap_workbench
v
ui://ppap-review/workbench.html
|
v
Langdock embedded MCP App
|
| SQE decision
v
set_finding_decision
|
v
MCP Server
|
v
Langdock follow-upLocal development
cd ppap-review-mcp
npm install
npm run build
npm run serveUseful scripts:
npm run dev # watch UI + server
npm run dev:ui # mock browser preview (VITE_MOCK_MODE=true)
npm run typecheck
npm run test
npm run test:smokeDemo case PP-10482 is seeded automatically on server start.
Mock UI preview
npm run dev:uiShows a Mock Development Mode badge and loads the seeded case without an MCP host. Production builds do not enable this by default.
Free hosting (recommended: Render)
Use Render Free Web Service for a public HTTPS MCP URL Langdock can reach.
Go to https://dashboard.render.com and sign up (GitHub login).
New → Web Service
Connect repo:
AdarshRajDS/ppap-review-mcpSettings:
Runtime: Node
Build Command:
npm ci --include=dev && npx vite buildStart Command:
npx tsx server/index.tsInstance type: Free
Health Check Path:
/health
Deploy. Your URL will look like:
https://ppap-review-mcp.onrender.comIn Langdock → Integrations → MCP, enter:
https://ppap-review-mcp.onrender.com/mcpAuth: No Authentication (unless you setMCP_API_KEY)
Notes:
Free tier sleeps after ~15 minutes idle; the first request can take 30–60s to wake.
Netlify is only for static UI preview — do not use the Netlify URL in Langdock.
Public testing / tunnels
For quick local testing without Render, expose the local server with any temporary HTTPS tunnel (ngrok, Cloudflare Tunnel, localtunnel, etc.):
npm run serve
# then tunnel port 3001 → HTTPSExample result:
https://example-public-host/mcpLangdock setup
Deploy/expose the MCP server through HTTPS.
Open Langdock workspace settings.
Go to Integrations.
Add an MCP integration.
Enter:
https://YOUR_HOST/mcpChoose No Authentication for local/demo use, or API Key / Bearer auth when
MCP_API_KEYis set.Test the connection.
Enable these tools:
create_ppap_caseupdate_ppap_caseget_ppap_caseopen_ppap_workbenchset_finding_decisionadd_finding_commentset_review_statusget_review_summary
Add the MCP integration/actions to the PPAP Review Agent.
In the Agent instructions, tell the Agent to:
create/update the PPAP case after analysis
then call
open_ppap_workbenchuse the returned human review state for later supplier communication
Exact connection URL format
https://YOUR_HOST/mcpLocal:
http://localhost:3001/mcpSuggested test phrase
Review this PPAP submission. After analysis, create the PPAP case and open the PPAP Review Workbench for human SQE review.
Demo flow
User: "Review this PPAP submission."
Langdock analyzes documents.
Langdock calls
create_ppap_casewith casePP-10482(or equivalent structured payload).Langdock calls:
{ "caseId": "PP-10482" }via open_ppap_workbench.
The MCP App opens inside Langdock.
SQE opens F-001, compares Drawing Revision C vs PSW Revision B.
SQE selects Supplier Clarification and comments:
"Please submit a PSW matching the current drawing revision."UI calls
set_finding_decisionthrough the MCP Apps bridge (notfetchto localhost).User returns to chat:
"Prepare the supplier clarification email for everything I marked."Langdock reasons over the human-reviewed case and drafts the email.
Security
Set
MCP_API_KEYto requireAuthorization: Bearer <key>on/mcp.Do not expose the API key to the React UI.
Treat all PPAP payloads as confidential business data.
No secrets are returned to the UI.
Docker
docker build -t ppap-review-mcp .
docker run --rm -p 3001:3001 -v ppap-data:/app/data -e PORT=3001 ppap-review-mcpOptional auth:
docker run --rm -p 3001:3001 -e MCP_API_KEY=your-secret ppap-review-mcpEnvironment
See .env.example:
PORT=3001
MCP_API_KEY=
DATA_DIR=./data
NODE_ENV=development
VITE_MOCK_MODE=falseProject layout
ppap-review-mcp/
server/ MCP + Express + persistence + tools
ui/ React MCP App (single-file Vite build)
data/ Local JSON store (server-authoritative)
tests/ Unit + MCP smoke testsLatest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AdarshRajDS/ppap-review-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server