Production Plan Variance MCP Server
生産計画差異 MCPサーバー
生産計画差異・課題追跡ダッシュボード(erp.peopledesk.io/production-management/mes/ProductionPlanVariance)を、DWHデータベースに直接接続して5つの読み取り専用ツールとして公開する、小さなMCPサーバーです。
ツール | 対応する画面要素 |
| 4つのタイル: 計画ライン / 目標達成 / 差異フラグ / 課題未登録 |
| 行グリッド(計画コード、品目、工場、数量、差異、理由、ステータス) |
| 「差異の理由」設定とエスカレーションメール(工場別) |
| 工場フィルタードロップダウン |
| 職場フィルタードロップダウン |
以下の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サーバーを使う誰も、ダッシュボード自身のデータ以外を照会したり、書き込みを実行したりすることはできません。
⚠️ デプロイ前に: DB権限を確認してください
この構築中に、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のサーバーレス関数に変換され、/mcpで公開されます。
このフォルダをGitHubリポジトリにプッシュします(またはフォルダから直接実行します)。
CLIを一度インストールします:
npm i -g vercelproduction-variance-mcp/内から、ご自身のVercelアカウントにログインしてデプロイします:vercel login vercel --prodVercelダッシュボード → プロジェクト → 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の管理者に確認してください。また、この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)を追加してください。このビルドにはデフォルトで認証はありません。
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