Token导航 LogoToken导航TokenDH.com
Biosamples MCP logo
数据服务stdio官方级别未说明来源级核验

Biosamples MCP

MCP Server

一个MCP服务器,为AI代理提供结构化、可追溯的EMBL-EBI BioSamples数据库访问功能,支持搜索、获取和提交生物样本元数据。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
生物信息学数据分析PythonClaude元数据管理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Anas9-8

提供方

Anas9-8

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements-ui.txt

详细介绍

生物样本mcp

一个MCP服务器,为AI代理提供结构化、可追溯的EMBL-EBI生物样本数据库访问权限。无需触摸网络浏览器即可搜索、获取和提交生物样本元数据。

目录

- 图1-系统概述 - 图2-提交工作流程 - 图3-文件结构

- 首页 - 架构页面 - 搜索样本 - 获取样本详细信息 - 人工智能辅助提交 - 自然语言搜索

为什么这个项目很重要

BioSamples保存了来自全球实验室和医院的数百万个生物样本的元数据。REST API适用于直接查询,但AI代理无法可靠地使用它,他们需要显式的工具模式、定义的输入和可预测的输出来避免虚构。

该项目将BioSamples API封装在MCP服务器中。每个工具都有一个严格的模式。每个响应都直接来自API。智能提交工具添加了一个小型NLP层,可以从纯英文文本中提取结构化字段,当研究人员想要用自己的话描述样本而不是填写表格时非常有用。

在开发过程中,向生产数据库提交了两个样品:SAMEA122005222和SAMEA122005523。这两个都在EMBL-EBI网站上公开可见,这证实了提交管道与真正的API不符。

系统架构

下图显示了系统的所有组件是如何连接和通信的。每个层都是彩色编码的:蓝色表示客户端,绿色表示服务器,橙色表示标准工具,红色表示AI驱动工具,紫色表示智能层,灰色表示外部API。

______________________________________________________________________

图1——系统概述

System Overview

  • 三种客户端类型:端口8501上的Streamlit UI、通过stdio的Claude Desktop和任何REST客户端
  • FastAPI REST服务器(端口8000)处理HTTP流量;FastMCP处理克劳德桌面
  • 五个MCP工具,三个标准工具和两个AI驱动工具
  • nlp_parser.py和checklist_validator.py位于这两个智能工具之后
  • 一切最终都会进入EMBL-EBI BioSamples REST API

______________________________________________________________________

图2——人工智能辅助提交工作流程

Submission Workflow

  • 步骤1:用户编写一个简单的英文示例描述
  • 步骤2:nlp_parser.py自动提取生物体、组织、疾病、位置和日期
  • 步骤3:checklist_validator.py检查必填字段
  • 步骤4:如果缺少字段,则向用户返回澄清问题
  • 步骤5:将用户答案与提取的元数据合并
  • 第6步:将完整记录提交给EMBL-EBI API
  • 步骤7:返回真实生物样本登录

______________________________________________________________________

图3——存储库文件结构

File Structure

  • src/包含服务器、工具、NLP解析器和检查表验证器
  • ui/具有Streamlit应用程序和五个页面模块
  • 21项测试/,全部通过
  • 检查表/保存两个验证JSON文件(默认+human_sample)
  • Docker和Docker组成一个命令部署
  • GitHub Actions CI在每次向main推送时运行

______________________________________________________________________

现场演示证据

在开发过程中,这两个样本被提交到真实的EMBL-EBI生物样本数据库:

加入描述通过提交
SAMEA122005222人类血液样本,德国提交生物样本(结构化)
SAMEA122005223人类肝活检,伦敦,肝硬化smart_submit_biosample(简明英语)

实时查看:https://www.ebi.ac.uk/biosamples/samples/SAMEA122005222

实时查看:https://www.ebi.ac.uk/biosamples/samples/SAMEA122005223

网络界面

Streamlit界面提供了对所有五个MCP工具的可视化访问。以下屏幕截图显示了每个页面,并简要描述了其主要功能。

启动界面:

# Terminal 1 — start the MCP server
export $(cat .env) && uvicorn src.server:app --reload

# Terminal 2 — start the Streamlit UI
pip install -r requirements-ui.txt
streamlit run ui/app.py

打开http://localhost:8501在您的浏览器中。

______________________________________________________________________

首页

Home Page

  • 服务器状态指示灯,当MCP服务器在端口8000上可访问时为绿色
  • 列出的所有五个工具都有一行描述
  • 快速演示:点击获取SAMEA122005222,确认连接成功

______________________________________________________________________

架构页面

Architecture Page

  • 三个颜色编码的图表,涵盖系统概述、提交工作流程和文件结构
  • 在浏览器中呈现为实时HTML,而不是静态图像
  • 在技术演示和面试演示中表现良好

______________________________________________________________________

搜索样本

Search Results

  • 在BioSamples数据库中进行全文关键字搜索
  • 结果表,包括登录、生物体和疾病栏
  • 登录ID直接链接到EMBL-EBI记录页面
  • 一键示例查询:“人类”、“血液”、“肝脏”

______________________________________________________________________

获取样本详细信息

Fetch Sample

  • 粘贴任何条目以提取完整的元数据记录
  • 将基本信息与生物属性分离的两列布局
  • 可扩展部分提供原始特性
  • 预装SAMEA122005222和SAMEA122005523的按钮,用于快速测试

______________________________________________________________________

人工智能辅助提交

AI Submit Form

AI Submit Clarification

  • 用简单的英语写一个示例描述,而不是填写表格
  • NLP解析器自动提取生物体、组织、疾病、位置和日期
  • 在默认(最小字段)或human_sample(更严格)检查表之间进行选择
  • 缺失的字段会引发特定的澄清问题
  • 一旦一切检查完毕,提交样品并返回登记表
  • SAMEA122005222和SAMEA122005523均通过此页面提交

______________________________________________________________________

自然语言搜索

NL Search

  • 用简单的英语键入查询,没有特殊语法
  • 服务器显示它提取了哪些过滤器(生物体、组织、疾病、位置)
  • 结果以登录、生物体、组织和疾病栏返回
  • 示例按钮:“人类肺癌”、“柏林2022年人类肾脏活检”、“德国新冠肺炎人类血液”

______________________________________________________________________

快速开始

# Clone the repository
git clone https://github.com/Anas9-8/biosamples-mcp
cd biosamples-mcp

# Copy environment file and add your token (only needed for submit)
cp .env.example .env

# Start with Docker Compose
docker-compose up --build

# Check it's running
curl http://localhost:8000/health
# {"status": "ok", "version": "1.0.0"}

# List available tools
curl http://localhost:8000/tools

MCP工具参考

工具目的输入输出
search_biosamples跨生物样本的关键字搜索query: str匹配样本列表
fetch_biosample按登录方式提供完整元数据accession: str完整的样品记录
submit_biosample提交结构化样本元数据字段+AAP令牌分配的登录
smart_submit_biosample用简单的英语提交description: str加入或澄清问题
natural_search_biosamplesNL查询到结构化搜索query: str过滤结果+解释

示例:搜索

curl -X POST http://localhost:8000/tools/search_biosamples/call \
  -H "Content-Type: application/json" \
  -d '{"query": "human lung cancer", "organism": "Homo sapiens"}'

示例:提取

curl -X POST http://localhost:8000/tools/fetch_biosample/call \
  -H "Content-Type: application/json" \
  -d '{"accession": "SAMEA112654119"}'

用例

医院研究团队经常需要找到与患者队列、相同组织、相同疾病、相似收集窗口相匹配的公共样本。该服务器允许AI助手以编程方式运行这些搜索,而不是通过BioSamples web界面点击。

向公共档案馆提交实验样本的制药团队可以使用智能提交工具,避免重复填写相同的元数据表格。用简单的英语描述样品,回答任何澄清问题,并提交记录。

构建人工智能辅助分析管道的生物信息学团队可以将此MCP服务器直接连接到他们的LLM层。工具模式可防止产生幻觉的加入,并确保每次样本查找都返回真实数据。

该项目最初是EMBL-EBI GSoC 2026项目想法#16(导师:Dipayan Gupta)的独立实施,这是在编码期开始之前证明概念有效的好方法。参考:https://www.ebi.ac.uk/about/events/gsoc/

路线图

静态检查表JSON文件可以工作,但理想情况下,服务器应该从BioSamples API实时获取它们,以便它们自动保持最新。澄清工作流程是单循环的,一个适当的会话存储会使多步骤提交更清晰。响应缓存将有助于重复查询。由于MCP工具模式相同,该架构自然扩展到其他EMBL-EBI资源,如ENA和ArrayExpress。

技术栈

  • Python 3.11 --贯穿始终的类型提示,现代异步模式
  • 快速API --带有自动OpenAPI文档的异步HTTP服务器
  • httpx -用于BioSamples API调用的异步HTTP客户端
  • Pydantic v2 --工具输入和输出的数据验证
  • MCP-SDK --模型上下文协议集成
  • 码头工人 --非root用户的容器化部署
  • GitHub 操作 --每次向main推送CI

本地开发

# Install dependencies
pip install -r requirements.txt

# Run the server locally
uvicorn src.server:app --reload

# Run tests
pytest tests/ -v

# Lint
ruff check src/

目录标签

目录标签

生物信息学数据分析PythonClaude元数据管理本地部署数据库访问AI工具NLP处理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP