Skip to main content
Glama
zhengh96

Bohrium MCP Server

by zhengh96
README.md
# Bohrium MCP Server

MCP server for [Bohrium Open Platform](https://open.bohrium.com) — search academic papers, patents, parse PDFs, and manage knowledge bases through any MCP-compatible AI agent.

## Features

- **Paper Search**: Search English academic papers with keyword + semantic question matching
- **Patent Search**: Search global patents with assignee and date filters
- **PDF Parsing**: Submit PDFs for structured extraction (async with polling)
- **Knowledge Base**: Create, list, and search within curated knowledge bases

## Quick Start

### 1. Get API Key

Visit [https://bohrium.dp.tech/settings/user](https://bohrium.dp.tech/settings/user) to generate your access key.

### 2. Install

```bash
pip install "mcp>=1.0.0" "httpx>=0.27.0" "pydantic>=2.0.0"
```

### 3. Run

```bash
ACCESS_KEY=your_key_here python server.py
```

### 4. Configure with Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "bohrium": {
      "command": "python",
      "args": ["/path/to/bohrium_mcp_server/server.py"],
      "env": {
        "ACCESS_KEY": "your_bohrium_api_key"
      }
    }
  }
}
```

## Available Tools

| Tool | Description |
|------|-------------|
| `bohrium_search_papers` | Search academic papers by keywords + research question |
| `bohrium_search_patents` | Search global patents by keywords + question |
| `bohrium_parse_pdf_by_url` | Submit a PDF URL for structured parsing |
| `bohrium_parse_pdf_by_file` | Submit a local PDF file for parsing |
| `bohrium_get_pdf_parse_result` | Poll for PDF parsing result |
| `bohrium_list_knowledge_bases` | List all knowledge bases |
| `bohrium_create_knowledge_base` | Create a new knowledge base |
| `bohrium_search_kb_file_content` | Search within a knowledge base |

## Paper Search Example

```python
# The agent calls:
bohrium_search_papers(
    words=["EGFR", "inhibitor", "lung cancer"],
    question="What are the latest EGFR targeted therapies for NSCLC?",
    search_type=0,  # 0=fast keyword, 1-4=enhanced with ranking
    page_size=10,
    area_ids=["11"],  # 11=Medicine
)
```

Returns formatted results with title, DOI, journal, date, and citation count.

## API Notes

- **Base URL**: `https://openapi.dp.tech/openapi/v1`
- **Auth**: Header `accessKey: {your_key}`
- `type` parameter is **integer** (0-5), not string
- `words` is **array of strings**, not a single string
- `question` is **required** (despite docs saying optional)
- Paper search `data` field is a **list**, not `{rows: [...]}`

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `ACCESS_KEY` | Yes (or `BOHRIUM_API_KEY`) | Bohrium platform API key |

## License

Apache 2.0

Maintenance

ActivityInactive
ResponsivenessNo issues