Skip to content

Commit b0ee989

Browse files
committed
Add MCP tools docs and update biomcp dep
Add a new "AI Assistant MCP Tools" section to DEPLOYING.md describing Model Context Protocol (MCP) servers, the default BioMCP config (config/mcp_servers.json), how to enable MCP support in docker-compose (ASSISTANT_MCP_CONFIG_PATH + volume mount), requirements for stdio servers, how to add custom MCP servers, supported transport types (stdio, http, sse), and an example. Also replace the biomcp dependency in config/requirements.txt from biomcp-python==0.7.3 to biomcp-cli==0.8.22 so the documented runtime command matches the installed package.
1 parent 04450cb commit b0ee989

2 files changed

Lines changed: 83 additions & 1 deletion

File tree

DEPLOYING.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,86 @@ Then the following environment variables must be configured:
231231
- `AWS_EMR_SHARED_FOLDER`
232232

233233

234+
## AI Assistant MCP Tools
235+
236+
The AI assistant supports [Model Context Protocol (MCP)][mcp-spec] servers, which extend the assistant's capabilities by giving it access to external tools (e.g. biomedical literature databases, clinical trials registries, genomic variant databases, and more).
237+
238+
MCP servers are declared in `config/mcp_servers.json`. By default that file ships with **[BioMCP][biomcp]** already configured and enabled:
239+
240+
```json
241+
{
242+
"version": "1.0",
243+
"servers": {
244+
"biomcp": {
245+
"enabled": true,
246+
"description": "Biomedical research: PubMed papers, bioRxiv, ClinicalTrials.gov, NCI, variants, OncoKB",
247+
"transport": "stdio",
248+
"command": "biomcp",
249+
"args": ["run", "--mode", "stdio"],
250+
"env": {}
251+
}
252+
}
253+
}
254+
```
255+
256+
### Activating MCP support
257+
258+
MCP tools are **disabled by default**. To enable them you need to have the AI assistant enabled first (i.e. `OPENAI_API_KEY` and the related parameters set) and then:
259+
260+
1. Open your `docker-compose.yml` (copied from `docker-compose_dist.yml`).
261+
2. In the `backend` service, uncomment the environment variable:
262+
```yaml
263+
ASSISTANT_MCP_CONFIG_PATH: '/config/mcp_servers.json'
264+
```
265+
3. In the same service, uncomment the volume mount so the config file is available inside the container:
266+
```yaml
267+
- ./config/mcp_servers.json:/config/mcp_servers.json:ro
268+
```
269+
4. Make sure any MCP server declared with `transport: stdio` has its `command` installed and available in `PATH` inside the container. For BioMCP that means `biomcp-python` must be installed in the container image.
270+
5. Redo the deployment with Docker.
271+
272+
### Adding custom MCP servers
273+
274+
You can extend the assistant with any MCP-compatible server by adding entries to `config/mcp_servers.json`. The loader supports three transport types:
275+
276+
| Transport | Required fields | Optional fields |
277+
|-----------|----------------|-----------------|
278+
| `stdio` | `command` | `args`, `env` |
279+
| `http` | `command`, `url` | `args`, `env` |
280+
| `sse` | `command`, `url` | `args`, `env` |
281+
282+
Set `"enabled": false` on any entry to disable it without removing it from the file.
283+
284+
Example — adding a custom HTTP MCP server alongside BioMCP:
285+
286+
```json
287+
{
288+
"version": "1.0",
289+
"servers": {
290+
"biomcp": {
291+
"enabled": true,
292+
"transport": "stdio",
293+
"command": "biomcp",
294+
"args": ["run", "--mode", "stdio"],
295+
"env": {}
296+
},
297+
"my-custom-mcp": {
298+
"enabled": true,
299+
"description": "Custom internal tool server",
300+
"transport": "http",
301+
"command": "my-mcp-server",
302+
"url": "http://my-mcp-host:8080/mcp",
303+
"env": {
304+
"MY_API_KEY": "secret"
305+
}
306+
}
307+
}
308+
}
309+
```
310+
311+
After modifying the file, restart the backend service for the changes to take effect. No rebuild is required since the file is mounted as a read-only volume.
312+
313+
234314
## Execution of tasks with Celery
235315

236316
Multiomix uses [Celery][celery] to distribute the computational load of its most expensive tasks (such as correlation analysis, Biomarkers Feature Selection, static validations, Machine Learning model training, etc.). This requires the user to have a messaging broker, such as RabbitMQ or Redis, installed and configured. In this project, Redis is used and a worker is deployed for each of the execution queues serving a different type of task. The Docker configuration is left ready to run in Docker Compose or Docker Swarm and K8S.
@@ -299,6 +379,8 @@ To import a `media` folder backup inside a new environment you must (from the ro
299379
2. Run the script `./tools/import_media.sh`.
300380

301381

382+
[mcp-spec]: https://modelcontextprotocol.io/
383+
[biomcp]: https://github.com/genomics-geek/biomcp
302384
[docker-swarm]: https://docs.docker.com/engine/swarm/
303385
[modulector]: https://github.com/omics-datascience/modulector
304386
[bioapi]: https://github.com/omics-datascience/BioAPI

config/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ langchain-mcp-adapters==0.2.2
3838
pgvector==0.4.2
3939
sentence-transformers==3.0.0
4040
openai==2.38.0
41-
biomcp-python==0.7.3
41+
biomcp-cli==0.8.22

0 commit comments

Comments
 (0)