Skip to main content
Glama
sauravakij

Production Plan Variance MCP Server

by sauravakij

MCP-сервер производственного плана и отклонений

Небольшой MCP-сервер, который предоставляет панель «Производственный план: отклонения и отслеживание проблем» (erp.peopledesk.io/production-management/mes/ProductionPlanVariance) в виде пяти инструментов только для чтения, напрямую работающих с базой данных DWH:

Инструмент

Соответствие

get_variance_summary

Четыре плитки: строки плана / в соответствии с планом / отмечены отклонения / отсутствуют проблемы

list_plan_variance

Таблица строк (код плана, позиция, предприятие, количество, разница, причина, статус)

list_variance_reasons

Конфигурация причин «Проблема для разницы» + эскалация по электронной почте, по предприятию

list_plants

Выпадающий список фильтра по предприятию

list_shop_floors

Выпадающий список фильтра по производственному участку

Он запрашивает следующие таблицы 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), а не проблема с этими запросами. Перед запуском:

  1. Создайте (или переиспользуйте) логин SQL Server с правами только на SELECT для таблиц DWH, перечисленных выше.

  2. Проверьте вручную, например:

    SELECT TOP 5 * FROM dbo.tblProductionPlanVarianceIssueArc;
  3. Только затем укажите 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.

  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, если после развёртывания соединение истекает по таймауту. Также добавьте какую-либо аутентификацию перед /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, прежде чем открывать доступ за пределы вашей внутренней сети — в этой сборке по умолчанию её нет.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Provides read-only SQL Server access via MCP tools and a chat interface for natural-language database queries.
    4
    -
  • F
    license
    Not graded
    quality
    C
    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
    B
    maintenance
    Read-only MCP server exposing Flowsery analytics and AI-detected issues via 17 GET tools, enabling natural language queries in compatible clients.
    MIT