Production Plan Variance MCP Server
Production Plan Variance MCP Server
DWH 데이터베이스를 직접 기반으로 하여 Production Plan Variance & Issue Tracking 대시보드(erp.peopledesk.io/production-management/mes/ProductionPlanVariance)를 다섯 개의 읽기 전용 도구로 제공하는 작은 MCP 서버입니다:
도구 | 반영 대상 |
| 네 개의 타일: Plan Lines / On Target / Variance Flagged / Issues Missing |
| 행 그리드(계획 코드, 품목, 공장, 수량, 차이, 사유, 상태) |
| 공장별 "Issue for Difference" 사유 설정 + 에스컬레이션 이메일 |
| 공장 필터 드롭다운 |
| Shop Floor 필터 드롭다운 |
이 서버는 다음 DWH 테이블을 조회합니다(라이브 스키마 기준으로 검증됨):
tblProductionPlanVarianceIssueArc, tblProductionPlanVarianceReasonArc,
tblPlantArc, tblShopFloorArc.
왜 이런 구조인가
JSON 파일만으로 누구나 사용할 수 있고, 누구도 데이터베이스 자격 증명을 입력하지 않아도 되는 것을 원하셨습니다. 그래서 설계는 다음과 같습니다:
사용자가 호스팅하는 단일 서버가 데이터베이스 자격 증명을 자체 환경 변수에 보관합니다(
.env, 커밋되지 않으며 클라이언트로 전송되지 않음).그 외 모든 사용자는
mcp-config.json을 자신의 MCP 클라이언트(Claude Desktop, Claude Code 등)에 넣기만 하면 됩니다. 이 파일에는 URL만 있으며 비밀 정보는 없습니다. SQL Server와 통신하는 것은 서버뿐입니다.모든 쿼리는
src/queries.js에 정의된 고정된 매개변수화 SELECT입니다. 자유 형식 SQL 도구는 노출되지 않으므로, 이 MCP 서버를 사용하는 누구도 대시보드 자체 데이터 외부를 조회하거나 쓰기 작업을 실행할 수 없습니다.
⚠️ 배포 전: 데이터베이스 권한 확인
이것을 구축하는 동안 mssql-test-server 연결을 사용하여 스키마(테이블/열)를 검증했습니다. 그러나 tblProductionPlanVarianceIssueArc / tblPlantArc 등에 대한 실제 행 수준 SELECT는 모두 실패했습니다. 스키마 내부 조회는 작동했지만 데이터 쿼리는 작동하지 않았습니다. 이것은 거의 확실히 해당 특정 SQL 로그인(mcp_user)의 권한 부족 문제이며, 이 쿼리들의 문제가 아닙니다. 라이브 전환 전에:
위에 나열된 DWH 테이블에 대해
SELECT권한만 있는 SQL Server 로그인을 생성(또는 재사용)합니다.수동으로 테스트합니다. 예:
SELECT TOP 5 * FROM dbo.tblProductionPlanVarianceIssueArc;그런 다음에만
.env의DB_USER/DB_PASSWORD가 해당 로그인을 가리키도록 설정합니다.
배포
옵션 A — 자체 서버(nginx/Caddy를 앞에 둠)
npm install
cp .env.example .env # fill in DB_SERVER / DB_USER / DB_PASSWORD
npm start # listens on :3300, endpoint POST /mcp팀이 접근할 수 있는 도메인의 HTTPS 뒤에 배치합니다. 예: https://mcp.yourcompany.com/mcp.
옵션 B — Vercel(이 저장소에 이미 설정되어 있음)
api/mcp.js + vercel.json 파일은 동일한 서버를 /mcp로 노출되는 Vercel 서버리스 함수로 변환합니다.
이 폴더를 GitHub 저장소에 푸시합니다(또는 폴더에서 직접 실행합니다).
CLI를 한 번 설치합니다:
npm i -g vercelproduction-variance-mcp/폴더 안에서 자신의 Vercel 계정으로 로그인하고 배포합니다:vercel login vercel --prodVercel 대시보드 → 프로젝트 → Settings → Environment Variables에서
DB_SERVER,DB_PORT,DB_DATABASE,DB_USER,DB_PASSWORD,DB_ENCRYPT,DB_TRUST_CERT를 추가합니다(.env.example과 동일한 값). 그런 다음 함수가 이를 적용하도록 다시 배포합니다.이제 MCP 엔드포인트는
https://<your-project>.vercel.app/mcp입니다. 이 URL을mcp-config.json에 넣고 팀에 공유하세요.
참고: SQL Server는 Vercel 네트워크에서 접근 가능해야 합니다(즉, 사무실 IP로만 방화벽이 제한되면 안 됩니다). 배포 후 연결이 시간 초과되면 203.202.241.211을 관리하는 담당자에게 확인하세요. 또한 이 URL이 공개되기 전에 /mcp 앞에 어떤 형태의 인증을 추가하세요(아래 참고 참조). 현재는 링크만 있으면 누구나 이 읽기 전용 도구를 호출할 수 있습니다.
공유
mcp-config.json을 편집하여 YOUR-HOSTED-DOMAIN을 실제 도메인으로 바꾼 다음, 그 파일 하나를 공유하세요. 누구나 이 파일을 자신의 MCP 클라이언트에 추가하면 즉시 이 대시보드 데이터에 대한 읽기 전용 채팅 액세스를 얻을 수 있습니다. 설치도, 자격 증명도, SQL 지식도 필요 없습니다.
참고 사항 / 직접 확인할 사항
대시보드의 "Machine" 열(예: "Aromatic Unit Line - 01")은 제가 가져온 스키마의
tblProductionPlanVarianceIssueArc에서 찾을 수 없었습니다. 아마도 사용자 환경의 생산 라인/작업 센터 테이블을 통해 확인되는 항목일 것입니다.list_plan_variance의 쿼리에는 아직 이 열이 포함되어 있지 않습니다. 소스 테이블을 확인한 후src/queries.js에 적절한 JOIN을 추가하세요(후보:tblProductionLineArc,tblWorkCenterArc).get_variance_summary의 "Issues Missing" 로직은 "아직 사유/상태가 기록되지 않은 플래그 지정 변동"을 의미한다고 가정합니다. 앱의 실제 비즈니스 로직과 대조해 확인하고, 다르다면QUERY_SUMMARY를 조정하세요.내부 네트워크 밖으로 노출하기 전에
/mcp앞에 인증(API 키 / OAuth)을 추가하세요. 이 빌드에는 기본적으로 인증이 없습니다.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read-only NuMetric.work accounting & ERP data: statements, KPIs, reports, invoices, documents.
Read-only MCP server for wafergraph.com's semiconductor & AI supply-chain data: 30 tools, no auth.
Latest 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/sauravakij/AR-PP-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server