通过 Zhipu GLM 实现网页搜索,支持 MCP (mcporter) 和 cURL(REST API) 两种后端。提供多引擎搜索(Pro、Sogou、Quark、Std)并具备意图识别功能。
Web search powered by Zhipu GLM, with dual-backend support: cURL (REST API, preferred) and MCP (via mcporter).
This skill requires a Zhipu API key, provided via the ZHIPU_API_KEY environment variable.
No setup required. The key is read from $ZHIPU_API_KEY at runtime and sent via HTTP Authorization: Bearer header. In cURL mode, no files are written to disk.
If you need MCP mode, setup.sh will write a config file to disk:
FileWhat it containsPermissions~/.openclaw/config/mcporter/mcporter.jsonMCP server URL with API key as query param600 (owner-only)~/.openclaw/config/mcporter/ directoryParent directory700 (owner-only)
Important: The Zhipu MCP broker endpoint requires the API key as a URL query parameter ( Authorization=<key>). This is how their SSE endpoint works — the key cannot be passed via HTTP header for MCP connections. Setup writes this to mcporter.json with 600 permissions. If this is not acceptable, use cURL mode only (which passes the key via Authorization header at runtime and writes nothing to disk).
SourceWhenPurpose$ZHIPU_API_KEY env varEvery search (cURL mode), and during setup (MCP mode)API key
For maximum security, use cURL mode and skip setup.sh. MCP mode is provided as a convenience but requires persisting the key on disk due to the Zhipu MCP broker's authentication design.
bash
# Set your API key
export ZHIPU_API_KEY="your-api-key"
# Search (cURL mode, no setup needed)
bash scripts/glm-search.sh "your query"
# With options
bash scripts/glm-search.sh -q "latest AI news" -c 20 -r oneWeek -e quark
The script auto-selects the best available backend:
curl + ZHIPU_API_KEY env var. Key sent via HTTP header. Nothing written to disk.mcporter + config from setup.sh. Key stored in config file for MCP broker auth.Force a specific mode with --curl or --mcp.
EngineFlagBest ForPro-e proGeneral purpose, best quality ( default)Quark-e quarkAdvanced scenarios, Chinese contentSogou-e sogouChina domestic contentStd-e stdBasic search, Q&A
FlagLongDefaultDescription-q``--query—Search text (required, ≤70 chars recommended)-c``--count10Number of results (1-50)-e``--enginepropro, sogou, quark, std``-r``--recencynoLimitnoLimit, oneYear, oneMonth, oneWeek, oneDay``-s``--sizemediummedium (400-600 chars) or high (up to 2500)-i``--intentoffEnable search intent recognition (cURL only)-d``--domain—Restrict results to specific domain--curl—Force cURL backend--mcp—Force MCP backend
bash
# Basic search (cURL mode auto-selected)
glm-search "OpenClaw framework"
# Recent news, more results
glm-search -q "AI news" -c 20 -r oneWeek
# Chinese content via Sogou
glm-search -q "最新科技新闻" -e sogou -r oneDay
# Domain-specific search
glm-search -q "Python async" -d docs.python.org
# Intent recognition (cURL only)
glm-search -i "What is machine learning"
json
{
"id": "task-id",
"created": 1704067200,
"search_result": [
{
"title": "Page Title",
"content": "Page summary...",
"link": "https://example.com",
"media": "Source Name",
"refer": "ref_1",
"publish_date": "2026-04-27"
}
]
}
text
glm-search (script)
├── cURL mode (preferred)
│ └── curl + $ZHIPU_API_KEY → Authorization: Bearer header → Zhipu REST API
└── MCP mode (advanced, requires setup)
└── mcporter → config from setup.sh → Zhipu MCP Broker SSE endpoint
bash
export ZHIPU_API_KEY="your-api-key"
bash scripts/setup.sh
This is only needed for MCP mode. cURL mode works immediately with ZHIPU_API_KEY set.
The skill requires ZHIPU_API_KEY to be available in the Gateway process environment.
If openclaw skills check shows △ needs setup for this skill, the key is missing.
If the Gateway runs as a systemd user service:
bash
# Edit the service override
systemctl --user edit openclaw-gateway
# Add the following in the editor:
[Service]
Environment=ZHIPU_API_KEY=your-api-key-here
# Then reload and restart
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway
Or create the file manually:
bash
mkdir -p ~/.config/systemd/user/openclaw-gateway.service.d
cat > ~/.config/systemd/user/openclaw-gateway.service.d/override.conf << 'EOF'
[Service]
Environment=ZHIPU_API_KEY=your-api-key-here
EOF
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway
Set the environment variable before starting the Gateway:
bash
export ZHIPU_API_KEY="your-api-key-here"
Or add it to your .env / docker-compose.yml as appropriate.
After restarting, confirm the skill is ready:
bash
openclaw skills check
# Should show: ✓ glm-search-pro (no longer "needs setup")
ZHIPU_API_KEY env var)npm i -g mcporter (invoked via npx)See references/api-notes.md for detailed API reference and common issues.