DeepSeek Harness (DSH) follows the “everything is a plugin” philosophy. When building agents that need to cite facts, developers face the pain point of integrating multi-source academic data. Directly integrating the APIs of various databases is both cumbersome and hard to maintain. As a thin adapter Bundle, dsh-academic-paper-search solves this problem.
What It Is¶
This is an Academic Paper Search plugin for DSH, maintained by wp-a. It is a thin adapter Bundle that reuses the official @deepseek-ai/dsh-mcp-client to launch the existing nature-academic-search Python MCP service. Retrieval, deduplication, citation validation, citation graph, and export remain handled by the same runtime, without duplicating a second search logic.
Core Capabilities¶
The plugin is fixed to the academic_search namespace and provides the following tools:
mcp__academic_search__search_papers: paper searchmcp__academic_search__get_paper_by_id: retrieve paper details by IDmcp__academic_search__get_citation: retrieve citation informationmcp__academic_search__lookup_mesh: MeSH lookup
By default, search covers Crossref, PubMed, arXiv, OpenAlex, and Europe PMC, and deduplicates by DOI, PMID, PMCID, arXiv ID, and OpenAlex ID. ClinicalTrials.gov is queried separately using entity_type=trial and is not mixed with paper records. Calling get_paper_by_id(include_relations=true) can retrieve references / cited_by citation relations.
Installation and Enablement¶
Prerequisites:
- Node.js >= 22.19 and pnpm (DSH uses it to manage profile plugins)
- DeepSeek Harness (@deepseek-ai/dsh)
- uvx provided by uv, and added to PATH
- A contact email address for NCBI requests
Installation commands:
npm install --global @deepseek-ai/dsh pnpm
export PUBMED_EMAIL=researcher@example.com
dsh plugin --profile web add dsh-academic-paper-search
dsh web
After installation, the target profile must be restarted for the Bundle to be mounted. The Python service is started on demand by the MCP client when the profile is activated; viewing package information does not trigger network requests.
For headless operation, use a headless profile:
dsh plugin --profile headless add dsh-academic-paper-search
dsh --profile headless
Typical Usage¶
- Use
search_papersto search for papers - Call
get_paper_by_id(include_relations=true)to retrieve citation relations - Use
lookup_meshto perform MeSH lookups
Environment Variables and Credentials¶
The Bundle forwards the following variables to the Python MCP process. Their values come from the environment used to start dsh and are not written into this package:
| Variable | Purpose |
|---|---|
PUBMED_EMAIL |
Required for PubMed requests |
NCBI_API_KEY |
Optional, increases the NCBI rate limit |
CROSSREF_MAILTO |
Optional, enables the Crossref polite pool |
OPENALEX_API_KEY |
Optional, increases the OpenAlex quota |
SEMANTIC_SCHOLAR_API_KEY |
Optional, increases the Semantic Scholar quota |
Explicit forwarding is intentional: DSH strips variables resembling credentials inherited by child processes, and only the Bundle’s explicit configuration preserves them. Empty values are safe and do not affect sources that support anonymous access.
Use Cases and Notes¶
Use cases:
Agents that need to perform cross-database academic literature search with deduplication in a DSH environment.
Notes:
1. This package does not replace academic databases, nor does it automatically treat model output as citation facts. Reports should retain sources_succeeded, sources_skipped, errors, and validation status.
2. This package does not add a second search implementation. When a new Python version is released, the Bundle’s pinned --from nature-academic-search==... version should be updated accordingly.
3. This package does not connect to Google Scholar, Web of Science, Scopus, Embase, CNKI, or Wanfang.
4. This package does not require the optional WPIRONMAN AI relay. The relay can assist workflow planning or abstract-level initial screening, but it is not an academic source and does not participate in MCP factual search.
5. For reproducible deployments, pin the Bundle version and review the nature-academic-search==0.3.0 line before upgrading.
Conclusion¶
dsh-academic-paper-search adapts the existing nature-academic-search Python service into the DSH ecosystem, providing a standardized literature search interface for agent development. See the GitHub repository for more details.