Biomart MCP

Interfaceie com o Biomart, uma ferramenta de consulta de dados biológicos, usando o pacote Python pybiomart.

Documentação

Biomart MCP

smithery badge Verified on MseeP

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.

Demo showing biomart-mcp in action

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

Biomart MCP server

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_cache para 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 como df.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ção Comments and Description Text from UniProtKB consolidada de sua página no UCSC
  • $...$