Production Plan Variance MCP Server
Production Plan Variance MCP Server
一个轻量级 MCP 服务器,将 Production Plan Variance & Issue Tracking(生产计划差异与问题跟踪)仪表盘(erp.peopledesk.io/production-management/mes/ProductionPlanVariance)以五个只读工具的形式暴露出来,直接由 DWH 数据库提供支持:
工具 | 对应内容 |
| 四个磁贴:计划行 / 正常 / 已标记差异 / 缺失问题 |
| 行网格(计划代码、物料、工厂、数量、差异、原因、状态) |
| 按工厂划分的"差异问题"原因配置 + 升级邮件 |
| 工厂筛选下拉框 |
| 车间筛选下拉框 |
它查询以下 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 文件将同一服务器转换为 Vercel serverless 函数,暴露在 /mcp 路径下。
将此文件夹推送到 GitHub 仓库(或直接在该文件夹中运行)。
安装一次 CLI:
npm i -g vercel在
production-variance-mcp/目录内,登录您自己的 Vercel 账户并部署:vercel login vercel --prod在 Vercel 仪表盘中 → 您的项目 → 设置 → 环境变量,添加
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 知识。
备注 / 需要您确认的事项
仪表盘的**"机器"**列(例如"Aromatic Unit Line - 01")在我拉取的架构中未在
tblProductionPlanVarianceIssueArc上找到——它很可能是通过您环境中的生产线/工作中心表解析的。list_plan_variance的查询尚未包含它;确认源表(候选:tblProductionLineArc、tblWorkCenterArc)后,在src/queries.js中添加相应的 JOIN。get_variance_summary的"缺失问题"逻辑假定其含义为"已标记差异但尚未记录原因/状态"——请根据应用的实际业务逻辑确认,如有不同请调整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