dsh-zotero: Zotero Literature Library Plugin for DeepSeek Harness

Preface

When working with agents in DSH (DeepSeek Harness), if papers and materials are stored in local Zotero, you typically encounter several specific actions: searching literature by keywords, reading item abstracts, opening PDF full texts, confirming attachment paths, and writing reading results into notes. Since these materials reside in a local application, without corresponding tools, the agent can only rely on manual organization.

dsh-zotero is a Zotero tool plugin for DeepSeek Harness. It enables the agent to access your local literature library through Zotero’s local API, without requiring an API Key, for retrieving literature, reading metadata and abstracts, viewing attachments, reading full texts, and handling notes.

What This Is

dsh-zotero is a Zotero tool plugin for DeepSeek Harness, maintained by Hongcheng-LI, licensed under MIT.

Its one-line positioning: enables the agent to directly search your Zotero literature library, read item metadata and abstracts, list collections and PDF attachments, read PDF full texts, and draft reading notes on your behalf.

It accesses via Zotero’s local API, with the default address:

http://127.0.0.1:23119

The prerequisite is that Zotero 7 or above is installed and running on the local machine, with the following enabled:

Settings → Advanced → Allow other applications on this computer to communicate with Zotero

The documentation states the project has been tested on Zotero 9.0.6 / Windows.

Core Features

Below are the tools provided by the plugin.

Search and Items

  1. zotero_collections: Lists all collections in the library, returning collectionKey and item counts, used to narrow down subsequent search scope.

  2. zotero_search: Searches the library by keywords, supporting item types, collections, tags, year ranges, sorting, and pagination; mode controls the granularity of returned results.

  3. zotero_recent: Lists recently added items.

  4. zotero_item: Reads item details by key, including authors, journal, DOI, abstract, tags, and attachment list.

Full Text and Attachments

  1. zotero_fulltext: Reads the full text of an item as plain text. It prioritizes reading Zotero’s full-text cache; if no cache exists, it parses the local PDF and writes to cache; remote link attachments are only downloaded to the workspace.

  2. zotero_attachment_path: Returns the original absolute path of the attachment in storage.

  3. zotero_download: Downloads the item’s PDF attachment to the session workspace.

Notes

  1. zotero_notes: Lists child notes for a specific item, or searches note content across the entire library by keyword.

  2. zotero_note: Supports create / append / update / delete. Note: write operations on notes are subject to the read-only limitation of Zotero’s local API and are unavailable in most versions; the tool will return a clear prompt and recommend manual operation.

Installation and Enablement

First, confirm that Zotero is running with local communication enabled as described above. Then execute:

dsh plugin --profile web add dsh-zotero

After installation, restart dsh web.

package.json declares node >=20 and includes @deepseek-ai/cordis ^4.0.1 in peerDependencies.

Note: The plugin runs with the permissions of the current dsh process. Before installation, review the source code, dependencies, and MIT license to confirm it only accesses Zotero data you have permitted on your machine.

Optional Configuration

If you need to use a different Zotero address, library, download directory, or data directory, you can override the tool-zotero entry in the cordis.patch.yml of your profile, then restart.

Optional configuration items include:

baseUrl
library
downloadDir
dataDir
storageDir
maxAttachmentBytes
maxFulltextChars
maxLimit
timeoutMs

Example structure below. Here, baseUrl can be filled with the local Zotero API address; the remaining configuration items can be filled according to your local Zotero data directory and download requirements:

- id: tool-zotero
  config:
    baseUrl: http://127.0.0.1:23119
    library:
    downloadDir:
    dataDir:
    storageDir:
    maxAttachmentBytes:
    maxFulltextChars:
    maxLimit:
    timeoutMs:

Restart after making changes.

Typical Usage

The example conversation provided in the repository documentation is:

Search my Zotero for papers related to transformer, pick ones from 2020 onwards, read the full text of the first one, write me a summary and save it to notes.

This prompt involves zotero_search, zotero_fulltext, and note-related tools. The “save it to notes” part depends on the write operation of zotero_note; if the local Zotero API is read-only, the write operation will return a clear prompt and recommend manual action.

Applicable Scenarios and Caveats

Suitable for:

  • Users with Zotero 7 or above libraries on the local machine;
  • Those who want the DSH agent to directly read paper metadata, abstracts, PDF full texts, and attachment paths;
  • Those who want to use local Zotero as the agent’s material source.

Caveats:

  • Requires local Zotero to be running;
  • Requires enabling local API communication;
  • Note write operations are unavailable in most versions;
  • The plugin runs with the permissions of the dsh process; review the source code and license before installation;
  • The DSH community directory is an independent site with no official affiliation to DeepSeek / High-Flyer, and should not be regarded as an official app store.

Conclusion

The value of dsh-zotero lies in turning your local Zotero literature library into a tool that DSH agents can directly invoke: searching literature, reading metadata, reading full texts, obtaining attachment paths, and handling note retrieval. It relies on your local Zotero local API rather than migrating the library to the cloud.

GitHub:

https://github.com/Hongcheng-LI/dsh-zotero

The directory page URL was not confirmed in the verified materials, so this article does not provide a specific address; you can search for dsh-zotero in the DSH community directory.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye