web-docs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DOCS_DIR | No | Directory where fetched markdown docs are saved | ./docs |
| CACHE_DIR | No | Directory for TTL cache (raw HTML + fetched markdown) | ./.cache/web-docs |
| USER_AGENT | No | User-Agent sent to upstream servers | Chrome-like UA |
| GITHUB_TOKEN | No | Optional GitHub token to lift rate limits | |
| DISABLE_CACHE | No | Disable caching (useful for debugging) | false |
| CACHE_TTL_HOURS | No | Cache time-to-live in hours | 168 |
| HTTP_TIMEOUT_MS | No | HTTP timeout per request in milliseconds | 20000 |
| DEFAULT_SAVE_TO_DOCS | No | Default behavior for saving docs to docs/ folder | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| web_searchA | Free web search via DuckDuckGo HTML (no API key, no per-query cost). Returns a list of {title, url, snippet}. Pass any URL to |
| fetch_urlA | Fetch a single URL and return clean markdown. Handles HTML (via turndown+GFM), JSON (pretty-printed), and plain text. Cached locally. Optionally saves to docs/.md with YAML frontmatter (source URL, fetch date, content type). |
| lib_docsA | Fetch README/docs for a library by name. Tries npm → PyPI → crates.io → Go → GitHub automatically. Accepts |
| search_docsA | Language & API documentation search. Biases DuckDuckGo results to official docs sites (MDN, docs.python.org, pkg.go.dev, doc.rust-lang.org, etc.). Set fetch_top=true to retrieve the full markdown of the top hit instead of just the result list. LOCAL-FIRST: searches your docs/ folder first; only falls back to the web if no local match. |
| list_docsA | Browse and search the local docs/ folder. Three modes: (1) no args = list all saved docs, (2) { query } = keyword search across docs/, (3) { path } = read the full body of a specific doc by relative path or slug. Use this BEFORE going to the web — your project may already have the docs you need. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Most tools have clear boundaries: fetch_url retrieves a specific URL, lib_docs fetches library docs by name, list_docs works with local files. The main overlap is between web_search and search_docs, both performing web searches, though search_docs is specifically biased to official documentation and is local-first, which distinguishes it. Descriptions are detailed enough to disambiguate in practice.
All names use lowercase snake_case with an underscore, and most follow a verb_noun pattern (fetch_url, search_docs, list_docs). However, web_search is noun_verb order and lib_docs is noun_noun, which are minor deviations from the dominant pattern. Overall the style is consistent and readable.
Five tools is a well-scoped size for a documentation reference server. Each tool serves a clear function: web search, URL fetching, library-specific fetching, docs search, and local docs browsing. This is within the ideal 3-15 range and there is no bloat.
The tool set covers the full workflow for web documentation research: searching the web, fetching pages, retrieving library docs, searching with docs bias, and managing local saved docs. The optional saving via fetch_url and lib_docs, plus list_docs for browsing, avoids dead ends. No critical gaps are evident for the documented purpose.