Fetch URL
HTTP GET/POST utility with size cap, SSRF guard, retries, and circuit breaker.
Skill by lordmacu
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lordmacu-fetch-url
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fetch-url
What's inside
- Skill name
Fetch URL- Description
- HTTP GET/POST utility with size cap, SSRF guard, retries, and circuit breaker.
- License
- Apache-2.0
- Instructions
- 84 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
- name: "Fetch URL" does not match folder "fetch-url"
Files (1)
- SKILL.md
SKILL.md (first lines)
# Fetch URL
Use this skill to download remote HTTP(S) content — raw API calls, web
pages, JSON endpoints, small files — safely. Private and metadata hosts
are blocked by default to prevent SSRF.
## Use when
- "Fetch this URL"
- "What does this API return?"
- Pipeline: fetch → `pdf-extract` → `summarize_text`
- Fetch a webhook payload or a small data file
- Check a public HTTP endpoint (status + headers)
## Do not use when
- Downloading binaries/archives > 50 MB (hard cap; the LLM context can't
hold them anyway)
- Long-poll / streaming / SSE / WebSocket — this is one-shot request/response
- Authenticated APIs with complex OAuth flows — use a purpose-built
extension (github, whisper, summarize) that owns the auth
- Calling internal services — set `allow_private: true` only on
explicitly trusted operator calls
## Tools
### `status`
No arguments. Returns limits, policy, default timeout, user-agent.
### `fetch_url`
- `url` (string, required) — `http://` or `https://` only
- `method` (string, optional) — GET/POST/PUT/DELETE/HEAD/PATCH/OPTIONS (default GET)
- `headers` (object, optional) — `{"content-type": "application/json", ...}`
- `body` (string, optional) — request body as raw string; caller sets Content-Type
- `max_bytes` (integer, optional) — response cap. Default 5 MB, hard max 50 MB
- `timeout_secs` (integer, optional) — per-request timeout. Default 15s, max 120s
- `allow_private` (boolean, optional) — override SSRF guard. Default false
Returns `{status, final_url, headers, content_type, truncated, bytes_read, body_text?, body_base64?}`.
`body_text` is set for text-like content-types (text/*, json, xml, yaml,
javascript) if UTF-8 decodable. Otherwise `body_base64` is set and
`body_text` is null.
## Execution guidance
- **Start with a small `max_bytes`** (e.g. 100 000) when probing an unknown
endpoint — you can always retry with a larger cap.
- Default timeout (15s) is fine for APIs; bump to 60–120s only for large
files.
- If `status` is 4xx (-32002 error), the body preview is in the error
message — read it before retrying.
- If `status` is 5xx (-32003), retries already exhausted inside the
extension; do **not** retry from the LLM side — back off instead.
- `blocked_host` error (-32020) → the URL points to a private IP /
loopback / metadata endpoint. Do **not** pass `allow_private=true`
unless the operator explicitly asked to hit an internal service.
- `truncated: true` means the body was cut at `max_bytes`. Warn the user
or re-fetch with a bigger cap if needed.
- For multi-step fetch-and-process, wrap the chain in TaskFlow so a
restart doesn't re-fetch.
## Common pipelines
### URL → summary
```
1. fetch_url { url, max_bytes: 50000 }
2. summarize_text { text: body_text, length: "medium" }
```
### URL → PDF → summary
```
1. fetch_url { url: "https://.../doc.pdf", max_bytes: 5000000 }
2. (operator saves body_base64 to /tmp/doc.pdf)
3. pdf-extract.extract_text { path: "/tmp/doc.pdf", max_chars: 50000 }
4. summarize_text { text, length: "long" }
```
(Auto-saving to disk from inside the LLM is not yet supported — a future
extension `fetch_url_save` could do that safely.)From lordmacu/nexo-rs, Apache-2.0.
More from lordmacu/nexo-rs
- 0.525score
Google OAuth
lordmacu
Authenticate against the user's own Google account (Gmail, Drive, Calendar, Sheets, etc.) via the installed-application OAuth 2.0 flow and make authenticated…
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Google
lordmacu
Gmail, Calendar, Tasks, Drive, Contacts (People), and Photos via Google APIs with OAuth refresh tokens.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
OpenStreetMap
lordmacu
Forward and reverse geocoding via Nominatim (no API key, ~1 req/sec).
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
DNS Tools
lordmacu
Resolve DNS records (A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, CAA), PTR reverse, and WHOIS.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Browser
lordmacu
Drive a managed Chrome session via CDP.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Cloudflare
lordmacu
Manage Cloudflare zones, DNS records, and cache via API token.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
1Password
lordmacu
Read 1Password secrets via the `op` CLI with a service-account token.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
OpenAI Whisper
lordmacu
Transcribe audio files (≤25 MB) to text via OpenAI-compatible Whisper API.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
PDF Extract
lordmacu
Extract plain UTF-8 text from local PDF files; pipeline input for summarize.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Remember
lordmacu
Memory hygiene workflow to classify, deduplicate, and promote durable knowledge across local memory layers.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Endpoint Check
lordmacu
HTTP probe (status + latency) and TLS certificate inspection (expiry, issuer, SANs).
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
GitHub
lordmacu
Read pull requests, issues and CI checks via GitHub REST API.
SkillCFreshness: C★ 8Claude Code +9
Signals
- Stars
- 8
- Forks
- 4
- Open issues
- 0
- Last commit (this folder)
- Apr 24, 2026 (6 months ago)
- Last release
- May 11, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/lordmacu/nexo-rs
- Website
- lordmacu.github.io/nexo-rs/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lordmacu
- 0.525score
Google OAuth
lordmacu
Authenticate against the user's own Google account (Gmail, Drive, Calendar, Sheets, etc.) via the installed-application OAuth 2.0 flow and make authenticated…
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
OpenStreetMap
lordmacu
Forward and reverse geocoding via Nominatim (no API key, ~1 req/sec).
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
DNS Tools
lordmacu
Resolve DNS records (A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, CAA), PTR reverse, and WHOIS.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Google
lordmacu
Gmail, Calendar, Tasks, Drive, Contacts (People), and Photos via Google APIs with OAuth refresh tokens.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Browser
lordmacu
Drive a managed Chrome session via CDP.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Cloudflare
lordmacu
Manage Cloudflare zones, DNS records, and cache via API token.
SkillCFreshness: C★ 8Claude Code +9
Cite this page
Fetch URL skill. Agent Mart. https://agentmart.dev/skills/lordmacu-fetch-url (last updated 2026-10-24)