Skip to main content
Glama
deodatta1234

machine-maintenance-agent

by deodatta1234

Machine Maintenance Agent: MCP Interview Project

これは、エージェントがMCPツールを使って産業機械のデータを点検し、保守ガイダンスを検索し、エスカレーションが必要なときに保守チケットを作成する方法を示す、面接でそのまま使える小さなプロジェクトです。

シナリオ例:

「機械 P-204 の振動が異常です。どうすればよいですか?」

エージェントは機械のステータスを確認し、最近のセンサー異常を調べ、保守マニュアルのデータセットを検索し、必要に応じてチケットを作成します。

なぜこれが良いMCPの例なのか

MCPがここで役立つのは、エージェントがデータベースやファイルに直接アクセスする必要がないためです。その代わりに、制御されたツールインターフェースを受け取ります。

  • get_machine_status_tool(machine_id)

  • get_recent_sensor_anomalies_tool(machine_id, hours)

  • search_maintenance_manual_tool(query, limit)

  • create_maintenance_ticket_tool(machine_id, severity, summary, recommended_action)

  • list_open_tickets_tool(machine_id)

これにより、読み取り専用のデータアクセス、安全な書き込みアクセス、ツールの境界、マルチステップのエージェント動作を、ひとつの小さなプロジェクトで説明できます。

Related MCP server: Nibble

プロジェクト構成

machine-maintenance-agent/
  data/
    machines.json              # Machine metadata and normal operating ranges
    machine_status.json        # Current synthetic sensor readings
    anomalies.json             # Recent detected anomalies
    maintenance_manual.json    # Small troubleshooting knowledge base
    tickets.json               # Simple local ticket store
  src/
    maintenance_tools.py       # Core tool logic
    mcp_server.py              # MCP server exposing tools
    agent_demo.py              # Transparent agent flow demo
  tests/
    test_maintenance_tools.py
  AGENT_FLOW.md
  TOOL_CONTRACTS.md
  requirements.txt
  README.md

セットアップ

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

MCPの依存関係は、現在の安定版Python SDK v1系に固定されています: mcp[cli]>=1.27,<2。

デモエージェントを実行する

このフォルダから:

python src/agent_demo.py

デモ中にチケットを作成するには:

python src/agent_demo.py --create-ticket

期待される動作:

  1. P-204 のステータスを読み取る。

  2. 通常範囲外の振動と温度を検出する。

  3. 高重要度の振動異常を検出する。

  4. 保守マニュアルからポンプ振動のガイダンスを検索する。

  5. 負荷を軽減し、ベアリング/カップリング部を点検することを推奨する。

  6. --create-ticket が指定された場合のみチケットを作成する。

MCPサーバーを実行する

python src/mcp_server.py

これによりstdio MCPサーバーが起動します。MCPクライアントは接続して、公開されたツールを呼び出すことができます。

MCPクライアント設定の構成例:

{
  "mcpServers": {
    "machine-maintenance-agent": {
      "command": "python",
      "args": ["src/mcp_server.py"],
      "cwd": "/absolute/path/to/machine-maintenance-agent"
    }
  }
}

テストを実行する

python -m unittest discover -s tests

面接での説明

この短い説明を使ってください:

「私は、合成された保守システムを取り巻くMCPサーバーを構築しました。エージェントはファイルやデータベースを自由に操作することはできません。手にするのは、機械のステータスの読み取り、異常の読み取り、マニュアルと保守ガイドの検索、保守チケットの作成という、少数のツールだけです。P-204の振動に関する問い合わせがあると、エージェントは現地のステータスを確認し、しきい値を超える振動を確認し、最近の高重要度の異常を見つけ、関連するマニュアルを引き出し、チケットを作成してエスカレーションします。これは、制御されたエンタープライズアクセス、ツールベースの推論、LLMと運用システムとの安全な境界を示しています。」

さらに構造化された手順については、AGENT_FLOW.md と TOOL_CONTRACTS.md を参照してください。

このプロジェクトが使用するデータ

  • 機械メタデータ: ID、名前、エリア、重要度、通常の動作範囲。

  • 機械ステータス: 現在の振動、温度、圧力、状態、最終サービス日。

  • センサー異常: タイムスタンプ、シグナル、値、しきい値、重要度、説明。

  • 保守マニュアル: 症状、キーワード、推奨アクション、安全上の注意事項。

  • チケットストア: チケットID、機械ID、重要度、概要、推奨アクション、ステータス。

拡張の仕方

ポートフォリオ版を作るための、小さな改良アイデア:

  • ツールを動的に選択する本物のLLMクライアントを追加する。

  • JSONファイルの代わりにSQLiteを追加する。

  • ロールベースの権限を追加する。例: 読み取り専用のオペレータ権限と、チケット作成可能なスーパーバイザ権限。

  • 機械のステータスと未解決チケットを表示するシンプルなダッシュボードを追加する。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to investigate production incidents by exposing service health, logs, and deployment data through MCP tools.
    6 npm
    ISC
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to monitor server health and capacity, diagnose outages, inspect Docker and deployment status, and perform safe, bounded recovery actions via MCP without granting unrestricted shell or SSH access.
    10
    1
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables SafeOps operators to monitor worker health, inspect job queues, investigate incidents, search runbooks, and approve or reject targeted failed-job retries through MCP tools, resources, and a prompt.
    -