本文へスキップ
公式

タンパク質構造調査スタック

RCSB 構造記録と UniProt 注釈を組み合わせ、実験方法、分解能、実体対応を確認して出典付き mmCIF を保存します。

難易度: 中級 費用: 無料・有料混在 プライバシー: クラウド ~45 分
セットアップ開始

できるようになること

  • PDB の実験方法、分解能、ポリマー記録を取得。
  • UniProt accession を照合して mmCIF を保存。

構築するもの

範囲と環境

Claude Desktop、UniProt MCP 0.2.4 用の Node.js >=24、RCSB MCP 0.1.0 用の独立 Python >=3.13 を使用します。RCSB の固定コミットは df04c993c31f43d69d6273737bda2de39ace0850 です。RDKit の Python 3.11 環境は再利用しません。RCSB は server.py の stdio で起動し、依存要件は範囲指定のため実際の解決版を記録します。参照検索にデータベース API キーは不要ですが、両 API と Claude は外部ネットワークを使用します。

解釈

ポリマー実体、鎖、生物学的集合体は別の概念です。登録構造には欠落残基、構築体、変異があり得ます。方法、分解能、実体対応と原検証レポートを確認し、メタデータだけで結合・ドッキング・臨床性能を証明しません。同名ファイルを上書きし得るため新しい出力先を選びます。

固定版の RCSB ヘルパーは進捗とエラーを print で stdout に書き込みます。同梱 recipe_rcsb_server.py でこのモジュールの print だけを stderr に送り、MCP 出力を保持します。

タンパク質注釈取得

UniProt MCP (cyanheads)

構造メタデータと取得ツール

RCSB MCP (cnyambura)

PDB 構造メタデータ出典

RCSB PDB Data API

構成リソース

UniProt MCP (cyanheads)

タンパク質注釈取得 · 0.2.4

Node 24 以降。Python サーバーと分離。

上流のライセンスとクライアント・サービスの利用条件を確認してください。

リソースを見る

RCSB MCP (cnyambura)

構造メタデータと取得ツール · 0.1.0; df04c993c31f43d69d6273737bda2de39ace0850

Python >=3.13。独立環境と解決された依存版を記録。

上流のライセンスとクライアント・サービスの利用条件を確認してください。

リソースを見る

RCSB PDB Data API

PDB 構造メタデータ出典 · RCSB Data API / live

PDB ID、取得日、提供される場合はエントリー版を記録。

上流のライセンスとクライアント・サービスの利用条件を確認してください。

リソースを見る

互換性

クライアントOSアーキテクチャバージョン要件
Claude Desktop macOS指定なし構成リソースの要件を参照
Claude Desktop Windows指定なし構成リソースの要件を参照
Python macOS指定なし>= 3.13
Python Windows指定なし>= 3.13
Python Linux指定なし>= 3.13

セットアップとテスト

1. Node.js と Claude Desktop を準備

全プラットフォーム

npm を含む Node.js 24 以降と Claude Desktop を導入します。ローカル MCP が許可され、対象データベースへ HTTPS 接続できることを確認します。この Node 構成では Bun は不要です。

node --version
npm --version
公式出典

期待される結果

Node は v24 以降、npm が利用できる。

2. 固定 MCP パッケージを専用ディレクトリに導入

全プラットフォーム

新しい書き込み可能な作業ディレクトリで実行します。.mcp-packages に導入し、検証用に lockfile を保持します。上流の npx とローカル dist/index.js は同じ公開パッケージを使用します。

npm install --prefix .mcp-packages @cyanheads/[email protected]
npm ls --prefix .mcp-packages --depth=0
公式出典

期待される結果

指定した正確なパッケージ版が導入される。

3. 独立 Python 3.13 環境を準備

全プラットフォーム

Git と Python 3.13 を導入します。RCSB の要件は Python >=3.13 で、対象アーキテクチャの配布物を確認します。

公式出典

期待される結果

他のレシピ環境を変更せず Python 3.13 を利用できる。

4. macOS に RCSB MCP を導入

macOS

新しい作業ディレクトリに clone し固定コミットを導入。

git clone https://github.com/cnyambura/rcsb-mcp.git
cd rcsb-mcp
git checkout df04c993c31f43d69d6273737bda2de39ace0850
python3.13 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/python -m pip freeze
公式出典

期待される結果

導入が完了し解決版を記録。

5. Windows に RCSB MCP を導入

Windows

PowerShell で仮想環境を直接使用。

git clone https://github.com/cnyambura/rcsb-mcp.git
cd rcsb-mcp
git checkout df04c993c31f43d69d6273737bda2de39ace0850
py -3.13 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
.\.venv\Scripts\python.exe -m pip freeze
公式出典

期待される結果

導入が完了し解決版を記録。

6. stdio 出力アダプターを保存

全プラットフォーム

上流 server.py の隣に recipe_rcsb_server.py として保存します。上流ソースや全体の stdout は変更しません。

"""Keep the upstream RCSB API's progress/error prints off MCP stdout.

Save beside server.py and rcsb_api.py in the pinned RCSB checkout.
Source: https://github.com/cnyambura/rcsb-mcp/blob/df04c993c31f43d69d6273737bda2de39ace0850/rcsb_api.py
Source-reviewed example; not executed.
"""
import functools
import sys

import rcsb_api
import server

# Only change print lookup in this module; preserve the process stdout stream.
rcsb_api.print = functools.partial(print, file=sys.stderr)

if __name__ == "__main__":
    server.mcp.run()
公式出典

期待される結果

アダプターが上流モジュールの隣にあり、クライアントがこの入口を使用。

7. macOS で両サーバーを設定

macOS

Claude Desktop の mcpServers に両項目を追加し実際の絶対パスに置き換えます。RCSB は専用 Python 3.13 と server.py の stdio、UniProt は Node 24 以降を使用。構造取得用に新しい書き込み可能なディレクトリを用意し、既存の研究データ保存場所を選ばないでください。 起動入口は元の server.py ではなく recipe_rcsb_server.py を使用します。

{
  "mcpServers": {
    "uniprot": {
      "command": "/ABSOLUTE/PATH/TO/node",
      "args": [
        "/ABSOLUTE/PATH/.mcp-packages/node_modules/@cyanheads/uniprot-mcp-server/dist/index.js"
      ],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio"
      }
    },
    "rcsb-pdb": {
      "command": "/ABSOLUTE/PATH/rcsb-mcp/.venv/bin/python",
      "args": [
        "/ABSOLUTE/PATH/rcsb-mcp/recipe_rcsb_server.py"
      ]
    }
  }
}
公式出典

期待される結果

両項目がそれぞれの導入済み実行環境とファイルを参照。

8. Windows で両サーバーを設定

Windows

Claude Desktop の mcpServers に両項目を追加し実際の絶対パスに置き換えます。RCSB は専用 Python 3.13 と server.py の stdio、UniProt は Node 24 以降を使用。構造取得用に新しい書き込み可能なディレクトリを用意し、既存の研究データ保存場所を選ばないでください。 起動入口は元の server.py ではなく recipe_rcsb_server.py を使用します。

{
  "mcpServers": {
    "uniprot": {
      "command": "C:\\ABSOLUTE\\PATH\\TO\\node.exe",
      "args": [
        "C:\\ABSOLUTE\\PATH\\.mcp-packages\\node_modules\\@cyanheads\\uniprot-mcp-server\\dist\\index.js"
      ],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio"
      }
    },
    "rcsb-pdb": {
      "command": "C:\\ABSOLUTE\\PATH\\rcsb-mcp\\.venv\\Scripts\\python.exe",
      "args": [
        "C:\\ABSOLUTE\\PATH\\rcsb-mcp\\recipe_rcsb_server.py"
      ]
    }
  }
}
公式出典

期待される結果

両項目がそれぞれの導入済み実行環境とファイルを参照。

9. 両コネクターを確認

全プラットフォーム

Claude を完全再起動し uniprot_get_entry、get_pdb_entry、get_polymer_entity、download_structure_file を確認。

公式出典

期待される結果

両コネクターが接続済み。

10. 4HHB を確認して取得

全プラットフォーム

新しい絶対出力先を指定し、要求された保存先を確認して実ファイルの存在を調べます。

get_pdb_entry を pdb_id="4HHB"、get_polymer_entity を entity_id="1" と "2" で呼び出し、実験方法、分解能、ポリマー実体と鎖対応を示してください。得られた UniProt 相互参照を uniprot_get_entry で取得します。私が新しい絶対出力ディレクトリを指定した後に download_structure_file で 4HHB を cif 形式で保存し、実際のパス、出典、取得日を示してください。構造からリガンド親和性やドッキング性能を推測しないでください。
公式出典

期待される結果

参照 4HHB:ヒトの脱酸素ヘモグロビン、X 線回折、1.74 Å。実体 1 は alpha/P69905、実体 2 は beta/P68871。https://www.rcsb.org/structure/4HHB と比較します。取得成功には実際のパスと空でない mmCIF が必要で、生成ファイル名だけでは不十分です。

トラブルシューティング

  • 起動失敗:Node 24 以降、node/モジュールの絶対パス、JSON 構文、lockfile を確認。
  • ツール不足:完全再起動し Developer ログを確認。
  • HTTP 429/タイムアウト:要求数を減らし、ページングと待機を挟む再試行を使用、成功済みの部分結果を保持。
  • 欠落フィールド:推測で補わず取得不能と表示。
  • Python 要件不一致:3.13 以降を使い RDKit 3.11 環境を再利用しない。
  • 保存失敗:出力先の権限と空き容量を確認しエラーを保持。
  • stdout プロトコルエラー:上流ログやエラー出力を調べ、壊れた stdio を成功としない。
  • 対応不一致:実体別 accession を使う。鎖 ID と実体 ID は異なる。
  • 分解能なし:方法と欠落を示し、分解能を推測しない。
まだ動作しません

代替案

RCSB サイトや Data API で同じ記録を取得し、ウェブ検証レポートと Mol* を利用できます。UniProt だけで実験構造記録を置き換えません。