Unofficial UniProt MCP Server について
Unofficial UniProt MCP Server は、UniProt REST API を通じてタンパク質データベースを照会する 26 個のツールを提供する、非公式の MCP サーバーです。機能、配列、構造、相互作用のデータを必要とする生物情報学や構造生物学の研究者を想定しています。
主な機能
- 01タンパク質の検索と詳細情報の取得
- 02FASTA または JSON 形式での配列取得
- 03構造、ドメイン、変異情報の分析
- 04ホモログとオーソログの探索
- 05パスウェイ、相互作用、局在の照会
- 06バッチ処理と詳細条件による検索
活用シーン
- 01遺伝子名からヒトのタンパク質を検索し配列を取得する
- 02複数の種間でホモログタンパク質を比較する
- 03疾患関連の変異やドメインのデータを収集する
MCP 対応
MCP サーバーとして、登録番号やクエリでUniProt のデータにアクセスするための 26 個のツールと uniprot:// リソーステンプレートを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
非公式 UniProt MCP サーバー
UniProt タンパク質データベースへの高度なアクセスを提供する、包括的な Model Context Protocol(MCP)サーバーです。このサーバーは、26 個の専門的なバイオインフォマティクスツールを備えており、AI アシスタントや MCP クライアントが UniProt の REST API を通じて、タンパク質の詳細な研究、比較ゲノミクス、構造生物学の解析、システム生物学の調査を直接行えるようにします。
開発元:Augmented Nature
特長
タンパク質の基本解析(5 個のツール)
- タンパク質検索:タンパク質名、キーワード、生物種を指定して UniProt データベースを検索します
- 詳細なタンパク質情報:機能、構造、注釈など、タンパク質に関する包括的な情報を取得します
- 遺伝子ベースの検索:遺伝子名またはシンボルからタンパク質を検索します
- 配列の取得:アミノ酸配列を FASTA または JSON 形式で取得します
- 特徴の解析:機能ドメイン、活性部位、結合部位など、タンパク質の特徴にアクセスします
比較・進化解析(4 個のツール)
- タンパク質の比較:複数のタンパク質を並べて比較し、配列や特徴を解析します
- 相同タンパク質の探索:異なる種にまたがって相同タンパク質を検索します
- オルソログの特定:進化研究のためにオルソログタンパク質を特定します
- 系統解析:進化的関係と系統データを取得します
構造・機能解析(4 個のツール)
- 3D 構造情報:PDB 参照情報と構造データにアクセスします
- 高度なドメイン解析:InterPro、Pfam、SMART の注釈を用いて、ドメインを詳細に解析します
- バリアント解析:疾患に関連するバリアントと変異を調べます
- 配列組成:アミノ酸組成、疎水性など、配列の特性を調べます
生物学的コンテキスト解析(4 個のツール)
- パスウェイ統合:KEGG および Reactome から関連する生物学的パスウェイを取得します
- タンパク質間相互作用:タンパク質間相互作用ネットワークを調べます
- 機能分類:GO 用語または機能注釈から検索します
- 細胞内局在:細胞内局在を指定してタンパク質を検索します
バッチ処理・高度な検索(3 個のツール)
- バッチ処理:複数のタンパク質アクセッションを効率的に処理します
- 高度な検索:複数のフィルター(長さ、質量、生物種、機能)を指定した複雑なクエリを実行します
- 分類学的分類:詳細な分類学的分類を指定して検索します
文献・相互参照(3 個のツール)
- 外部データベースへのリンク:PDB、EMBL、RefSeq、Ensembl などのデータベースへのリンクを提供します
- 文献参照:関連する出版物と引用情報を提供します
- 注釈の品質:各種注釈の品質スコアと信頼度を提供します
データのエクスポート・ユーティリティ(3 個のツール)
- 形式を指定したエクスポート:GFF、GenBank、EMBL、XML 形式でデータをエクスポートします
- アクセッションの検証:UniProt アクセッション番号が有効かどうかを確認します
- 分類学情報:詳細な分類学的分類と系統データを提供します
リソーステンプレート
- URI テンプレートを介してタンパク質データに直接アクセスし、シームレスに統合できます
インストール
前提条件
- Node.js(v16 以降)
- npm または yarn
セットアップ
- リポジトリをクローンします:
git clone <repository-url>
cd uniprot-server
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
Docker
Docker イメージのビルド
Docker イメージをビルドします:
docker build -t uniprot-mcp-server .
Docker での実行
コンテナを実行します:
docker run -i uniprot-mcp-server
MCP クライアントとの統合には、コンテナを直接使用できます:
{
"mcpServers": {
"uniprot": {
"command": "docker",
"args": ["run", "-i", "uniprot-mcp-server"],
"env": {}
}
}
}
Docker Compose(任意)
管理を簡単にするため、docker-compose.yml を作成します:
version: "3.8"
services:
uniprot-mcp:
build: .
image: uniprot-mcp-server
stdin_open: true
tty: true
次のコマンドで実行します:
docker-compose up
使用方法
MCP サーバーとして使用
このサーバーは、stdio を介して通信する MCP サーバーとして動作するように設計されています:
npm start
MCP クライアントの設定への追加
MCP クライアントの設定(例:Claude Desktop)にサーバーを追加します:
{
"mcpServers": {
"uniprot": {
"command": "node",
"args": ["/path/to/uniprot-server/build/index.js"],
"env": {}
}
}
}
利用可能なツール
1. search_proteins
名前、キーワード、または生物種で UniProt データベースを検索します。
パラメーター:
query(必須):検索クエリ(タンパク質名、キーワード、または複合検索)organism(任意):結果を絞り込む生物種名または分類 IDsize(任意):返す結果の数(1〜500、デフォルト:25)format(任意):出力形式 - json、tsv、fasta、xml(デフォルト:json)
例:
{
"query": "insulin",
"organism": "human",
"size": 5
}
2. get_protein_info
UniProt アクセッション番号を指定して、特定のタンパク質の詳細情報を取得します。
パラメーター:
accession(必須):UniProt アクセッション番号(例:P04637)format(任意):出力形式 - json、tsv、fasta、xml(デフォルト:json)
例:
{
"accession": "P01308",
"format": "json"
}
3. search_by_gene
遺伝子名またはシンボルでタンパク質を検索します。
パラメーター:
gene(必須):遺伝子名またはシンボル(例:BRCA1、INS)organism(任意):結果を絞り込む生物種名または分類 IDsize(任意):返す結果の数(1〜500、デフォルト:25)
例:
{
"gene": "BRCA1",
"organism": "human"
}
4. get_protein_sequence
タンパク質のアミノ酸配列を取得します。
パラメーター:
accession(必須):UniProt アクセッション番号format(任意):出力形式 - fasta、json(デフォルト:fasta)
例:
{
"accession": "P01308",
"format": "fasta"
}
5. get_protein_features
タンパク質の機能的特徴とドメインを取得します。
パラメーター:
accession(必須):UniProt アクセッション番号
例:
{
"accession": "P01308"
}
リソーステンプレート
このサーバーは、URI テンプレートを通じて UniProt データに直接アクセスできます。
1. タンパク質情報
- URI:
uniprot://protein/{accession} - 説明:UniProt アクセッションに対応するタンパク質の完全な情報
- 例:
uniprot://protein/P01308
2. タンパク質配列
- URI:
uniprot://sequence/{accession} - 説明:FASTA 形式のタンパク質配列
- 例:
uniprot://sequence/P01308
3. 検索結果
- URI:
uniprot://search/{query} - 説明:クエリに一致するタンパク質の検索結果
- 例:
uniprot://search/insulin
例
タンパク質の基本検索
ヒトのインスリンタンパク質を検索します。
// Tool call
{
"tool": "search_proteins",
"arguments": {
"query": "insulin",
"organism": "human",
"size": 10
}
}
タンパク質の詳細情報を取得
ヒトインスリンに関する包括的な情報を取得します。
// Tool call
{
"tool": "get_protein_info",
"arguments": {
"accession": "P01308"
}
}
遺伝子ベースの検索
BRCA1 遺伝子に関連するタンパク質を検索します。
// Tool call
{
"tool": "search_by_gene",
"arguments": {
"gene": "BRCA1",
"organism": "human"
}
}
タンパク質配列を取得
ヒトインスリンのアミノ酸配列を取得します。
// Tool call
{
"tool": "get_protein_sequence",
"arguments": {
"accession": "P01308",
"format": "fasta"
}
}
タンパク質の特徴を分析
ヒトインスリンの機能ドメインと特徴を取得します。
// Tool call
{
"tool": "get_protein_features",
"arguments": {
"accession": "P01308"
}
}
API 統合
このサーバーは UniProt REST API と連携し、タンパク質データにプログラムからアクセスできます。UniProt の詳細については、以下をご覧ください。
- UniProt ウェブサイト:https://www.uniprot.org/
- API ドキュメント:https://www.uniprot.org/help/api
- REST API ガイド:https://www.uniprot.org/help/api_queries
すべての API リクエストには以下が含まれます。
- User-Agent:
UniProt-MCP-Server/1.0.0 - タイムアウト:30 秒
- ベース URL:
https://rest.uniprot.org(プログラムからのアクセスのみ)
エラー処理
このサーバーには包括的なエラー処理が含まれています。
- 入力検証:すべてのパラメーターを型ガードで検証します
- API エラー:ネットワークエラーと API エラーを捕捉し、内容を説明するメッセージとともに返します
- タイムアウト処理:リクエストは 30 秒後にタイムアウトします
- グレースフルデグラデーション:部分的な失敗を適切に処理します
開発
プロジェクトをビルド
npm run build
開発モード
TypeScript コンパイラーを監視モードで実行します。
npm run dev
プロジェクト構成
uniprot-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json # Node.js dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
依存関係
- @modelcontextprotocol/sdk:サーバー実装用のコア MCP SDK
- axios:UniProt API リクエスト用の HTTP クライアント
- typescript:開発用の TypeScript コンパイラー
ライセンス
MIT ライセンス
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 該当する場合はテストを追加します
- プルリクエストを送信します
サポート
問題や質問がある場合は、以下をご確認ください。
- UniProt API のドキュメントを確認します
- Model Context Protocol の仕様を確認します
- リポジトリで Issue を作成します
Augmented Nature について
この包括的な UniProt MCP Server は、AI を活用したバイオインフォマティクスおよび計算生物学ソリューションの革新をリードする Augmented Nature が開発しています。Augmented Nature は、人工知能と生物学研究の橋渡しをする高度なツールの開発を専門とし、研究者が生物学的データからより深い知見を得られるよう支援しています。
ツールの完全なリファレンス
タンパク質解析の主要ツール
search_proteins- 名前、キーワード、または生物種で UniProt データベースを検索しますget_protein_info- アクセッション番号からタンパク質の詳細情報を取得しますsearch_by_gene- 遺伝子名またはシンボルからタンパク質を検索しますget_protein_sequence- アミノ酸配列を取得しますget_protein_features- 機能的特徴とドメインにアクセスします
比較・進化解析ツール
compare_proteins- 複数のタンパク質を並べて比較しますget_protein_homologs- 種をまたいで相同タンパク質を検索しますget_protein_orthologs- オーソログタンパク質を特定しますget_phylogenetic_info- 進化上の関係を取得します
構造・機能解析ツール
get_protein_structure- PDB の 3D 構造情報にアクセスしますget_protein_domains_detailed- 強化されたドメイン解析(InterPro、Pfam、SMART)get_protein_variants- 疾患関連の変異と突然変異を取得しますanalyze_sequence_composition- アミノ酸組成を解析します
生物学的コンテキストのツール
get_protein_pathways- 関連する生物学的経路(KEGG、Reactome)を取得しますget_protein_interactions- タンパク質間相互作用ネットワークを取得しますsearch_by_function- GO 用語または機能アノテーションで検索しますsearch_by_localization- 細胞内局在からタンパク質を検索します
バッチ処理・高度な検索ツール
batch_protein_lookup- 複数のアクセッション番号を効率的に処理しますadvanced_search- 複数のフィルターを使って複雑なクエリを実行しますsearch_by_taxonomy- 分類学的な分類から検索します
文献・相互参照ツール
get_external_references- 他のデータベース(PDB、EMBL、RefSeq など)へのリンクを取得しますget_literature_references- 関連する出版物と引用を取得しますget_annotation_confidence- アノテーションの品質スコアを取得します
データエクスポート・ユーティリティツール
export_protein_data- 専用形式(GFF、GenBank、EMBL、XML)でエクスポートしますvalidate_accession- アクセッション番号の有効性を確認しますget_taxonomy_info- 詳細な分類学的情報を取得します
変更履歴
v1.0.0 - 包括的なバイオインフォマティクスプラットフォーム
- 大幅な拡張:専門ツールを 21 個追加(合計 26 個)
- 比較解析:タンパク質の比較、相同体・オーソログの特定、系統解析
- 構造生物学:3D 構造の統合、詳細なドメイン解析、変異解析
- システム生物学:経路の統合、タンパク質間相互作用、機能分類
- 高度な検索:バッチ処理、複雑なフィルタリング、分類学的検索
- 文献の統合:外部データベースへのリンク、引用、アノテーションの信頼度
- データエクスポート:複数の専用形式(GFF、GenBank、EMBL、XML)
- Docker サポートの強化:セキュリティのベストプラクティスに基づくマルチステージビルド
- 包括的なドキュメント:ツールの完全なリファレンスと例
- Augmented Nature が開発:プロフェッショナルなバイオインフォマティクスプラットフォーム
引用
このプロジェクトを研究や出版物で使用する場合は、以下の形式で引用してください。
author = {Moudather Chelbi},
title = {UniProt MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/Augmented-Nature-UniProt-MCP-Server/},
note = {Accessed: 2025-06-29}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。