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

FactVerse MCP — AI Agent 向けの管理された産業ツール

Model Context Protocol (MCP) を通じて、AI クライアントを管理された 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クリーンルーム、ユーティリティ、施設環境、SMT 運用コンテキスト

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


クイックスタート

以下は 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)

ツールリファレンスの流れ

このガイドでは、完全な手書きツールカタログを維持しません。FactVerse MCP ツールは製品モジュールと顧客環境に応じて変わるため、安定した利用手順は次の通りです。

ステップ使用するページ
顧客ワークフローを選ぶMCP ケイパビリティガイド
endpoint と scope を計画するMCP Scope マトリクス
その key で見えるツールを一覧するクライアントの実行時 MCP ツール発見
現在のツール名とパラメータを確認するMCP ツールリファレンス
アクセス、参照元データ、計算、書き込み失敗を診断するMCP エラーと監査

ツール名、説明、scope、パラメータは MCP ツールリファレンスで確認します。顧客環境での最終的な可用性は、実行時ツール発見を基準にします。

ケイパビリティ選択

ニーズ開始点レビュー後に追加
アセット、文書、参照元データのコンテキストを読む/mcp/base/ + base.read領域固有信号のモジュール endpoint。
シミュレーション、予測、最適化、空間分析を実行する/mcp/base/ + base.compute.run仮定と出力のエンジニアリングレビュー。
作業指示または点検タスクをドラフトする/mcp/base/ + base.action.write人による承認と監査記録。
予知保全出力をレビューする/mcp/pdm/ + pdm.readアセット記録とレビュー済み操作ドラフト用の /mcp/base/
モジュール化された運用領域をレビューする有効化されたモジュール endpoint共通文書とアセットコンテキスト用の /mcp/base/

認証・認可(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.readtrafficopsフロー、検問、レーン、ロスター、サージレビューに対する TrafficOps モジュールコンテキスト
pdm.readpdm設備健全性、異常、保全計画に対する予知保全モジュールコンテキスト
telcoops.readtelcoopsネットワーク健全性、インシデント、容量計画に対する TelcoOps モジュールコンテキスト
semiops.readsemiops半導体、クリーンルーム、ユーティリティ、施設環境、SMT 運用コンテキスト

モジュールは相互に分離されています。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 を持たないツール呼び出しを拒否します。