生物数据查询服务

一个基于Model Context Protocol (MCP)的服务器,用于与Biomart数据库交互,提供数据集发现、属性过滤、数据检索和ID转换等功能。

  • by jzinno
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 jzinno/biomart-mcp

使用说明

生物标记MCP

与Biomart接口的MCP服务器

模型上下文协议 (MCP)是一个开放协议,它规范了应用程序如何为开发的LLM提供上下文 Anthropic在这里,我们使用 MCP python sdk 创建一个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

光标

通过Curor的代理模式,其他模型也可以利用MCP服务器,例如OpenAI或DeepSeek的服务器。点击光标设置齿轮并导航到 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"
            ]
        }
    }
}

格拉玛

发展

# Create a virtual environment
uv venv

# MacOS/Linux
source .venv/bin/activate

# Windows
.venv\Scripts\activate

uv sync #or uv add mcp[cli] pybiomart

# Run the server in dev mode
mcp dev biomart-mcp.py

特性

Biomart MCP提供了几种与Biomart数据库交互的工具:

  • 集市和数据集发现:列出可用的集市和数据集,以探索Biomart数据库结构
  • 属性和过滤器探索:查看特定数据集的通用或所有可用属性和过滤器
  • 数据检索:使用特定属性和过滤器查询生物标记以获取生物数据
  • ID转换:在不同的生物标识符之间进行转换(例如,将基因符号转换为Ensembl ID)

贡献

欢迎拉取请求!关于发展的一些小提示:

  • 我们只使用 @mcp.tool() 从设计上讲,这是为了最大限度地提高与支持MCP的客户端的兼容性,如 文档.
  • 我们正在使用 @lru_cache 以缓存计算上昂贵的函数的结果或进行外部API调用。
  • 我们需要注意不要打开模型的上下文窗口,例如,您将看到 df.to_csv(index=False).replace("\r", "") 在许多地方。这种csv风格的返回比类似的东西更具令牌效率 df.to_string() 其中大多数标记是空白。还要注意,从染色体或类似的大请求中提取所有基因对于上下文窗口来说也太大了。

未来潜在特征

当然,还有更多的功能可以添加,有些可能超出了名称的范围 biomart-mcp。以下是一些想法:

  • 为资源网站添加网络抓取功能 bs4例如,我们获得了NOTCH1的Ensembl基因ID,那么在某些情况下,收集整理后的基因ID可能会很有用 Comments and Description Text from UniProtKB 部分从 这是UCSC上的页面
  • $...$