Skip to main content
Glama
JackKuo666

PubTator-MCP-Server

by JackKuo666

Servidor MCP de PubTator

insignia de herrería

🔍 Un servidor de anotación de literatura biomédica y minería de relaciones basado en PubTator3, que proporciona un acceso conveniente a través de la interfaz MCP.

El servidor MCP de PubTator proporciona a los asistentes de IA acceso al sistema de anotación de literatura biomédica PubTator3 mediante el Protocolo de Contexto de Modelo (MCP). Permite a los modelos de IA buscar literatura científica mediante programación, obtener información de anotaciones y analizar relaciones entre entidades.

🤝 Contribuir • 📝 Informar problemas

✨ Características principales

  • Exportación de anotaciones de literatura: Admite la exportación de resultados de anotaciones de PubTator en múltiples formatos ✅

  • 🚀 Búsqueda de ID de entidad: consulta identificadores estándar para conceptos biológicos a través de texto libre ✅

  • 📊 Minería de Relaciones: Descubre relaciones biomédicas entre entidades ✅

  • 📄 Búsqueda de literatura: Admite la recuperación de literatura mediante palabras clave e ID de entidad ✅

  • 🧠 Procesamiento por lotes: Admite la exportación por lotes de información de anotaciones de los resultados de búsqueda ✅

Related MCP server: mcp-pubmed

🚀 Inicio rápido

Requisitos

  • Python 3.10+

  • Biblioteca FastMCP

Instalación

Vía Smithery

Utilice Smithery para instalar automáticamente PubTator Server:

Claude
npx -y @smithery/cli@latest install @JackKuo666/pubtator-mcp-server --client claude --config "{}"
Cursor

Pegar en Configuración → Configuración del cursor → MCP → Agregar nuevo servidor:

  • Mac/Linux

npx -y @smithery/cli@latest run @JackKuo666/pubtator-mcp-server --client cursor --config "{}" 
Windsurf
npx -y @smithery/cli@latest install @JackKuo666/pubtator-mcp-server --client windsurf --config "{}"
Línea C
npx -y @smithery/cli@latest install @JackKuo666/pubtator-mcp-server --client cline --config "{}"

Instalación manual

  1. Clonar el repositorio:

    git clone https://github.com/JackKuo666/PubTator-MCP-Server.git
    cd PubTator-MCP-Server
  2. Instalar dependencias:

    pip install -r requirements.txt

📊 Uso

Ejecutar el servidor directamente

Inicie el servidor MCP:

python pubtator_server.py

El servidor ahora admite los transportes stdio y TCP. De forma predeterminada, utiliza el transporte TCP. Puede configurar las siguientes variables de entorno:

  • MCP_TRANSPORT : Establézcalo en "tcp" para el transporte TCP o "stdio" para el transporte stdio (el valor predeterminado es "tcp")

  • MCP_HOST : El host al que vincularse (el valor predeterminado es "0.0.0.0")

  • MCP_PORT : El puerto para escuchar (el valor predeterminado es 8080)

Ejemplo de inicio del servidor con configuraciones personalizadas:

MCP_TRANSPORT=tcp MCP_HOST=127.0.0.1 MCP_PORT=8888 python pubtator_server.py

El servidor implementa una inicialización diferida y un manejo adecuado de errores. Gestionará correctamente las señales de apagado (SIGINT y SIGTERM) y registrará cualquier error que se produzca durante el inicio o la operación.

Usando Docker

Proporcionamos un Dockerfile para facilitar la implementación. Para usar el contenedor Docker:

  1. Construya la imagen de Docker:

    docker build -t pubtator-mcp-server .
  2. Ejecute el contenedor Docker:

    docker run -p 8080:8080 pubtator-mcp-server

Esto iniciará el servidor PubTator MCP dentro de un contenedor Docker, exponiéndolo en el puerto 8080.

Solución de problemas

Si encuentra algún problema al iniciar el servidor:

  1. Verifique la salida de la consola para ver si hay mensajes de error.

  2. Asegúrese de que todas las dependencias necesarias estén instaladas (consulte la sección Requisitos).

  3. Verifique que las variables de entorno estén configuradas correctamente.

  4. Si el servidor no se inicia, intente ejecutarlo con mayor nivel de detalle:

python -v pubtator_server.py

Esto proporcionará información de registro más detallada para ayudar a identificar la fuente de cualquier problema.

Al usar Docker, puedes comprobar los registros con:

docker logs <container_id>

Configuración

Configuración del escritorio de Claude

Agregar a claude_desktop_config.json :

(Mac OS)

{
  "mcpServers": {
    "pubtator": {
      "command": "python",
      "args": ["-m", "pubtator-mcp-server"]
      }
  }
}

(Ventanas)

{
  "mcpServers": {
    "pubtator": {
      "command": "C:\\Users\\YOUR\\PATH\\miniconda3\\envs\\mcp_server\\python.exe",
      "args": [
        "D:\\code\\YOUR\\PATH\\PubTator-MCP-Server\\pubtator_server.py"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

Configuración de CLine

{
  "mcpServers": {
    "pubtator": {
      "command": "bash",
      "args": [
        "-c",
        "source /home/YOUR/PATH/mcp-server-pubtator/.venv/bin/activate && python /home/YOUR/PATH/pubtator_server.py"
      ],
      "env": {
        "MCP_TRANSPORT": "stdio"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Para utilizar el transporte TCP, modifique la configuración de la siguiente manera:

{
  "mcpServers": {
    "pubtator": {
      "command": "bash",
      "args": [
        "-c",
        "source /home/YOUR/PATH/mcp-server-pubtator/.venv/bin/activate && python /home/YOUR/PATH/pubtator_server.py"
      ],
      "env": {
        "MCP_TRANSPORT": "tcp",
        "MCP_HOST": "127.0.0.1",
        "MCP_PORT": "8888"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

🛠 Funciones de la API

El servidor PubTator MCP ofrece las siguientes características principales:

1. Exportar publicaciones (export_publications)

Exportar resultados de anotaciones de PubTator para la literatura PMID especificada:

result = await export_publications(
    ids=["32133824", "34170578"],
    id_type="pmid",
    format="biocjson",  # Supported: pubtator, biocxml, biocjson
    full_text=False     # Whether to include full text
)

2. Búsqueda de ID de entidad (find_entity_id)

Consulta de identificadores estándar para conceptos biológicos a través de texto libre:

result = await find_entity_id(
    query="COVID-19",
    concept="disease",  # Optional: gene, disease, chemical, species, mutation
    limit=5             # Optional: limit number of results
)

3. Consulta de relación (find_related_entities)

Buscar otras entidades relacionadas con una entidad específica:

result = await find_related_entities(
    entity_id="@DISEASE_COVID_19",
    relation_type="treat",    # Optional: treat, cause, interact, etc.
    target_entity_type="chemical",  # Optional: gene, disease, chemical
    max_results=5       # Optional: limit number of results
)

Buscar en la base de datos de PubTator:

results = await search_pubtator(
    query="COVID-19",
    max_pages=1     # Optional: maximum number of pages to retrieve
)

5. Exportación por lotes (batch_export_from_search)

Búsqueda y exportación por lotes de anotaciones bibliográficas:

results = await batch_export_from_search(
    query="COVID-19",
    format="biocjson",
    max_pages=1,
    full_text=False,
    batch_size=5
)

Nota: Las llamadas a funciones reales pueden variar según su implementación. Estos ejemplos se basan en nuestras pruebas recientes y podrían requerir ajustes para que coincidan con su API.

⚠️ Limitaciones de uso

  • Límite de frecuencia de solicitudes de API: máximo 3 solicitudes por segundo

  • Al exportar por lotes, utilice un tamaño de lote razonable para evitar el tiempo de espera de la solicitud

  • Para las consultas de relación, los ID de entidad deben comenzar con "@", por ejemplo, "@DISEASE_COVID-19"

📄 Licencia

Este proyecto está licenciado bajo la licencia MIT.

⚠️ Descargo de responsabilidad

Esta herramienta es solo para fines de investigación. Por favor, cumpla con los términos de servicio de PubTator y úsela con responsabilidad.

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    B
    quality
    F
    maintenance
    Provides comprehensive access to NCBI's PubMed database of over 36 million biomedical citations, allowing users to search, retrieve, and analyze literature directly through MCP tools. It supports advanced queries, citation management, full-text retrieval from PubMed Central, and precise discovery using MeSH terms.
    16
    15
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides direct access to PubMed and PubMed Central via the NCBI E-utilities API. It enables AI models to search biomedical literature, retrieve detailed article metadata, and download open-access full texts.
    5
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    This MCP server provides 16 intelligent tools for searching, retrieving, and linking biomedical literature from PubMed and PMC. It enables LLM applications to perform complex queries, batch processing, and cross-database linking.
    16
    8
    MIT

View all related MCP servers

Related MCP Connectors

  • Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries

  • MCP gateway federating 21 biomedical MCP servers behind one endpoint: gnomAD, ClinVar, HPO, VEP.

  • PubMed MCP — wraps the NCBI E-utilities API (biomedical literature, free, no auth)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JackKuo666/PubTator-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server