UniProt MCP Server

Accede a la información de proteínas de UniProt, incluyendo datos de función y secuencia.

Documentación

MseeP.ai Security Assessment Badge

Servidor MCP de UniProt

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a la información de proteínas de UniProt. Este servidor permite a los asistentes de IA obtener información sobre funciones y secuencias de proteínas directamente desde UniProt.

UniProt Server MCP server

Características

  • Obtener información de proteínas por número de acceso de UniProt
  • Recuperación por lotes de múltiples proteínas
  • Caché para mejorar el rendimiento (TTL de 24 horas)
  • Manejo de errores y registro de actividades
  • La información incluye:
    • Nombre de la proteína
    • Descripción de la función
    • Secuencia completa
    • Longitud de la secuencia
    • Organismo

Inicio rápido

  1. Asegúrate de tener Python 3.10 o superior instalado
  2. Clona este repositorio:
    git clone https://github.com/TakumiY235/uniprot-mcp-server.git
    cd uniprot-mcp-server
    
  3. Instala las dependencias:
    # Using uv (recommended)
    uv pip install -r requirements.txt
    
    # Or using pip
    pip install -r requirements.txt
    

Configuración

Agrega a tu archivo de configuración de Claude Desktop:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "uniprot": {
      "command": "uv",
      "args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"]
    }
  }
}

Ejemplos de uso

Después de configurar el servidor en Claude Desktop, puedes hacer preguntas como:

Can you get the protein information for UniProt accession number P98160?

Para consultas por lotes:

Can you get and compare the protein information for both P04637 and P02747?

Referencia de la API

Herramientas

  1. get_protein_info

    • Obtener información de una sola proteína
    • Parámetro requerido: accession (número de acceso de UniProt)
    • Ejemplo de respuesta:
      {
        "accession": "P12345",
        "protein_name": "Example protein",
        "function": ["Description of protein function"],
        "sequence": "MLTVX...",
        "length": 123,
        "organism": "Homo sapiens"
      }
      
  2. get_batch_protein_info

    • Obtener información de múltiples proteínas
    • Parámetro requerido: accessions (matriz de números de acceso de UniProt)
    • Devuelve una matriz de objetos con información de proteínas

Desarrollo

Configuración del entorno de desarrollo

  1. Clona el repositorio
  2. Crea un entorno virtual:
    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Instala las dependencias de desarrollo:
    pip install -e ".[dev]"
    

Ejecutar pruebas

pytest

Estilo de código

Este proyecto utiliza:

  • Black para el formato de código
  • isort para ordenar importaciones
  • flake8 para linting
  • mypy para verificación de tipos
  • bandit para comprobaciones de seguridad
  • safety para verificación de vulnerabilidades de dependencias

Ejecuta todas las comprobaciones:

black .
isort .
flake8 .
mypy .
bandit -r src/
safety check

Detalles técnicos

  • Construido con el SDK de Python de MCP
  • Utiliza httpx para solicitudes HTTP asíncronas
  • Implementa caché con TTL de 24 horas usando una caché basada en OrderedDict
  • Maneja límites de velocidad y reintentos
  • Proporciona mensajes de error detallados

Manejo de errores

El servidor maneja varios escenarios de error:

  • Números de acceso no válidos (respuestas 404)
  • Problemas de conexión con la API (errores de red)
  • Límites de velocidad (respuestas 429)
  • Respuestas malformadas (errores de análisis JSON)
  • Gestión de caché (límites de TTL y tamaño)

Contribuciones

¡Agradecemos las contribuciones! No dudes en enviar una Solicitud de Extracción (Pull Request). Así es como puedes contribuir:

  1. Haz un fork del repositorio
  2. Crea tu rama de características (git checkout -b feature/amazing-feature)
  3. Realiza tus cambios (git commit -m 'Add some amazing feature')
  4. Envía los cambios a la rama (git push origin feature/amazing-feature)
  5. Abre una Solicitud de Extracción

Asegúrate de actualizar las pruebas según corresponda y de seguir el estilo de código existente.

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.

Agradecimientos

  • UniProt por proporcionar la API de datos de proteínas
  • Anthropic por la especificación del Protocolo de Contexto de Modelo
  • Contribuyentes que ayudan a mejorar este proyecto