dsh-biorxiv-mcp
by TYEclipse
README.md
# dsh-biorxiv
bioRxiv preprint search, version/publication status and export tools for DeepSeek Harness (dsh). Zero runtime dependencies.
> Status: `0.1.0-alpha` — functional core, not a 1.0 release. Relevance evaluation is provisional; do not treat it as peer-reviewed evidence.
## Tools
- `biorxiv_search` — search bioRxiv preprints by topic, optional date window and field. Default `minScore=3` filters low-confidence text matches; set `minScore=0` for higher recall.
- `biorxiv_paper` — DOI lookup: latest version, publication DOI/journal, retraction flag when available.
- `biorxiv_latest` — latest preprints by date window and optional category.
- `biorxiv_export` — export search results or one DOI as JSON, Markdown, CSV or BibTeX.
- `biorxiv_digest` — structured markdown digest (extractive by default; optional opt-in Chinese summaries; no automatic delivery).
All tools return a stable envelope:
```json
{
"ok": true,
"data": {},
"error": { "code": "", "message": "", "retryable": false, "hint": "" },
"meta": { "requestId": "...", "elapsedMs": 12, "cached": false, "source": ["europepmc"], "warnings": [] }
}
```
On failure `ok` is `false`, `data` is `{}`, and `error.code` is one of `E-001`–`E-010`.
## Install (one command)
```bash
dsh plugin --profile headless add github:TYEclipse/dsh-biorxiv#v0.1.0-alpha.20
```
Replace `headless` with the target profile. `dsh plugin add` is a pnpm forwarder: a `--profile` is required, and `pnpm` must be on `PATH`.
Build from source instead:
```bash
pnpm install
pnpm build
pnpm pack
dsh plugin --profile headless add "file:$PWD/$(ls -t dsh-biorxiv-*.tgz | head -1)"
```
Verify:
```bash
dsh plugin --profile headless list
dsh --profile headless "Use biorxiv_search to search for 'protein language model' and report the first title and DOI."
```
`dsh plugin add` is a pnpm forwarder: a `--profile` is required, and `pnpm` must be on `PATH`.
## CLI
```bash
dsh-biorxiv search "protein language model" --limit 5
dsh-biorxiv paper 10.64898/2026.07.21.739963
dsh-biorxiv latest --days 2 --limit 10
dsh-biorxiv export "hippocampal ripple" --format markdown --out refs.md
dsh-biorxiv digest "protein language model" --limit 5
```
Each command prints one JSON envelope and exits `0` on success, `1` on a tool error, `2` on a usage error.
## MCP
Run the stdio server:
```bash
dsh-biorxiv-mcp
```
MCP client config example:
```json
{
"mcpServers": {
"biorxiv": {
"command": "npx",
"args": ["-y", "--package", "dsh-biorxiv", "dsh-biorxiv-mcp"]
}
}
}
```
An npm package is not published yet. The `npx` form above works after publication; for a GitHub install, point the client at `node ~/.dsh/profiles/<profile>/node_modules/dsh-biorxiv/dist/apps/mcp/main.js`.
The server exposes `biorxiv_search`, `biorxiv_paper`, `biorxiv_latest`, `biorxiv_export` and `biorxiv_digest` with the same JSON envelope.
## Configuration
Defaults live in the plugin schema; no config is required.
```json
{
"cachePath": "~/.cache/dsh-biorxiv/cache.db",
"cacheMode": "auto",
"timeoutMs": 10000,
"retries": 2,
"maxBytes": 2000000,
"userAgent": "dsh-biorxiv/0.1 (DeepSeek Harness plugin)",
"summaryEnabled": false,
"summaryModel": "deepseek-chat",
"summaryBaseUrl": "https://api.deepseek.com",
"summaryApiKeyEnv": "DEEPSEEK_API_KEY"
}
```
- `summaryEnabled`: default `false`. When true, `digest --summary` sends only public title/abstract to the configured model and labels output as machine-generated.
- The API key is read from the named environment variable; it is never written to config, cache or logs.
- CLI: `dsh-biorxiv digest "topic" --summary` opts in; it also enables the provider for that process.
- MCP: set `DSH_BIORXIV_SUMMARY=1` in the server environment, then call `biorxiv_digest` with `summary: true`.
- `cacheMode`: `auto` (SQLite when available, JSON fallback), `sqlite`, or `json`.
- Cache keys are SHA-256 hashes; query text is not written into the cache key.
- Delete the cache file to reset; it is disposable.
## Data sources and boundaries
- Search: Europe PMC REST (`SRC:PPR` + `PUBLISHER:"bioRxiv"`).
- Latest/version details: bioRxiv public API.
- Journal/retraction enrichment: Crossref and OpenAlex; failures are non-blocking.
- No full-text PDF download, no scraping behind 403/paywalls, no writes to source sites.
- Do not use for clinical, medical or investment decisions. Preprints are not peer-reviewed.
## Development
```bash
pnpm test
pnpm coverage
```
The coverage ratchet is enforced by `scripts/coverage-ratchet.mjs`; line coverage must not fall below `.coverage-baseline.json`.
## License
MIT. See `LICENSE`. Privacy and data flow: see `PRIVACY.md`.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues