Biomart MCP

Interfaz con Biomart, una herramienta de consulta de datos biológicos, utilizando el paquete Python pybiomart.

Documentación

Biomart MCP

smithery badge Verified on MseeP

Un servidor MCP para interactuar con Biomart

El Model Context Protocol (MCP) es un protocolo abierto que estandariza cómo las aplicaciones proporcionan contexto a los LLMs, desarrollado por Anthropic. Aquí usamos el MCP python-sdk para crear un servidor MCP que interactúa con Biomart a través del paquete pybiomart.

Demo showing biomart-mcp in action

Hay un video de demostración corto que muestra el servidor MCP en acción en Claude Desktop.

Instalación

Instalación mediante Smithery

Para instalar Biomart MCP para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @jzinno/biomart-mcp --client claude

Clonar el repositorio

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

A través del modo agente de Cursor, otros modelos también pueden aprovechar los servidores MCP, como los de OpenAI o DeepSeek. Haga clic en el engranaje de configuración de Cursor y navegue hasta MCP y agregue el servidor MCP a la configuración global o agréguelo a un ámbito de proyecto agregando .cursor/mcp.json al proyecto.

Ejemplo .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

Desarrollo

# 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

Características

Biomart-MCP proporciona varias herramientas para interactuar con las bases de datos de Biomart:

  • Descubrimiento de Mart y Conjuntos de Datos: Listar los marts y conjuntos de datos disponibles para explorar la estructura de la base de datos de Biomart
  • Exploración de Atributos y Filtros: Ver atributos y filtros comunes o todos los disponibles para conjuntos de datos específicos
  • Recuperación de Datos: Consultar Biomart con atributos y filtros específicos para obtener datos biológicos
  • Traducción de ID: Convertir entre diferentes identificadores biológicos (por ejemplo, símbolos de genes a IDs de Ensembl)

Contribuciones

¡Las solicitudes de extracción son bienvenidas! Algunas notas breves sobre el desarrollo:

  • Solo usamos @mcp.tool() aquí por diseño, para maximizar la compatibilidad con clientes que soportan MCP como se ve en los docs.
  • Usamos @lru_cache para almacenar en caché los resultados de funciones que son computacionalmente costosas o que realizan llamadas a API externas.
  • Debemos tener cuidado de no expandir la ventana de contexto del modelo, por ejemplo, verás df.to_csv(index=False).replace("\r", "") en muchos lugares. Este estilo de retorno CSV es mucho más eficiente en tokens que algo como df.to_string() donde la mayoría de los tokens son espacios en blanco. También ten en cuenta que extraer todos los genes de un cromosoma o una solicitud similarmente grande también será demasiado grande para la ventana de contexto.

Posibles Características Futuras

Por supuesto, hay muchas más características que podrían agregarse, algunas quizás más allá del alcance del nombre biomart-mcp. Aquí hay algunas ideas:

  • Agregar webscraping para sitios de recursos con bs4, por ejemplo, obtuvimos el ID de gen Ensembl para NOTCH1 y quizás en algunos casos sería útil capturar la sección recopilada Comments and Description Text from UniProtKB de su página en UCSC
  • $...$