ChHsiching

Agent Web Search — Development skill for Claude Code

Development community

A free, uncapped stdio MCP server that searches the web via DuckDuckGo/ddgs and returns page-body extracts.

How to install Agent Web Search

This entry records only its repository, not the path inside it, so there is no exact command to give. Open ChHsiching/agent-web-search and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Agent Web Search does

A free, uncapped stdio MCP server that searches the web via DuckDuckGo/ddgs and returns page-body extracts. Ships as a single self-contained binary. Works with Claude Code, ZCode, and any MCP client.

Alternatives in Development

  • Zeroshot — Runs coding agents as a graph: one agent implements, independent agents review, failures go to repair, and not 1.9k ★
  • Reverse API Engineer — Reverse engineer any website into a typed API client 1.9k ★
  • Clawgod — This is NOT a third-party Claude Code client 837 ★

README

agent-web-search

**English** | [简体中文](./README.zh-CN.md)

A **free, uncapped web search** for MCP-capable agents (Claude Code, ZCode, and any client that speaks the Model Context Protocol). It runs a search query and returns results with page-body extracts the agent can read directly — no API key, no quota, no monthly limit.

  • Free and uncapped — searches DuckDuckGo over plain HTTP. No API key, no quota, no monthly limit, no 429s.
  • Universal MCP tool — exposes a tool named web_search with the standard schema agents already know (query, domain filter, recency, content size, location), so it slots into any MCP client without prompt changes.
  • Reliable launch — ships as a single self-contained binary (Python interpreter bundled inside). No npx, no runtime to install, no network at startup. It connects the first time, every time.
  • Near-zero maintenance — DuckDuckGo access goes through the ddgs library, which handles anti-bot, rate-limit, and retry logic for us. No scraping engine to keep up with.

What it does

Give it a search query, get back a ranked list of results with page-body extracts:

web_search({ "search_query": "rust tokio tutorial" })
  → [{ "title": "Tutorial | Tokio", "url": "https://tokio.rs/tokio/tutorial",
       "summary": "Tokio is an asynchronous runtime for the Rust …",
       "site_name": "tokio.rs", "favicon": "https://tokio.rs/favicon.ico" },
     …]

The top results get their page body fetched and extracted (via a Readability engine), so the agent can read the actual content rather than just a short snippet. Results beyond the top few carry the source's own snippet. We return content, not summaries — no model calls, no digests.

Tool parameters

Parameter Required Default Description
`search_