title: BioMedNorm MCP Server
sdk: gradio
sdk_version: 5.33.0
app_file: app.py
pinned: true
license: apache-2.0
python_version: 3.13.3
tags:
- mcp-server-track
BioMedNorm MCP Server
A MCP server for extracting and normalizing domain-specific entities from biomedical text. We leverage OpenAI LLMs to identify entities and match them to standardized terminology.
Installation
This project uses uv from Astral for dependency management. Follow these steps to set up the project:
Clone the repository
git clone https://github.com/yourusername/entity-extraction-mcp
cd entity-extraction-mcp
Set up Python environment
The project includes a .python-version file that specifies the required Python version. Make sure you have uv installed:
# Install uv if you don't have it already
curl -LsSf https://astral.sh/uv/install.sh | sh
Install dependencies
The project dependencies are defined in pyproject.toml. Install them with:
uv pip install -e .
Set up environment variables
The project requires an OpenAI API key, which should be stored in a .env file.
Running the application
Run the application using uv run:
uv run app.py
This command ensures that:
- All project dependencies are correctly installed
- The environment variables from .env are loaded
- The application runs in the proper environment
After starting the server, you can access:
- Web interface:
http://your-server:port - MCP endpoint:
http://your-server:port/gradio_api/mcp/sse
Using the Web Interface
- Enter text in the input area
- Select the entity type (Disease, Tissue, or Cell Type)
- Click "Normalize"
- View the normalized entities in the results area
Using as an MCP Tool
The server exposes an MCP-compatible endpoint that can be used by AI agents. The tool accepts:
paragraph: Text to extract entities fromtarget_entity: Type of entity to extract ("Disease", "Tissue", or "Cell Type")
and returns a list of normalized entities.