Production Plan Variance MCP Server
MCP-сервер производственного плана и отклонений
Небольшой MCP-сервер, который предоставляет панель «Производственный план: отклонения и отслеживание проблем» (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.Все запросы — это фиксированные параметризованные SELECT, определённые в
src/queries.js— нет инструмента для произвольного SQL, поэтому никто, использующий этот MCP-сервер, не может запрашивать данные вне самой панели или выполнять записи.
Related MCP server: mcp-server
⚠️ Перед развёртыванием: подтвердите права доступа к БД
При создании я проверил схему (таблицы/колонки) с помощью вашего
подключения mssql-test-server, но каждый реальный SELECT на уровне строк
против tblProductionPlanVarianceIssueArc / tblPlantArc и т. д. завершался ошибкой —
интроспекция схемы работала, запросы данных — нет. Это почти наверняка
пробел в правах доступа для этого конкретного SQL-логина (mcp_user), а не проблема
с этими запросами. Перед запуском:
Создайте (или переиспользуйте) логин SQL Server с правами только на
SELECTдля таблиц DWH, перечисленных выше.Проверьте вручную, например:
SELECT TOP 5 * FROM dbo.tblProductionPlanVarianceIssueArc;Только затем укажите
DB_USER/DB_PASSWORDв.envдля этого логина.
Развёртывание
Вариант 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, доступную по адресу /mcp.
Загрузите эту папку в репозиторий GitHub (или запустите прямо из папки).
Установите CLI один раз:
npm i -g vercelИз папки
production-variance-mcp/войдите в свой собственный аккаунт Vercel и разверните:vercel login vercel --prodВ панели Vercel → ваш проект → 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, если после развёртывания соединение истекает по таймауту. Также добавьте
какую-либо аутентификацию перед /mcp (см. примечание ниже), прежде чем этот URL станет
публичным — сейчас любой, у кого есть ссылка, может вызывать эти инструменты только для чтения.
Распространение
Отредактируйте mcp-config.json, заменив YOUR-HOSTED-DOMAIN на ваш реальный
домен, затем поделитесь этим одним файлом. Любой добавляет его в свой MCP-клиент и
сразу получает доступ к данным этой панели в режиме чата только для чтения — без
установки, без учётных данных, без знания SQL.
Примечания / что стоит перепроверить у себя
Колонка «Machine» на панели (например, «Aromatic Unit Line - 01») не была найдена в
tblProductionPlanVarianceIssueArcв схеме, которую я получил — вероятно, она разрешается через таблицу производственной линии/рабочего центра в вашем окружении. Запросlist_plan_varianceпока её не включает; добавьте соответствующий JOIN вsrc/queries.js, когда подтвердите исходную таблицу (кандидаты:tblProductionLineArc,tblWorkCenterArc).Логика «Issues Missing» в
get_variance_summaryпредполагает, что это означает «отмеченное отклонение без записанной причины/статуса» — сверьте это с фактической бизнес-логикой приложения и при необходимости скорректируйтеQUERY_SUMMARY.Добавьте аутентификацию (API-ключ / OAuth) перед
/mcp, прежде чем открывать доступ за пределы вашей внутренней сети — в этой сборке по умолчанию её нет.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only supply-chain decision support: forecasting, reorder policies, ABC-XYZ, data quality.
- RumboOAuthcom.rumboar
Securely query and analyze business data, dashboards, projections, alerts, and knowledge.
Live KPIs and shop data for Tekmetric and Shop-Ware. 29 read-only tools.
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Related MCP Servers
- FlicenseAqualityCmaintenanceProvides read-only SQL Server access via MCP tools and a chat interface for natural-language database queries.4-
- FlicenseNot gradedqualityCmaintenanceProvides 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.-
- FlicenseNot gradedqualityCmaintenanceProvides 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.-
- AlicenseNot gradedqualityBmaintenanceRead-only MCP server exposing Flowsery analytics and AI-detected issues via 17 GET tools, enabling natural language queries in compatible clients.MIT