Skip to main content
Glama
Production Plan Variance MCP Server

Production Plan Variance MCP Server

by sauravakij

Production Plan Variance MCP Server

DWH 데이터베이스를 직접 기반으로 하여 Production Plan Variance & Issue Tracking 대시보드(erp.peopledesk.io/production-management/mes/ProductionPlanVariance)를 다섯 개의 읽기 전용 도구로 제공하는 작은 MCP 서버입니다:

도구

반영 대상

get_variance_summary

네 개의 타일: Plan Lines / On Target / Variance Flagged / Issues Missing

list_plan_variance

행 그리드(계획 코드, 품목, 공장, 수량, 차이, 사유, 상태)

list_variance_reasons

공장별 "Issue for Difference" 사유 설정 + 에스컬레이션 이메일

list_plants

공장 필터 드롭다운

list_shop_floors

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 서버를 사용하는 누구도 대시보드 자체 데이터 외부를 조회하거나 쓰기 작업을 실행할 수 없습니다.

Related MCP server: mcp-server

⚠️ 배포 전: 데이터베이스 권한 확인

이것을 구축하는 동안 mssql-test-server 연결을 사용하여 스키마(테이블/열)를 검증했습니다. 그러나 tblProductionPlanVarianceIssueArc / tblPlantArc 등에 대한 실제 행 수준 SELECT는 모두 실패했습니다. 스키마 내부 조회는 작동했지만 데이터 쿼리는 작동하지 않았습니다. 이것은 거의 확실히 해당 특정 SQL 로그인(mcp_user)의 권한 부족 문제이며, 이 쿼리들의 문제가 아닙니다. 라이브 전환 전에:

  1. 위에 나열된 DWH 테이블에 대해 SELECT 권한만 있는 SQL Server 로그인을 생성(또는 재사용)합니다.

  2. 수동으로 테스트합니다. 예:

    SELECT TOP 5 * FROM dbo.tblProductionPlanVarianceIssueArc;
  3. 그런 다음에만 .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 서버리스 함수로 변환합니다.

  1. 이 폴더를 GitHub 저장소에 푸시합니다(또는 폴더에서 직접 실행합니다).

  2. CLI를 한 번 설치합니다: npm i -g vercel

  3. production-variance-mcp/ 폴더 안에서 자신의 Vercel 계정으로 로그인하고 배포합니다:

    vercel login
    vercel --prod
  4. Vercel 대시보드 → 프로젝트 → Settings → Environment Variables에서 DB_SERVER, DB_PORT, DB_DATABASE, DB_USER, DB_PASSWORD, DB_ENCRYPT, DB_TRUST_CERT를 추가합니다(.env.example과 동일한 값). 그런 다음 함수가 이를 적용하도록 다시 배포합니다.

  5. 이제 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)을 추가하세요. 이 빌드에는 기본적으로 인증이 없습니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides read-only SQL Server access via MCP tools and a chat interface for natural-language database queries.
    4
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only operational tools (sales summaries, orders, top customers) over a multi-tenant dataset, with tenant isolation enforced server-side so no tenant parameter appears in the tool schema.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides remote read-only access to a Data Warehouse SQL Server, enabling users to query manufacturing OEE data, SBU lists, and run ad-hoc SELECT queries.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server exposing Flowsery analytics and AI-detected issues via 17 GET tools, enabling natural language queries in compatible clients.
    MIT