mcpField
U
Uniprot Mcp

Uniprot Mcp

ローカル
github.com/fzlzjerry科学・教育020 週間前に更新

Uniprot Mcp について

Uniprot Mcpは、UniProt REST APIの機能をLLMクライアントに提供するMCPサーバーです。タンパク質やプロテオームの検索、エントリー取得、FASTA取得、IDマッピング、分類情報の検索に対応し、既定では簡潔な要約を返します。

主な機能

  1. 01UniProtKB、UniRef、プロテオームの検索
  2. 02複数形式でのエントリー詳細取得
  3. 03単一または複数FASTA配列の取得
  4. 04データベース間のIDマッピング
  5. 05分類名とIDの解決
  6. 06クエリ構文チートシートのリソース

活用シーン

  1. 01生物種のレビュー済みタンパク質の検索
  2. 02アクセッションの配列と注釈の取得
  3. 03RefSeqまたはPDBのIDをUniProtKBに変換
  4. 04配列類似性クラスターとプロテオームの検索

MCP 対応

stdio経由でUniProt REST APIの操作をMCPツールとして公開し、UniProtのクエリ構文を説明するリソースも提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

uniprot-mcp

CI PyPI Python MCP Badge

GitHub リポジトリ:fzlzjerry/uniprot-mcp · PyPI パッケージとコマンド:uniprotkb-mcp (Python のインポートパッケージは uniprot_mcp です)。

UniProt REST APIをstdio経由でLLMクライアント(Claude Code、Claude Desktopなど)に提供する、プロダクション品質のMCP サーバーです。FastMCPで構築し、uvで管理しています。

ツールはデフォルトでコンパクトかつトークン効率の高い要約を返し、要求された場合にのみ完全なペイロードを返します。また、堅牢なエラー処理と、モデルが有効なクエリを作成できるようにするUniProtクエリのチートシートを内蔵しています。

クイックスタート

PyPIで公開されています。クローンもインストールも不要です:

uvx uniprotkb-mcp

次に、MCPクライアントからこのサーバーを指定します(設定の詳細は以下を参照):

{
  "mcpServers": {
    "uniprot": {
      "command": "uvx",
      "args": ["uniprotkb-mcp"],
      "env": { "UNIPROT_MCP_CONTACT": "[email protected]" }
    }
  }
}

ツール

ツール内容
search_uniprotkbネイティブのクエリ構文でUniProtKBを検索します。reviewed/organism_idフィルターは自動的に追加されます。要約、FASTA、またはTSV形式で出力します。
get_entry1件のエントリーを精選したダイジェスト(機能、名称、生物種、長さ、細胞内局在、ファミリー/ドメイン、主な特徴、PTM、キーワード、PDB/AlphaFold/Ensembl/RefSeq/InterPro/GOのクロスリファレンス)またはjson/fasta/txt/gff形式で取得します。
get_fasta1件または複数のアクセッションについて、FASTAをそのまま取得します。
map_idsUniProtの非同期IDマッピングを使ってデータベース間のIDを変換します(例:RefSeq_Protein→UniProtKB、UniProtKB_AC-ID→PDB)。マッピングされたペアとマッピングされなかったIDを返し、データベースのペアを最新の設定に照らして検証します。
get_taxonomy生物種名または分類群IDを解決し、分類群ID、名称、階級、系統を返します。「human」をorganism_id:9606に変換できます。
search_unirefUniRef100/90/50の配列類似性クラスターを検索します。
search_proteomesプロテオーム(生物種全体のタンパク質セット)を検索します。参照プロテオームのフィルターに対応しています。

さらに、UniProtKBのクエリ構文(gene:、organism_id:、reviewed:true、length:[X TO Y]、keyword:、ec:、ブール演算子のAND/OR/NOTなど)を説明するMCPリソースresource://uniprot/query-cheatsheetも利用できます。

要件

  • Python ≥ 3.10(リポジトリでは.python-versionにより3.13を指定しています)
  • uv

インストール

git clone https://github.com/fzlzjerry/uniprot-mcp
cd uniprot-mcp
uv sync                 # creates .venv and installs fastmcp + httpx

実行

# stdio server (what MCP clients launch):
uv run uniprotkb-mcp

UniProtでは、APIクライアントに連絡先住所を名乗るよう求めています。UNIPROT_MCP_CONTACT環境変数で設定してください(User-Agentに使用されます)。設定しない場合は、プレースホルダーが使用されます。

UNIPROT_MCP_CONTACT="[email protected]" uv run uniprotkb-mcp

uvxで実行(クローン/同期不要)

uvx(別名:uv tool run)は、一時的な環境にコンソールスクリプトを取得、ビルドして実行します。事前のインストールは不要です。利用できるソースを選択してください:

# From PyPI (published):
uvx uniprotkb-mcp

# From a Git repo (note: repo is uniprot-mcp, command is uniprotkb-mcp):
uvx --from git+https://github.com/fzlzjerry/uniprot-mcp uniprotkb-mcp

# From a local checkout (this directory):
uvx --from /ABSOLUTE/PATH/TO/uniprot-mcp uniprotkb-mcp

# From a built wheel:
uvx --from ./dist/uniprotkb_mcp-0.1.0-py3-none-any.whl uniprotkb-mcp

uvx [email protected]でバージョンを固定するか、uvx --refresh --from <source> uniprotkb-mcpでキャッシュ済みビルドを強制的に更新できます。

Claude Desktop に登録する

claude_desktop_config.json (macOS:~/Library/Application Support/Claude/claude_desktop_config.json、 Windows:%APPDATA%\Claude\claude_desktop_config.json)を編集して、次を追加します。

{
  "mcpServers": {
    "uniprot": {
      "command": "uvx",
      "args": ["uniprotkb-mcp"],
      "env": { "UNIPROT_MCP_CONTACT": "[email protected]" }
    }
  }
}

これにより、公開済みのパッケージを PyPI から直接実行します。代わりに未リリースのコードを実行するには、ソースを追加します。"args": ["--from", "git+https://github.com/fzlzjerry/uniprot-mcp", "uniprotkb-mcp"] (git)または "args": ["--from", "/ABSOLUTE/PATH/TO/uniprot-mcp", "uniprotkb-mcp"] (ローカルチェックアウト)を指定します。Claude Desktop が参照する PATH に uvx があることを確認してください(uv に同梱されています。必要であれば、~/.local/bin/uvx のように uvx の絶対パスを指定してください)。 Claude Desktop を再起動すると、uniprot ツールが表示されます。

uvx ではなくクローンしたチェックアウトを使いたいですか?次を使用します。 "command": "uv", "args": ["run", "--directory", "/ABSOLUTE/PATH/TO/uniprot-mcp", "uniprotkb-mcp"]。

Claude Code に登録する

プロジェクトのルートに .mcp.json を置き、プロジェクト単位で設定します(同じ形式です)。

{
  "mcpServers": {
    "uniprot": {
      "command": "uvx",
      "args": ["uniprotkb-mcp"],
      "env": { "UNIPROT_MCP_CONTACT": "[email protected]" }
    }
  }
}

または、CLI から設定します。

# via uvx (published / git / local source):
claude mcp add uniprot -e [email protected] -- uvx uniprotkb-mcp

# via a local checkout with uv:
claude mcp add uniprot -e [email protected] \
  -- uv run --directory /ABSOLUTE/PATH/TO/uniprot-mcp uniprotkb-mcp

スモークテスト

すべてのツールを稼働中の API に対して実行し、出力を表示します。

UNIPROT_MCP_CONTACT="[email protected]" uv run python -m tests.smoke

開発

開発、テスト、CI、リリースプロセス(CI による PyPI Trusted Publishing — トークン不要)については、CONTRIBUTING.md に記載されています。 要約:uv sync を実行し、続いて uv run python -m tests.check_structure(オフライン)と uv run python -m tests.smoke(稼働中の API)を実行します。

設計メモ

  • 共有の httpx.AsyncClient を単一使用し、連絡先を含む説明的な User-Agent を設定します。
  • 429(Retry-After を尊重)と 5xx ではリトライ/バックオフを行います。400 では UniProt 独自のエラーメッセージを表示します。クライアントに生のトレースバックが渡らないよう、エラーは ToolError として発生させます。
  • ページネーションには Link ヘッダー/x-total-results を使用します。結果件数には上限(≤ 500)を設け、常に合計件数を報告するため、絞り込みやページ分割が可能です。
  • ID マッピングは実際の非同期フローに従います。POST /idmapping/run → /idmapping/status/{job} をポーリング(303 と Location は完了を示します)→ 結果を取得します。対象データベースに応じて、拡張された UniProtKB 結果エンドポイントと単純なペア用エンドポイントを自動で選択します。

プロジェクト構成

src/uniprot_mcp/
  server.py       # FastMCP instance, the 7 tools, cheat-sheet resource, main()
  client.py       # shared AsyncClient, retry/backoff, error mapping, header parsing
  idmapping.py    # async run/poll/results flow with target-aware routing
  config.py       # cached idmapping db config + from/to validation
  formatting.py   # JSON -> compact summary digests
  cheatsheet.py   # UniProt query cheat-sheet
tests/smoke.py    # live-API smoke test

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。