メインコンテンツまでスキップ

FactVerse MCP — 任意の AI Agent 向け Physical AI ツール

Model Context Protocol (MCP) 経由で、任意の AI Agent から FactVerse の物理世界ツールを呼び出せます。


MCP とは?

Model Context Protocol は、AI アプリケーション(Claude Desktop、Cursor、自作 Agent など)が外部ツールやデータソースを安全に呼び出せるようにするオープン標準です。

FactVerse はプラットフォームのツールを 基盤 / モジュール(base / module) の区分で並列のガバナンス切片に分割しています。各切片は独立したエンドポイントで、per-customer API key から テナント + scope を解決して認証します。

切片用途代表ツール
base(基盤)汎用読み取り + 汎用計算 + 横断的な実行設備状態、ナレッジ照会、シミュレーション、最適化、予測、作業票作成
trafficops(モジュール)人流/車流オペレーション交通予測、検問レーン、巡回スケジュール、サージ検知
pdm(モジュール)予知保全設備健全性、予知保全 サマリ/異常、フィルタインテリジェンス
telcoops(モジュール)通信ネットワーク運用ネットワーク健全性、インシデント解説、容量予測
semiops(モジュール)半導体 / クリーンルーム / Fab / SMTクリーンルーム状態、パーティクル/差圧、HEPA フィルタ寿命、ISO 14644 適合、Fab PUE、SMT OEE

その他の顧客専用切片は、契約された導入範囲に応じて個別に有効化できます。


クイックスタート

以下は base 切片(汎用読み取り + 汎用計算)の例です。モジュールを使う場合は URL の basetrafficops / pdm / telcoops / semiops に置き換え、対応する scope を持つ key を使います。

Claude Desktop

claude_desktop_config.json に追加:

{
"mcpServers": {
"factverse-base": {
"url": "https://your-factverse-server/mcp/base/",
"headers": {
"X-API-Key": "fvk_your_scoped_key"
}
}
}
}

Cursor IDE

.cursor/mcp.json に:

{
"mcpServers": {
"factverse-base": {
"url": "https://your-factverse-server/mcp/base/",
"headers": {
"X-API-Key": "fvk_your_scoped_key"
}
}
}
}

Python クライアント

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
async with streamablehttp_client(
"https://your-factverse-server/mcp/base/",
headers={"X-API-Key": "fvk_your_scoped_key"}
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()

# この key で見えるツールを列挙
tools = await session.list_tools()
for tool in tools.tools:
print(f"{tool.name}: {tool.description[:60]}...")

# ツール呼び出し:設備状態を照会(base.read)
result = await session.call_tool(
"get_equipment_status",
{"equipment_id": "EQ-001"}
)
print(result)

# シミュレーション実行(base.compute.run)
result = await session.call_tool(
"run_simulation",
{
"scene_type": "trafficops",
"scene_id": "rts-main-hall",
"simulation_time": 480
}
)
print(result)

ツール分類(切片ごと)

base — 汎用読み取り · scope base.read

ツール名説明
get_equipment_status設備のリアルタイム状態とセンサー値を取得
query_knowledgeナレッジグラフ照会(設備/故障/関連)
search_documents文書検索
get_equipment_documents設備関連文書
list_connectorsデータコネクタ一覧
check_data_qualityデータ品質チェック
get_pending_tasks承認待ちタスク取得(読み取り専用)

base — 汎用計算(シミュレーション/最適化/予測/分析/空間) · scope base.compute.run

ツール名説明
run_simulationDES シミュレーション実行(交通/空調/設備)
run_doe実験計画法を実行(主要因子の特定)
run_dag_simulationDAG 検問シミュレーション + Sankey 分析
run_what_if_comparisonA/B シナリオの What-If 比較
run_optimizationNSGA-II 多目的最適化
optimize_layout施設の空間レイアウト最適化
get_optimization_recommendation予算制約下の最適人員配置

base — 実行(書き込み) · scope base.action.write(既定では付与しない)

ツール名説明
create_work_orderAI の提案から作業票を作成

pdm — 予知保全 · scope pdm.read

ツール名説明
get_equipment_health設備健全性スコア
get_pdm_summary予知保全 サマリ
list_pdm_anomalies予知保全 異常一覧

semiops — 半導体 / クリーンルーム / Fab / SMT · scope semiops.read

ツール名説明
get_cleanroom_statusクリーンルーム環境状態
get_particle_trendパーティクル傾向
get_pressure_gradient差圧勾配
get_fab_pueFab PUE 値
get_filter_lifeHEPA フィルタ寿命
get_iso_complianceISO 14644 適合状態
get_smt_oeeSMT ライン OEE
get_utility_statusユーティリティ(CDA/N2/電力/水)状態
analyze_env_correlation環境パラメータ相関分析
monitor_particlesパーティクルのリアルタイム監視
predict_env_trend環境傾向予測
simulate_smt_bottleneckSMT ラインのボトルネックシミュレーション
forecast_fab_loadFab 負荷予測
optimize_chiller_cop冷凍機 COP 最適化

trafficops / telcoops のツール一覧は各切片の tools/list で確認できます。


認証・認可(key → テナント + scope)

/mcp/<切片>ガバナンス対象のエンドポイントです。各リクエストは per-customer API key で認証し、サーバ側が key からテナントと権限 scope を解決します(クライアントはテナントを渡さず、共有キーも使えません)。

  • Header: X-API-Key: fvk_…Authorization: Bearer ではない)
  • key は管理者がテナント単位で発行(ハッシュ保存・一度だけ表示)。自己発行不可。
  • key なし → ゲートウェイで 403、無効/失効 key → 401。

Scope(その key が呼べるツール)

scope切片ツール
base.readbase汎用読み取り(設備状態、ナレッジ照会、文書、コネクタ、データ品質、承認待ち)
base.compute.runbase汎用計算(シミュレーション、最適化、予測、分析、空間。テナント非依存)
base.action.writebase実行系(作業票作成など。既定では付与しない
trafficops.readtrafficopsTrafficOps モジュールのツール(交通予測、検問レーン、巡回スケジュールなど)
pdm.readpdm予知保全 モジュールのツール(設備健全性、予知保全 サマリ/異常、フィルタインテリジェンスなど)
telcoops.readtelcoopsTelcoOps モジュールのツール(ネットワーク健全性、インシデント解説、容量予測)
semiops.readsemiops半導体/クリーンルームのツール(クリーンルーム、パーティクル/差圧、HEPA フィルタ、ISO 14644、Fab PUE、ユーティリティ、SMT OEE/欠陥分類)

モジュールは相互に分離されています。trafficops の key は pdm/telcoops/semiops のツールも base のツールも呼べません。横断アクセスが必要なら 1 つの key に複数 scope を付与します。

key が必要な scope を持たない tools/callフェイルクローズで拒否され、missing required scope '…' を返します。1 つの key は複数の scope を保持できます。


使用シナリオ

1. Claude が施設を直接操作

ユーザー: 「7号冷凍機の最近の運転は? 周波数を 42Hz に下げたらどうなる?」

Claude の呼び出し:
→ get_equipment_status(equipment_id="CHILLER-007") # base.read
→ run_simulation(scene_type="fms", config_overrides={"frequency": 42}) # base.compute.run
→ 統合分析して回答

2. 自作 Agent による運用自動化

# 毎時 設備健全性をチェック(pdm.read)、低スコアなら作業票を自動作成(base.action.write)
health = await pdm_session.call_tool("get_equipment_health", {"equipment_name": "critical pump"})

for equipment in health.data["equipment"]:
if equipment["health_score"] < 60:
await base_session.call_tool("create_work_order", {
"equipment_id": equipment["id"],
"priority": "HIGH",
"title": "低い健全性スコアの確認",
"description": f"AI が健全性スコア 60 未満を検出: {equipment['health_score']}"
})

3. Cursor で生産データを照会

Cursor IDE で semiops 切片に接続し、「クリーンルーム CR-001 のパーティクル傾向は?」と質問 → Cursor が MCP 経由で get_particle_trend を呼び出します。


公開デプロイ要件

FactVerse MCP は /mcp/base//mcp/trafficops//mcp/pdm//mcp/telcoops//mcp/semiops/ などの管理された HTTPS エンドポイントとして公開されます。実際に有効なエンドポイントは、顧客環境で有効化されたモジュールに依存します。

本番クライアントは HTTPS を使用し、各リクエストで X-API-Key を送信し、利用可能なツールは MCP の実行時ディスカバリで確認してください。末尾スラッシュ付きの /mcp/<切片>/ が標準のエンドポイント形式です。

クライアントはテナント識別子を渡すべきではありません。プラットフォームは発行済み key からテナントと scope を解決し、key が必要な scope を持たないツール呼び出しを拒否します。