🚀 非公式UniProt MCPサーバー
このサーバーは、UniProtタンパク質データベースへの高度なアクセスを提供する包括的なモデルコンテキストプロトコル(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サーバーとしての使用
このサーバーは、標準入出力を介して通信する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(オプション):結果をフィルタリングする生物種名または分類学ID
size(オプション):返す結果の数(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(オプション):結果をフィルタリングする生物種名または分類学ID
size(オプション):返す結果の数(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": "search_proteins",
"arguments": {
"query": "insulin",
"organism": "human",
"size": 10
}
}
ヒトインスリンの詳細情報を取得する
{
"tool": "get_protein_info",
"arguments": {
"accession": "P01308"
}
}
BRCA1遺伝子に関連するタンパク質を検索する
{
"tool": "search_by_gene",
"arguments": {
"gene": "BRCA1",
"organism": "human"
}
}
ヒトインスリンのアミノ酸配列を取得する
{
"tool": "get_protein_sequence",
"arguments": {
"accession": "P01308",
"format": "fasta"
}
}
ヒトインスリンの機能ドメインと特徴を分析する
{
"tool": "get_protein_features",
"arguments": {
"accession": "P01308"
}
}
📚 ドキュメント
このサーバーは、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 # メインサーバー実装
├── build/ # コンパイルされたJavaScript出力
├── package.json # Node.js依存関係とスクリプト
├── tsconfig.json # TypeScript設定
└── README.md # このファイル
依存関係
- @modelcontextprotocol/sdk:サーバー実装のためのコアMCP SDK
- axios:UniProt APIリクエストのためのHTTPクライアント
- typescript:開発用のTypeScriptコンパイラ
📄 ライセンス
MITライセンス
コントリビューション
- リポジトリをフォークします。
- 機能ブランチを作成します。
- 変更を加えます。
- 適用可能な場合はテストを追加します。
- プルリクエストを送信します。
サポート
問題や質問については以下の手順を試してください:
- UniProt APIドキュメントを確認します。
- Model Context Protocol仕様を確認します。
- リポジトリに問題を登録します。
Augmented Natureについて
この包括的なUniProt MCPサーバーは、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による開発:専門的なバイオインフォマティクスプラットフォーム
引用
このプロジェクトを研究や出版物で使用する場合は、以下のように引用してください:
@misc{uniprotmcp2025,
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}
}