Biomart MCP
Interfaceie com o Biomart, uma ferramenta de consulta de dados biológicos, usando o pacote Python pybiomart.
Documentação
Biomart MCP
Um servidor MCP para interface com Biomart
Model Context Protocol (MCP) é um protocolo aberto que padroniza como aplicações fornecem contexto para LLMs, desenvolvido pela Anthropic. Aqui usamos o MCP python-sdk para criar um servidor MCP que interage com Biomart através do pacote pybiomart.

Há um vídeo de demonstração mostrando o servidor MCP em ação no Claude Desktop.
Instalação
Instalando via Smithery
Para instalar o Biomart MCP para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install @jzinno/biomart-mcp --client claude
Clonar o repositório
git clone https://github.com/jzinno/biomart-mcp.git
cd biomart-mcp
Claude Desktop
uv run --with mcp[cli] mcp install --with pybiomart biomart-mcp.py
Cursor
Através do modo de agente do Cursor, outros modelos também podem aproveitar servidores MCP, como os da OpenAI ou DeepSeek. Clique na engrenagem de configurações do Cursor e navegue até MCP e adicione o servidor MCP à configuração global ou adicione-o a um escopo de projeto adicionando .cursor/mcp.json ao projeto.
Exemplo .cursor/mcp.json:
{
"mcpServers": {
"Biomart": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"pybiomart",
"mcp",
"run",
"/your/path/to/biomart-mcp.py"
]
}
}
}
Glama
Desenvolvimento
# 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
Recursos
O Biomart-MCP fornece várias ferramentas para interagir com bancos de dados Biomart:
- Descoberta de Marts e Datasets: Liste marts e datasets disponíveis para explorar a estrutura do banco de dados Biomart
- Exploração de Atributos e Filtros: Visualize atributos e filtros comuns ou todos os disponíveis para datasets específicos
- Recuperação de Dados: Consulte o Biomart com atributos e filtros específicos para obter dados biológicos
- Tradução de IDs: Converta entre diferentes identificadores biológicos (por exemplo, símbolos de genes para IDs Ensembl)
Contribuindo
Pull requests são bem-vindos! Algumas notas sobre o desenvolvimento:
- Estamos usando apenas
@mcp.tool()aqui por design, para maximizar a compatibilidade com clientes que suportam MCP, conforme visto nos docs. - Estamos usando
@lru_cachepara cache de resultados de funções que são computacionalmente caras ou fazem chamadas de API externas. - Precisamos ter cuidado para não estourar a janela de contexto do modelo, por exemplo, você verá
df.to_csv(index=False).replace("\r", "")em vários lugares. Esse retorno em estilo csv é muito mais eficiente em tokens do que algo comodf.to_string(), onde a maioria dos tokens são espaços em branco. Também é importante lembrar que puxar todos os genes de um cromossomo ou requisições igualmente grandes também serão grandes demais para a janela de contexto.
Possíveis Recursos Futuros
Há, claro, muitos outros recursos que poderiam ser adicionados, alguns talvez além do escopo do nome biomart-mcp. Aqui vão algumas ideias:
- Adicionar web scraping para sites de recursos com
bs4, por exemplo, obtivemos o ID do gene Ensembl para NOTCH1, então talvez em alguns casos seja útil capturar a seçãoComments and Description Text from UniProtKBconsolidada de sua página no UCSC - $...$