--- 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.