# biolit MCP server

> Performs LLM-assisted biomedical literature screening and structured data extraction from PubMed, GEO, and preprints.

- Repository: https://github.com/rachadele/biolit
- Page: https://hostedmcp.org/servers/rachadele/biolit
- Transport: stdio
- Stars: 2
- Latest version: 0.1.25

## Install

### Claude Code

```sh
claude mcp add --env 'ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>' --env 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' --env 'SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>' biolit -- uvx biolit
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "biolit": {
      "command": "uvx",
      "args": [
        "biolit"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "biolit": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "biolit"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"biolit","type":"stdio","command":"uvx","args":["biolit"],"env":{"ANTHROPIC_API_KEY":"<YOUR_ANTHROPIC_API_KEY>","OPENAI_API_KEY":"<YOUR_OPENAI_API_KEY>","SEMANTIC_SCHOLAR_API_KEY":"<YOUR_SEMANTIC_SCHOLAR_API_KEY>"}}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "biolit": {
      "command": "uvx",
      "args": [
        "biolit"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

### Codex

```sh
codex mcp add biolit --env 'ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>' --env 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' --env 'SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>' -- uvx biolit
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.biolit]
command = "uvx"
args = ["biolit"]

[mcp_servers.biolit.env]
ANTHROPIC_API_KEY = "<YOUR_ANTHROPIC_API_KEY>"
OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY>"
SEMANTIC_SCHOLAR_API_KEY = "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
```

### Gemini CLI

```sh
gemini mcp add -s user -e 'ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>' -e 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' -e 'SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>' biolit uvx -- biolit
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "biolit": {
      "command": "uvx",
      "args": [
        "biolit"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `ANTHROPIC_API_KEY` | no | yes | Anthropic API key (required when using the default Anthropic provider) |
| `OPENAI_API_KEY` | no | yes | OpenAI API key (required when using LLM_PROVIDER=openai) |
| `SEMANTIC_SCHOLAR_API_KEY` | no | yes | Semantic Scholar API key for higher rate limits on citation lookup (optional) |
| `BIOLIT_BIBTEX` | no | no |  |
| `BIOLIT_BIBTEX_PRIORITY` | no | no |  |
| `BIOLIT_CUSTOM_RESOLVERS` | no | no |  |
| `BIOLIT_JS_SHELL_CHAR_THRESHOLD` | no | no |  |
| `BIOLIT_LANDING_USER_AGENT` | no | no |  |
| `BIOLIT_LOCAL_PDF_DIR` | no | no |  |
| `BIOLIT_LOCAL_PDF_PRIORITY` | no | no |  |
| `LLM_MODEL` | no | no | Model name override (e.g. claude-sonnet-4-6, gpt-4o) |
| `LLM_PROVIDER` | no | no | LLM provider: anthropic (default), openai, or ollama |
| `UNPAYWALL_EMAIL` | no | no | Email address for Unpaywall API access to improve PDF retrieval (optional) |
| `ZOTERO_API_KEY` | no | no |  |
| `ZOTERO_DATA_DIR` | no | no |  |
| `ZOTERO_PRIORITY` | no | no |  |
| `ZOTERO_USER_ID` | no | no |  |

## Tools (12)

- `run_pipeline`
- `fetch_pubmed_metadata`
- `fetch_geo_record`
- `fetch_fulltext`
- `fetch_geo_fulltext`
- `fetch_supplementary`
- `screen_paper`
- `extract_fields`
- `resolve_doi`
- `lookup_s2_pdf`
- `read_pmids_from_eml`
- `get_version`

## FAQ

### What types of identifiers does biolit support?

It supports a mixed list of PMIDs, DOIs, and GEO accessions in a single run.

### How can I use biolit with OpenAI instead of Anthropic?

You can specify the provider using the --provider flag or by setting the LLM_PROVIDER environment variable.

### Does biolit bypass paywalls for research papers?

No, it only retrieves open-access content through various sources like PMC, Unpaywall, and Semantic Scholar, and never attempts to bypass paywalls.

### Can I run biolit locally?

Yes, you can use local Ollama models to run the pipeline.
