dsh-web-search-free: DSH Free Web Search Provider and MCP Server

Preface

DSH’s web_search tool, under the default official search, calls DeepSeek’s metered search service, which depends on DEEPSEEK_API_KEY and incurs balance consumption. If you want to switch DSH to an anonymous, key-free free search backend and also connect the same backend to MCP clients such as Claude Code / Codex, dsh-web-search-free provides both a plugin toggle and an MCP server.

What This Is

sheep-programmer/dsh-web-search-free is an MIT-licensed DSH plugin, published on npm as @sheep233_/dsh-web-search-free. It provides three things: a free web search provider inside DSH, an official/free toggle in DSH settings, and a standalone MCP server.

Core Features

Free Backend

  • Free backends: Parallel (default) / Exa (fallback)
  • Anonymous, key-free — no API key required, no balance deductions
  • When free search is enabled, web_search requests are sent only to search.parallel.ai / mcp.exa.ai
  • Optional environment variable EXA_API_KEY to increase Exa’s anonymous quota

DSH Settings Toggle

Settings path: DSH Settings → Plugin Settings → Configurable → Free Web Search.

  • The enabled toggle is off by default, meaning the official search is used; turning it on uses the free search
  • Free backend radio: Parallel (default) / Exa (fallback)
  • Changes automatically maintain the profile patch file ~/.dsh/profiles/web/cordis.patch.yml by overriding the searchProvider on the web line; turning it off removes the override block
  • Restart DSH after changes for them to take effect

MCP Server

The MCP server is located at lib/mcp-server.js, zero-dependency, and does not depend on DSH.

  • Exposes the web_search tool
  • Parameters: query (required); provider (optional, values: parallel / exa); numResults (optional)
  • Transports: stdio and HTTP/SSE
  • stdio mode does not listen on any port
  • HTTP/SSE default address is http://127.0.0.1:3100, bound to the loopback interface only by default
  • Only calls the free endpoints listed above; reads no files or environment variables except the optional EXA_API_KEY

Installation and Activation

For the settings card to appear, the following conditions must be met: the profile is web; the package is declared in dsh.profile.bundles; DSH is restarted after installation; and the browser page is refreshed before opening settings.

  1. Install the dependency using DSH’s official install command:
dsh plugin --profile web add @sheep233_/dsh-web-search-free
  1. Add the package name to dsh.profile.bundles in ~/.dsh/profiles/web/package.json, while ensuring the same package name is present in dependencies; the version range should follow the npm package’s current release or what the package manager records — this article does not pin a version number. The configuration looks like:
{
  "dsh": {
    "profile": {
      "bundles": [
        "@sheep233_/dsh-web-search-free"
      ]
    }
  },
  "dependencies": {
    "@sheep233_/dsh-web-search-free": "Use the version range per current release"
  }
}
  1. Restart DSH and refresh the browser page.

  2. Open DSH Settings → Plugin Settings → Configurable → Free Web Search, enable enabled, choose Parallel or Exa, then restart DSH.

  3. For end-to-end verification in a local source directory, you can run:

npm run verify

Typical Usage: Connecting to MCP Clients

stdio Mode

stdio is the default transport and does not require any additional port.

Claude Code:

claude mcp add dsh-web-search -- npx -y @sheep233_/dsh-web-search-free

Codex:

codex mcp add dsh-web-search -- npx -y @sheep233_/dsh-web-search-free

You can also use a local source path:

claude mcp add dsh-web-search -- node /absolute/path/dsh-web-search-free/lib/mcp-server.js
codex mcp add dsh-web-search -- node /absolute/path/dsh-web-search-free/lib/mcp-server.js

HTTP/SSE Mode

First, start the MCP server:

node /absolute/path/dsh-web-search-free/lib/mcp-server.js --http --port 3100

It listens at http://127.0.0.1:3100 by default. Use --host / --port to adjust the address and port.

Claude Code:

claude mcp add --transport http dsh-web-search http://127.0.0.1:3100

Codex:

codex mcp add --transport http dsh-web-search http://127.0.0.1:3100

Other MCP clients that support stdio or HTTP/SSE can also connect using the same commands or URL.

Reverting to Official Search

Turn off the enabled toggle in the settings card, then restart DSH. You can also manually delete the override block between # >>> web-search-free and # <<< web-search-free in ~/.dsh/profiles/web/cordis.patch.yml.

Use Cases and Notes

  • Suitable for replacing the official metered search with a free backend in DSH’s web profile.
  • Suitable for connecting the free web_search tool to Claude Code / Codex or other MCP clients that support stdio / HTTP/SSE.
  • The plugin runs within the current DSH process environment; review the source code and MIT license before installation.
  • The DSH plugin side has no keys, no data collection, and no listening; when free search is enabled, requests go only to search.parallel.ai / mcp.exa.ai.
  • HTTP/SSE binds to the loopback interface only by default; if you change --host to expose it to the network, you should assess access control risks yourself.
  • EXA_API_KEY is optional and used to increase Exa’s anonymous quota; when not set, the anonymous endpoint is used.

Conclusion

The value of dsh-web-search-free lies in bundling DSH’s free web search toggle, profile patch integration, and a reusable MCP server into a single package. GitHub repository:

https://github.com/sheep-programmer/dsh-web-search-free

For a directory listing entry, refer to what DSH or the community directory provides; this article does not include any unverified directory URLs.

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

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

Xiaoye