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 search
  • mcp__academic_search__get_paper_by_id: retrieve paper details by ID
  • mcp__academic_search__get_citation: retrieve citation information
  • mcp__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

  1. Use search_papers to search for papers
  2. Call get_paper_by_id(include_relations=true) to retrieve citation relations
  3. Use lookup_mesh to 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.