Skip to main content
Glama
Production Plan Variance MCP Server

Production Plan Variance MCP Server

by sauravakij

生産計画差異 MCPサーバー

生産計画差異・課題追跡ダッシュボード(erp.peopledesk.io/production-management/mes/ProductionPlanVariance)を、DWHデータベースに直接接続して5つの読み取り専用ツールとして公開する、小さなMCPサーバーです。

ツール

対応する画面要素

get_variance_summary

4つのタイル: 計画ライン / 目標達成 / 差異フラグ / 課題未登録

list_plan_variance

行グリッド(計画コード、品目、工場、数量、差異、理由、ステータス)

list_variance_reasons

「差異の理由」設定とエスカレーションメール(工場別)

list_plants

工場フィルタードロップダウン

list_shop_floors

職場フィルタードロップダウン

以下のDWHテーブルを照会します(ライブスキーマで検証済み): tblProductionPlanVarianceIssueArc、tblProductionPlanVarianceReasonArc、 tblPlantArc、tblShopFloorArc。

この構成にした理由

データベースの認証情報を誰も入力せずに、JSONファイルだけで誰でも使えるようにするというご要望でした。そこで、次のような設計にしています。

  • サーバーは1つ(あなたがホスト)。DB認証情報はサーバー自身の環境変数(.env、コミットもクライアントへの送信もされません)に保持します。

  • 他の全員は、mcp-config.jsonをMCPクライアント(Claude Desktop、Claude Codeなど)にドロップするだけです。このファイルにはURLしか含まれておらず、秘密情報は一切ありません。SQL Serverと通信するのはサーバーだけです。

  • すべてのクエリは、src/queries.jsで定義された固定のパラメータ化されたSELECT文です。自由形式のSQLツールは公開されていないため、このMCPサーバーを使う誰も、ダッシュボード自身のデータ以外を照会したり、書き込みを実行したりすることはできません。

Related MCP server: mcp-server

⚠️ デプロイ前に: DB権限を確認してください

この構築中に、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ファイルにより、同じサーバーが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の管理者に確認してください。また、このURLを公開する前に、/mcpの前面に何らかの認証を追加してください(下記の注を参照)。現状では、リンクを知っている誰でもこれらの読み取り専用ツールを呼び出せます。

配布

mcp-config.jsonを編集し、YOUR-HOSTED-DOMAINを実際のドメインに置き換えてから、その1ファイルを共有してください。誰でもMCPクライアントに追加するだけで、このダッシュボードのデータへの読み取り専用チャットアクセスがすぐに得られます。インストール不要、認証情報不要、SQLの知識も不要です。

注意事項 / ご自身で確認すべき点

  • ダッシュボードの**「機械」**列(例: "Aromatic Unit Line - 01")は、取得したスキーマのtblProductionPlanVarianceIssueArcには見つかりませんでした。おそらく、お使いの環境の生産ライン/作業センターのテーブルを介して解決されるものと思われます。list_plan_varianceのクエリにはまだ含まれていません。ソーステーブルを確認したら、src/queries.jsに適切なJOINを追加してください(候補: tblProductionLineArc、tblWorkCenterArc)。

  • get_variance_summaryの「課題未登録」ロジックは、「理由やステータスがまだ記録されていない差異フラグ」を意味すると仮定しています。アプリの実際のビジネスロジックと照合して確認し、異なる場合は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
    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