PubTator
🔍 A biomedical literature annotation and relationship mining server based on PubTator3, providing convenient access through the MCP interface.
claude mcp add --transport stdio jackkuo666-pubtator-mcp-server python -m pubtator-mcp-server \ --env MCP_HOST="0.0.0.0" \ --env MCP_PORT="8080" \ --env MCP_TRANSPORT="tcp"
How to use
PubTator MCP Server exposes PubTator3-backed biomedical literature annotation and relationship mining capabilities through the MCP interface. It lets AI models programmatically search literature, fetch PubTator annotations in multiple formats, look up standard biological concept identifiers, and explore relationships between entities. Core features include export of annotations (in formats like pubtator, biocjson, biocxml), entity ID lookup, relationship queries, literature search, and batch exports. To use it, run the MCP server (for example via Python -m pubtator-mcp-server) and connect clients via MCP transports (tcp or stdio). Once running, you can invoke API-like calls exposed by the MCP layer to perform searches, retrieve annotations, and analyze entity relationships.
You can interact with the following capabilities: export_publications for specific PubMed IDs, find_entity_id for free-text concept lookup, find_related_entities to discover relationships (e.g., treat, cause), search_pubtator to query PubTator, and batch_export_from_search to retrieve and export multiple annotations. The server supports configurable transport and port, with sensible defaults, and includes lazy initialization and graceful shutdown handling. It is designed for research use and requires agreement with PubTator terms of service when querying or exporting data.
How to install
Prerequisites
- Python 3.10+
- FastMCP library (as a dependency of the server)
Manual installation
-
Clone the repository: git clone https://github.com/JackKuo666/PubTator-MCP-Server.git cd PubTator-MCP-Server
-
Install dependencies: pip install -r requirements.txt
-
Run the server directly (from project root): python pubtator_server.py
-
Alternatively, run as a module (as used in MCP configurations): python -m pubtator-mcp-server
Using Smithery (optional) The repository supports installation via Smithery for convenient deployment in different clients (Claude, Cursor, Windsurf, CLine) as described in the README. See the Quick Start section of the README for exact smithery commands tailored to each client.
Additional notes
Notes and tips:
- Transport options: The server supports TCP (default) and stdio transports. You can configure MCP_TRANSPORT, MCP_HOST, and MCP_PORT via environment variables.
- Environment variables: MCP_TRANSPORT (tcp or stdio), MCP_HOST, MCP_PORT. Adjust as needed for your deployment environment.
- If you encounter startup issues, check dependencies in requirements.txt and ensure Python 3.10+ is being used.
- For Docker deployment, you can containerize the server with standard Python container workflows and expose port 8080 (or your configured port).
- API usage: The server exposes core features such as export_publications, find_entity_id, find_related_entities, search_pubtator, and batch_export_from_search. The exact function names may vary by implementation, so refer to the server’s API surface when integrating with clients.
- If using the binding with MCP clients, ensure the target server’s mcpServers.pubtator configuration matches your runtime command and environment variables.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP