DSH Hub

MicroHEROX/dsh-exa-mcp

dsh-exa-mcp

BundleWorkflow3 GitHub stars· updated 2026-08-21

Exa Search MCP for DeepSeek Harness: mounts the remote Exa MCP endpoint (https://mcp.exa.ai/mcp) through the in-box @deepseek-ai/dsh-mcp-client bridge

Install

npx @deepseek-ai/dsh plugin --profile web add github:MicroHEROX/dsh-exa-mcp

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-exa-mcp DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-exa-mcp.svg)](https://dshhub.dev/plugins/dsh-exa-mcp)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from MicroHEROX/dsh-exa-mcp, cleaned of badges and images.

Exa Search MCP for DeepSeek Harness

<a href="#english"><b>English</b></a> · <a href="README.zh.md"><b>中文</b></a>

A third-party plugin that brings Exa — the neural web search and fetch engine — into DeepSeek Harness (dsh). It connects to Exa's hosted MCP endpoint (Streamable HTTP) through the MCP client bridge that ships with the dsh CLI, and registers Exa's tools as native agent tools under the exa namespace.

mcp__exa__web_search_exa   ·  mcp__exa__web_fetch_exa
mcp__exa__web_search_advanced_exa  ·  mcp__exa__agent_run   (with an API key)
  • Zero install footprint: no code runs in the dsh process — the upstream is Exa's official hosted endpoint.
  • Pure configuration bundle: one patch layer, no build step, no runtime API.
  • Never touches your deepseek-harness installation; it only adds one row to the composed cordis.yml.

Quick Start

1. Install

Option A — install as a plugin bundle (recommended, requires pnpm):

npm install -g pnpm
dsh plugin --profile web add github:MicroHEROX/dsh-exa-mcp
dsh web

Verify after a github: install — when the route to github.com is unstable, a github: (git) install can silently fail or finish with an un-synced dsh.profile.bundles (local link:/file: installs are unaffected). Verify and fix in one step:

# check: does the bundle layer appear?
dsh --profile web --dump-config | grep -A2 "== dsh-exa-mcp"
# if not (or to fix preemptively), append the bundle to the profile manifest:
node -e "const fs=require('fs');const p=process.env.DSH_HOME+'/profiles/web/package.json';const j=JSON.parse(fs.readFileSync(p,'utf8'));if(!(j.dsh.profile.bundles||[]).includes('dsh-exa-mcp')){j.dsh.profile.bundles=[...(j.dsh.profile.bundles||[]),'dsh-exa-mcp'];fs.writeFileSync(p,JSON.stringify(j,null,2)+'\n','utf8');console.log('fixed: dsh-exa-mcp appended');}else{console.log('already present');}"

The timing issue is reported upstream (Discussions #656); --patch overlays are never affected.

Option B — one-off overlay, no install:

dsh web --patch /path/to/dsh-exa-mcp/cordis.patch.yml

Option C — keep it permanently without installing: merge the single insert block from cordis.patch.yml into $DSH_HOME/profiles/<name>/cordis.patch.yml (or $DSH_HOME/cordis.patch.yml for every profile).

Install behavior: pnpm installs git dependencies through the files field, so docs/ is not installed into your runtime — only cordis.patch.yml is. The docs live in this repository.

2. Provide an Exa API key (optional)

The hosted endpoint works anonymously on Exa's free tier (rate-limited, basic tools only). To lift limits and unlock advanced search / Exa Agent, create an API key and set it in the environment:

export EXA_API_KEY="your-key"        # macOS / Linux
$env:EXA_API_KEY = "your-key"        # Windows PowerShell

The plugin auto-detects the key at load time: EXA_API_KEY set → sends x-api-key; unset → anonymous. Never put the key into any patch file.

3. Verify

Related plugins