🚀 非官方人類蛋白質圖譜MCP服務器
這是一個全面的模型上下文協議(MCP)服務器,用於訪問人類蛋白質圖譜(Human Protein Atlas)的數據,可提供蛋白質表達、亞細胞定位、病理學等多方面的信息。
🚀 快速開始
本人類蛋白質圖譜MCP服務器可讓你無縫訪問人類蛋白質圖譜(https://www.proteinatlas.org)中豐富的蛋白質數據。該服務器提供以下工具和資源:
- 蛋白質搜索與信息查詢:可通過蛋白質名稱、基因符號或描述來搜索蛋白質。
- 組織表達:獲取特定組織的表達譜。
- 亞細胞定位:檢索蛋白質的定位數據。
- 病理學數據:訪問與癌症相關的蛋白質信息。
- 血液和大腦表達:提供血細胞和大腦區域的特定表達數據。
- 抗體信息:獲取抗體的驗證和染色數據。
- 批量處理:可高效查詢多個蛋白質。
- 高級搜索:支持使用多個過濾器進行復雜查詢。
✨ 主要特性
核心功能
- 🔍 全面搜索:使用各種標識符和關鍵詞查找蛋白質。
- 🧬 多模態數據:可訪問表達、定位和病理學信息。
- 🩸 專業圖譜:集成了血液圖譜和大腦圖譜的數據。
- 📊 批量處理:能高效處理多個蛋白質查詢。
- 🔬 研究級數據:提供高質量、經過同行評審的蛋白質信息。
- ⚡ 快速響應:經過優化,可快速檢索數據。
可用數據類型
- 基本蛋白質信息
- 基因符號和Ensembl ID。
- 蛋白質描述和分類。
- UniProt交叉引用。
- 表達數據
- 特定組織的RNA表達。
- 血細胞表達譜。
- 大腦區域表達數據。
- 單細胞表達信息。
- 亞細胞定位
- 病理學信息
- 抗體數據
📦 安裝指南
前提條件
- Node.js 18 或更高版本。
- npm 或 yarn 包管理器。
安裝步驟
- 克隆或下載服務器代碼。
- 安裝依賴項:
cd proteinatlas-server
npm install
- 構建服務器:
npm run build
- 服務器現已可以使用!
💻 使用示例
命令行方式
直接運行服務器:
npm start
node build/index.js
MCP客戶端集成
將以下內容添加到你的MCP客戶端配置中:
{
"mcpServers": {
"proteinatlas": {
"command": "node",
"args": ["/path/to/proteinatlas-server/build/index.js"]
}
}
}
基礎用法
search_proteins
通過蛋白質名稱、基因符號或描述在人類蛋白質圖譜中搜索蛋白質。
參數:
query(必需):搜索查詢詞(基因名稱、蛋白質名稱或關鍵詞)。
format:輸出格式(json、tsv),默認為json。
columns:結果中要包含的特定列。
maxResults:最大結果數(1 - 10000),默認為100。
compress:是否壓縮響應,默認為false。
示例:
{
"query": "BRCA1",
"format": "json",
"maxResults": 10
}
get_protein_info
通過基因符號獲取特定蛋白質的詳細信息。
參數:
gene(必需):基因符號(例如,BRCA1、TP53)。
format:輸出格式(json、tsv、xml、trig),默認為json。
get_protein_by_ensembl
使用Ensembl基因ID獲取蛋白質信息。
參數:
ensemblId(必需):Ensembl基因ID(例如,ENSG00000139618)。
format:輸出格式(json、tsv、xml、trig),默認為json。
高級用法
advanced_search
使用多個過濾器和條件進行高級搜索。
參數:
query:基本搜索查詢詞。
tissueSpecific:特定組織表達過濾器。
subcellularLocation:亞細胞定位過濾器。
cancerPrognostic:癌症預後過濾器。
proteinClass:蛋白質類別過濾器。
chromosome:染色體過濾器。
antibodyReliability:抗體可靠性過濾器。
format:輸出格式(json、tsv),默認為json。
columns:結果中要包含的特定列。
maxResults:最大結果數(1 - 10000),默認為100。
batch_protein_lookup
同時查詢多個蛋白質。
參數:
genes(必需):基因符號數組(最多100個)。
format:輸出格式(json、tsv),默認為json。
columns:結果中要包含的特定列。
compare_expression_profiles
比較多個蛋白質的表達譜。
參數:
genes(必需):要比較的基因符號數組(2 - 10個)。
expressionType:表達數據類型(tissue、brain、blood、single_cell),默認為tissue。
format:輸出格式(json、tsv),默認為json。
📚 詳細文檔
可用資源
服務器提供了幾個資源模板,用於直接訪問數據:
資源模板
hpa://protein/{gene}:基因符號對應的完整蛋白質圖譜數據。
hpa://ensembl/{ensemblId}:Ensembl基因ID對應的完整蛋白質圖譜數據。
hpa://tissue/{gene}:基因的特定組織表達數據。
hpa://subcellular/{gene}:基因的亞細胞定位信息。
hpa://pathology/{gene}:基因的癌症和病理學數據。
hpa://blood/{gene}:基因的血細胞表達數據。
hpa://brain/{gene}:基因的大腦區域表達數據。
hpa://antibody/{gene}:基因的抗體驗證和染色信息。
hpa://search/{query}:與查詢匹配的蛋白質搜索結果。
示例資源訪問
const resource = await client.readResource("hpa://tissue/BRCA1");
const searchResults = await client.readResource("hpa://search/insulin");
數據來源
本服務器訪問以下數據源:
- 人類蛋白質圖譜:主要的蛋白質圖譜數據庫。
- 組織圖譜:正常組織表達數據。
- 血液圖譜:血細胞表達譜。
- 大腦圖譜:大腦區域表達數據。
- 病理學圖譜:與癌症相關的蛋白質數據。
- 細胞圖譜:單細胞表達信息。
速率限制和最佳實踐
- 服務器實施了適當的速率限制,以遵守人類蛋白質圖譜API的規定。
- 對於批量操作,考慮將大請求拆分為較小的塊。
- 儘可能使用特定的列選擇來減少響應大小。
- 在適當的情況下緩存頻繁訪問的數據。
錯誤處理
服務器提供全面的錯誤處理:
- 參數無效:對於不正確的輸入提供清晰的錯誤消息。
- 網絡問題:對臨時故障提供重試邏輯。
- 數據格式錯誤:優雅處理意外的響應格式。
- 速率限制:採用適當的退避策略。
🔧 技術細節
從源代碼構建
npm install
npm run build
npm run dev
測試
npm start
🤝 貢獻說明
歡迎貢獻代碼!請確保:
- 代碼遵循TypeScript最佳實踐。
- 錯誤處理全面。
- 為新功能更新文檔。
- 為新功能包含測試。
📄 許可證
本項目採用MIT許可證,詳情請參閱LICENSE文件。
🛠️ 支持與反饋
若有問題和疑問:
- 查看人類蛋白質圖譜文檔:https://www.proteinatlas.org/about/help
- 查看MCP規範:https://modelcontextprotocol.io/
- 通過項目倉庫提交問題。
🙏 致謝
- 感謝人類蛋白質圖譜團隊提供全面的蛋白質數據庫。
- 感謝模型上下文協議社區提供標準化的通信框架。
- 感謝TypeScript和Node.js社區提供的開發工具。
本服務器為研究和教育目的提供對人類蛋白質圖譜數據的編程訪問。在出版物中使用此數據時,請引用適當的來源。
引用說明
如果您在研究或出版物中使用此項目,請按以下方式引用:
@misc{proteinatlasmcp2025,
author = {Moudather Chelbi},
title = {Human Protein Atlas MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ProteinAtlas-MCP-Server/},
note = {Accessed: 2025-06-29}