生物数据助手添加福利群:解决AI开发者的「MCP实战痛点」
模型上下文协议(MCP)是由Anthropic开发的开放协议,用于标准化应用程序如何为大型语言模型提供上下文。在这里,我们使用MCP Python SDK创建了一个通过pybiomart包与Biomart交互的MCP服务器。

有一个简短的演示视频,展示了Claude Desktop上运行的MCP服务器。
要通过Smithery自动为Claude Desktop安装Biomart MCP:
npx -y @smithery/cli install @jzinno/biomart-mcp --client claude
git clone https://github.com/jzinno/biomart-mcp.git
cd biomart-mcp

uv run --with mcp[cli] mcp install --with pybiomart biomart-mcp.py
通过Cursor的代理模式,其他模型也可以利用MCP服务器,例如来自OpenAI或DeepSeek的模型。点击Cursor设置齿轮图标,导航到MCP,然后将MCP服务器添加到全局配置中,或者通过将.cursor/mcp.json添加到项目中,将其添加到项目范围。
示例.cursor/mcp.json:
{
"mcpServers": {
"Biomart": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"pybiomart",
"mcp",
"run",
"/your/path/to/biomart-mcp.py"
]
}
}
}

# 创建虚拟环境
uv venv
# MacOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
uv sync #或 uv add mcp[cli] pybiomart
# 以开发模式运行服务器
mcp dev biomart-mcp.py

Biomart-MCP提供了多种工具与Biomart数据库交互:
欢迎提交拉取请求!关于开发的一些小提示:
@mcp.tool(),这是为了最大化与支持MCP的客户端的兼容性,如文档所示。@lru_cache来缓存计算成本高或进行外部API调用的函数的结果。df.to_csv(index=False).replace("\r", "")。这种CSV风格的返回比df.to_string()更节省token,因为后者的大部分token是空白。还要注意,从染色体中提取所有基因或类似的大请求也会超出上下文窗口。当然可以添加更多功能,其中一些可能超出了biomart-mcp名称的范围。这里有一些想法:
bs4进行资源网站的网络抓取,例如我们获取了NOTCH1的Ensembl基因ID,然后在某些情况下,从UCSC页面抓取整理的Comments and Description Text from UniProtKB部分可能很有用。