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
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues