|
|
--- |
|
|
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 |
|
|
|
|
|
```bash |
|
|
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: |
|
|
|
|
|
```bash |
|
|
# 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: |
|
|
|
|
|
```bash |
|
|
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`: |
|
|
|
|
|
```bash |
|
|
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 from |
|
|
- `target_entity`: Type of entity to extract ("Disease", "Tissue", or "Cell Type") |
|
|
|
|
|
and returns a list of normalized entities. |
|
|
|