Skip to content
dsh.fish
Bundle

web-search-glm

ZAI GLM web search and fetch MCP plugin for DeepSeek Harness

Source
Tazio7
License
MIT
Updated
Updated yesterday

Readme

# dsh-zai-web-search

ZAI GLM web search and fetch MCP plugin for DeepSeek Harness.

This plugin integrates ZAI's (智谱AI) web search and fetch capabilities into DSH through MCP (Model Context Protocol) servers.

## Features

- **Web Search**: Search the web using ZAI's web search prime service
- **Web Fetch**: Fetch and read web content using ZAI's web reader service
- **Vision MCP**: Access ZAI's vision capabilities through MCP
- **Tool Registration**: Automatically registers tools with DSH harness for model use
- **Service Integration**: Provides a service for programmatic access

## Installation

1. Add the plugin to your DSH profile:
   ```bash
   dsh plugin --profile <profile-name> add dsh-zai-web-search
   ```

2. The plugin will automatically use your DSH ZAI API key from `~/.dsh/.credentials.yaml`. No additional setup is required if you have configured ZAI in DSH.

## Configuration

The plugin is configured through `cordis.patch.yml` in your profile directory. Key configuration options:

- `apiKey`: Your ZAI API key (can be set via environment variable `ZAI_API_KEY`)
- `servers`: MCP server configurations
  - `web-search-prime`: Web search service
  - `web-reader`: Web content fetching service
  - `zai-vision`: Vision capabilities service
- `registerTools`: Whether to register tools with DSH harness (default: true)
- `enabled`: Enable/disable the plugin (default: true)

## Usage

### As a Tool

Once installed and configured, the following tools will be available to the model:

- `web-search-prime/search`: Search the web
- `web-reader/fetch`: Fetch web content
- `zai-vision/*`: Vision-related tools

### As a Service

You can also use the service programmatically in your DSH plugins:

```typescript
import { Context } from '@deepseek-ai/cordis'

export default {
  apply(ctx: Context) {
    // Access the ZAI Web Search service
    const zaiWebSearch = ctx.get('zai-web-search')
    
    if (zaiWebSearch) {
      // Search the web
      zaiWebSearch.searchWeb('your search query').then(results => {
        console.log(results)
      })
      
      // Fetch web content
      zaiWebSearch.fetchWeb('https://example.com').then(content => {
        console.log(content)
      })
    }
  }
}
```

## Environment Variables

- `ZAI_CODING_CN_API_KEY`: Your ZAI API key for authentication (optional if configured in DSH)
- `ZAI_API_KEY`: Alternative environment variable for ZAI API key
- `ZAI_MODE`: Set to "ZHIPU" for Chinese market (default)

## MCP Servers

The plugin uses the following MCP servers:

1. **web-search-prime**: Web search service from ZAI
   - URL: `https://open.bigmodel.cn/api/mcp/web_search_prime/mcp`
   - Transport: HTTP Streamable

2. **web-reader**: Web content fetching service
   - URL: `https://open.bigmodel.cn/api/mcp/web_reader/mcp`
   - Transport: HTTP Streamable

3. **zai-vision**: Vision capabilities
   - Command: `npx -y @z_ai/mcp-server@latest`
   - Transport: stdio

## Development

To build the plugin:

```bash
npm run build
```

To run tests:

```bash
npm test
```

## License

MIT

Install

dsh plugin --profile web add github:Tazio7/dsh-web-search-glm

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source