web-explorer
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_DEBUG | No | Set to true for stderr debug logging. | |
| GITHUB_TOKEN | No | GitHub personal access token for higher rate limits and code search/issue actions. Without it, file fetch and repo analyze still work at anonymous rate limit. | |
| HARVEST_ROOT | No | Directory for harvest=True output. | ./harvested |
| YOUTUBE_BIND_IP | No | Local source IP to bind outbound YouTube requests to. | |
| OUTPUT_MAX_CHARS | No | Hard cap on a single tool response. | 15000 |
| WEB_CRAWL_MAX_BYTES | No | Max HTML or text size for web(crawl). Default: about 2MB. | |
| WEB_CRAWL_MAX_PDF_BYTES | No | Max PDF size for web(crawl). Default: about 50MB. | |
| YOUTUBE_COOKIES_BROWSER | No | Browser name (e.g., firefox) so yt-dlp can borrow its cookies when a video is IP-blocked. | |
| YOUTUBE_COOKIES_PROFILE | No | Browser profile path for the cookies above. | |
| GITHUB_MAX_RESPONSE_BYTES | No | Max GitHub file size fetched. Default: about 2MB. |
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 | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| webA | Web search and page fetching. Returns {success, results/content, url}. Use ONLY after exhausting local sources: retrieve() -> kg(neighbors) -> web. Actions: 'search' (DuckDuckGo, returns title/url/snippet), 'crawl' (fetch page content). Set news=true for DDG news endpoint (adds date/source fields). High context cost - prefer harvest=True to save content to disk instead of loading into context. Results cached 20min. For bot-protected sites, use fx tool instead. |
| wikiA | Wikipedia lookup. Check memory/KG for known facts first. Actions: search, page. Results cached 1hr. |
| githubA | GitHub file and repo access via API. Returns {success, content/stats/results}. Use for: fetching source files, analyzing repo structure, searching code across GitHub. Actions: 'fetch' (raw file content), 'analyze' (repo stats/structure), 'search' (code search), 'create_issue' (open new issue), 'comment_issue' (add comment), 'get_issue' (read issue + comments), 'list_issues' (list repo issues), 'update_issue' (edit state/title/body/labels). Requires GITHUB_TOKEN env var for write ops and higher rate limits. 2MB response cap, 10min cache. For large files, use harvest=True to save to disk instead of loading into context. |
| youtubeA | YouTube transcript and metadata tool. Returns captions + rich metadata for any YouTube video. Actions: 'transcript' (captions only), 'metadata' (title/channel/duration/description/chapters only), 'info' (transcript + metadata in parallel - the common case), 'list_languages' (enumerate available caption tracks), 'search' (find a phrase within a transcript, returns timestamped matches with t= deeplinks). Primary fetch: youtube-transcript-api (fast, clean). Fallback: yt-dlp with json3 subtitles + VTT roll-up dedup. Format options: text (default, lowest tokens), timestamped, srt, vtt, json. Use harvest=True to write clean markdown under harvested/youtube/ for RAG ingestion. Accepts any URL shape (watch, youtu.be, shorts, live, embed) or bare 11-char video_id. Cached 1hr. Auto-paginates long transcripts; use segment_offset to continue from where the last response ended. For long podcasts, prefer harvest=True then retrieve() instead of loading full text into context. |
| wikidata_queryB | Wikidata SPARQL queries. Use for structured entity data (people, places, organizations, factual relationships). 5000 char query limit, 15s timeout, 1000 max results. Consider storing results in KG for reuse. |
| fxA | Anti-detect Firefox browser. Use when web(crawl) fails due to bot protection (Cloudflare, Datadome, Reddit verification). Persistent profile at data/fx_profile/: cookies, localStorage, and solved Cloudflare challenges survive MCP reboots. Fast defaults: images blocked, humanize off, domcontentloaded wait. Prefer 'read' for one-shot extraction — auto-waits for JS challenges (networkidle), runs trafilatura, auto-closes. Supports harvest=True to save content to disk instead of loading into context. Use 'navigate' + explicit actions for multi-step workflows (logged-in flows, form fills, clicks); call 'close' when done. Actions: navigate, read, click, fill, type, screenshot, extract, text, wait, press, scroll, evaluate, cookies, add_cookies, close, status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cutlerbenjamin1-cmd/web-explorer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server