Skip to main content
Glama

GxP MDM MCP Server - Claude / ChatGPT / Cursor 向け Cypher ツール

このMCPサーバーは、Cypherクエリを通じて、あなたのコンピュータ化システム・インベントリをナレッジグラフとして公開します。Claude/ChatGPTのエージェントは、ハルシネーションを起こすことなくGxPマスターデータをクエリできるようになります。

アーキテクチャ

Claude / ChatGPT / Cursor
        |
        | MCP (stdio)
        v
  mcp_server.py (14 tools)
        |
        | Cypher queries
        v
  Neo4j (or MOCK mode: NetworkX + JSON) <- your MDM golden record

Cypher を使う理由

  • **Blast radius(影響範囲)**はグラフのトラバーサルです:MATCH (start)-[:SENDS_VIA*1..3]->(downstream) — SQLでは不可能

  • データリネージ(Data lineage) — ALCOA+の調査に

  • 規制のグランドトゥルース — エージェントはCypherが返した条項のみを引用でき、ハルシネーションを防げる

Related MCP server: Fianu Compliance Intelligence MCP Server

公開されている14のツール

ツール

Cypherクエリ

機能

cypher_query

カスタム

安全な読み取り専用Cypher(探索用)

list_all_systems

MATCH (s:ComputerizedSystem) RETURN

フルインベントリ。監査人が真っ先に尋ねるもの

get_system_details

フルサブグラフ

システム+機能+電子記録+サプライヤー+インターフェース

get_blast_radius

MATCH (start)-[:SENDS_VIA*1..$depth]->(downstream)

キラーアプリ: 変更によって影響を受ける下流のGxPシステムは?

get_upstream_lineage

逆向きトラバーサル

データはどこから来るのか?

get_applicable_regulations

(s)-[:HAS_FUNCTION]->(f)-[:REGULATED_BY]->(reg)

ハルシネーション防止:この条項のみ引用可能

get_system_interfaces

(s)-[flow:SENDS_VIA]->(target)

GxPフラグ付きのAPI/ファイル/手動インターフェース

find_validation_gaps

WHERE validation_status <> 'Validated'

バリデーション未実施のGxP Directシステム

find_periodic_review_overdue

WHERE next_review < date()

期限切れの定期レビュー

find_high_risk_functions

WHERE is_gxp_critical AND risk=High

電子署名、バッチリリース、効能

get_supplier_risk

(s)-[:SUPPLIED_BY]->(sup)

サプライヤーの監査ステータス、SOC2

get_data_lineage

MATCH (s)-[:GENERATES]->(e:ElectronicRecord)

レコードタイプごとのリネージ

get_gxp_inventory

WHERE gxp_impact='Direct'

GxPIDirectインベントリ

assess_change_impact

複合

3つのCypherクエリをオーケスト+GAMP 5 / CSAに基づく影響評価を生成

クイックスタート(Neo4j不要 - モックモード)

cd gxp_mdm_mcp_server
pip install -r requirements.txt

# Mock mode: uses JSON + NetworkX, no Neo4j required
python scripts/test_tools.py

# Should show:
# - List 4 systems
# - Veeva QMS details with downstream SAP
# - Blast radius: Veeva -> SAP
# - REJECT for audit trail purge
# - Minor for version upgrade

モックモードは、POCやClaude Desktopのテストに最適です。

Neo4jの本番モード

# .env - set Neo4j creds
cp .env.example .env
# Edit .env with your Neo4j URI

# Start Neo4j
docker-compose up -d neo4j

# Load sample data + schema
python scripts/load_sample_data.py

# Test with Neo4j
python scripts/test_tools.py

# Start API harness (optional)
uvicorn src.api_server:app --reload --port 8000
# http://localhost:8000/cypher/list_all_systems
# http://localhost:8000/cypher/blast_radius?system_id=SYS-VEEVA-QMS-001

Claude Desktop の設定

  1. Claudeの設定ファイルを探します:~/Library/Application Support/Claude/claude_desktop_config.json(Mac)または %APPDATA%/Claude/claude_desktop_config.json(Windows)

  2. 追加します(絶対パスを使用):

{
  "mcpServers": {
    "gxp-mdm-cypher": {
      "command": "python",
      "args": ["/absolute/path/to/gxp_mdm_mcp_server/src/mcp_server.py"],
      "env": {
        "NEO4J_URI": "",
        "NEO4J_USERNAME": "neo4j",
        "NEO4J_PASSWORD": "password"
      }
    }
  }
}

モックモードの場合は NEO4J_URI を空のままにします。Neo4jの場合は bolt://localhost:7687 に設定します。

  1. Claude Desktopを再起動します。🔌 の下に14個のツールが表示されるはずです。

  2. 次のプロンプトを試します:

List all GxP Direct systems in my inventory
> calls list_all_systems(gxp_impact="Direct")

What happens if I change Veeva QMS? Show blast radius
> calls get_blast_radius(system_id="SYS-VEEVA-QMS-001")

Assess this change: Enable audit trail purge after 7 years for Veeva QMS
> calls assess_change_impact -> should REJECT per 21CFR11.10(e)

Assess Veeva upgrade from 24R1 to 24R2 with no e-sig change
> calls assess_change_impact -> should be Minor per CSA low risk

Cursor の設定

config/cursor_config.json.example を参照して、.cursor/mcp.json に追加してください。

ChatGPT(MCP対応)

ChatGPTのカスタムGPTをMCPで使う場合は、config/chatgpt_mcp_config.json を参考にしてください。ChatGPTはstdio を経由してツールを呼び出します。

Cypherクエリ - グランドトゥルース

すべてのクエリは src/cypher_tools.py にあります。主要なもの:

Blast radius(the moat):

MATCH (start:ComputerizedSystem {system_id: $system_id})
MATCH path = (start)-[:SENDS_VIA*1..$depth]->(downstream:ComputerizedSystem)
WHERE downstream.gxp_impact IN ['Direct', 'GxP Relevant']
RETURN downstream.system_id, length(path) as distance

規制のハルシネーション防止:

MATCH (s:ComputerizedSystem {system_id: $system_id})
OPTIONAL MATCH (s)-[:HAS_FUNCTION]->(f)-[:REGULATED_BY]->(reg)
RETURN collect(DISTINCT reg) as regulations

エージェントは、ここで返されたclause_ids のみを引用しなければなりません。

POCから本番へ

  1. data/*.json を実在のVeeva Vault API+ServiceNow CMDB+Okta に置き換える

  2. validation_status を更新するための書き込みツール(承認ワークフロー付き)を追加する

  3. 規制RAG用のベクター検索ツールを追加する(GAMP5 2版の問題)

  4. 定期レビューエージェントを追加して find_periodic_review_overdue をスケジュールで呼び出す

これであなたは、すべてのCSVエージェントがクエリせざるを得ないレイヤーを手中にしました。

トラブルシューティング

  • No module named mcp エラー:pip install mcp を実行する

  • Claudeにツールが表示されない場合:設定の絶対パスを確認し、Claudeを再起動し、ログ ~/Library/Logs/Claude/mcp*.log を確認する

  • Neo4j接続に失敗する場合:自動的にモックモードにフォールバックします。 NEO4J_URI を確認してください

市場を攻略しますように。


NEW: 承認ワークフロー付き書き込みツール(GxP準拠)

なぜ承認ワークフローなのか?

21 CFR Part 11.50とAnnex 11では、以下が求められます:

  • 2人規則(要求者 ≠ 承認者)

  • 変更の理由(ALCOA+ Complete)

  • 電子署名の形象(誰が、いつ、意味)

  • 堅牢な監査証跡(誰が、いつ、変更前/後、理由)

すべての書き込みツールがこれを強制します。

追加された書き込みツール

ツール

機能

GxPコントロール

request_validation_status_change_tool

保留中の変更リクエストを作成

REQUEST監査ログを記録、理由が10文字以上であることを要求

approve_validation_status_change_tool

承認+変更を適用

リクエスター ≠ 承認者を強制、電子署名を記録、システムと次回レビュー日を更新

reject_validation_status_change_tool

理由を添えて拒否

REJECT監査ログを記録

list_pending_changes_tool

保留中のQA承認を一覧表示

get_audit_trail_tool

電子署名を含む完全な監査証跡

21CFR11.10(e)、Annex 11.7

Claude経由のワークフロー例

You: Change Veeva QMS status to Validated - Change Implemented, reason: IQ/OQ passed for 24R2 upgrade, requested by qa.john

Claude calls:
request_validation_status_change_tool(system_id="SYS-VEEVA-QMS-001", new_status="Validated - Change Implemented", reason="IQ/OQ passed for 24R2 upgrade, evidence in Veeva Vault VP-2024-089", requested_by="qa.john@company.com")

-> Returns request_id CHG-VAL-A1B2C3, status Pending Approval

You: Approve CHG-VAL-A1B2C3 by qa.sarah, comment: Reviewed IQ/OQ, approved

Claude calls:
approve_validation_status_change_tool(request_id="CHG-VAL-A1B2C3", approver="qa.sarah@company.com", approval_comment="Reviewed IQ/OQ")

-> Applies change, updates sample_systems.json, creates audit trail with e-signature

You: Show audit trail for Veeva QMS

Claude calls:
get_audit_trail_tool(system_id="SYS-VEEVA-QMS-001")
-> Returns who, when, old/new, reason, electronic signature manifestation

APIで試す場合:

curl -X POST http://localhost:8000/request-status-change -H "Content-Type: application/json" -d '{"system_id":"SYS-VEEVA-QMS-001","new_status":"Validated - Change Implemented","reason":"IQ/OQ passed for 24R2 upgrade","requested_by":"qa.john@company.com"}'

curl -X POST http://localhost:8000/approve-status-change -d '{"request_id":"CHG-VAL-A1B2C3","approver":"qa.sarah@company.com","approval_comment":"Reviewed"}'

curl http://localhost:8000/audit-trail?system_id=SYS-VEEVA-QMS-001

NEW:定期レビューの自動エージェント

機能

自動的に以下のことを行います:

  1. 毎朝8時に find_periodic_review_overdue Cypherを呼び出す(APScheduler経由)

  2. 期限切れの各GxP Directシステムについて、GAMP 5 セクション6.5およびAnnex 11.11に従って定期レビューレポートの下書きを生成する

  3. 下書きJSONを保存し、監査証跡にCREATE_DRAFTを記録する

各下書きには、監査者が期待する10のセクションが含まれます:

  1. システムの説明(MDMから)

  2. 前回レビューからの変更点(モックJiraから)

  3. 逸脱・インシデント

  4. 監査証跡レビュー(サンプル、変更不可チェック)

  5. ユーザーアクセスレビュー(休眠アカウント)

  6. バックアップ/リストア試験

  7. サプライヤーレビュー(SOC2)

  8. データインテグリティ(ALCOA+)

  9. インターフェース — MDM グラフからの影響範囲(Blast radius)

  10. 結論と必要なアクション

ツール

ツール

目的

run_periodic_review_scan

遅延分をスキャン(Cypher)

generate_periodic_review_drafts

スキャンし、すべての遅延分について下書きを生成

generate_single_periodic_review

1つのシステムの下書きを生成

list_periodic_review_drafts

下書きの一覧表示

スケジューラーの実行

# Run once manually
python -c "from src.periodic_review_agent.agent import agent; print(agent.scan_overdue())"

# Generate drafts
python -c "from src.periodic_review_agent.agent import agent; print(agent.generate_drafts_for_overdue())"

# Run as daemon (daily 8am + every 6h demo)
python src/periodic_review_agent/scheduler.py

本番環境では、MCPツール run_periodic_review_scan を呼び出す APScheduler を、Airflow DAGまたはTemporalワークフローに置き換えてください。

Claudeを含む

You: Run periodic review scan

Claude calls run_periodic_review_scan() -> finds 2 overdue systems

You: Generate drafts for overdue

Claude calls generate_periodic_review_drafts() -> creates PR-SYS-VEEVA-QMS-001-2025-XXXX reports

You: Show me draft for Veeva QMS
> Returns full 10-section report

下書きは data/periodic_reviews/PR-*.json に保存され、ValidationArtifactとしてVeeva Vault にアップロードする準備ができます。


このv2で、監査対応体制が整います。書き込みは制御され、監査証跡はALCOA+準拠、定期レビューは自動化されます。これはまさに、QAディレクターがコンサルタントに $200/時間で支払って得られる成果です。

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • AI knowledge graph for architecture, portfolio, and digital strategy management.

  • Shared, permission-aware company context for AI agents, with provenance, approvals and audit.

  • Runtime AI governance: decision gates, human approval, hash-chained audit, compliance mapping.

View all MCP Connectors

Latest Blog Posts

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/saram-io/gxp_mdm_mcp_server_v2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server